When could Intel C++ compiler support C++11 feature?

When could Intel C++ compiler support C++11 feature?

Dear all,

Recently I am trying to compiler some code by Intel C++ Compiler XE 13.0, the code is somewhat like the follows:

            for(uint i=0; i<skeleton.size(); i++) {
                for(auto &entry : skeleton[i]) {
                    action(i, entry.vid, entry);

when compiling by Intel C++ Compiler XE 13.0, the following error displayed:

Error    17    error : cannot deduce "auto" type (initializer required)  

I got to know that this new feature is not supporttd by latest Intel C++ compiler. When could Intel C++ compiler support this feature?


Zhanghong Tang

10 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.


As Intel's support person said recently, C++11 is the main goal, though, (IIRC it was Jeniffer) said thay cannot comment details for future Intel's plans.

PS: I am waiting impatiently for new release, since in recent one /MP switch under Windows is broken, so I'd like to have knowledge of the timeline, but as she said, they cannot provide comments about this...

With best regards,
If you find my post helpful, please rate it and/or select it as a best answer where applies. Thank you.

Did you try to compile the test-case with option /Qstd=c++0x?

Also, Please follow a link to see all supported C++11 features:


Dear Dr. Sergey Kostrov,

Thank you very much for your instructioin, this option works for my issue.


Zhanghong Tang


Yes the "auto" keyword and c++11 range based for loops (which is what this code is using) should be supported in C++ 13.0 if you use the option to turn on c++11 (-std=c++11 on Linux and /Qstd=c++11 on Windows).


Dear Dr. Sergey Kostrov and Judith Ward,

Thank you very much for your kindly reply. I tested and found that both two options /Qstd=c++0x and /Qstd=c++11 are OK for me. Could you please tell me what's the difference between these two options?


Zhanghong Tang

The effect of those options should be identical.  c++0x was chosen by gcc for early development; after the standard was confirmed, c++11 was recommended as the spelling for the future.

Dear Dr. Timp,

Thanks again for your kindly explaination.

I suggest that this option be turned on by default.


Zhanghong Tang

>>...I suggest that this option be turned on by default.

Thanks for your suggestion.

I think this is a very dangerous thing and a developer should decide if the option needs to be set on.

In general, command line options of any C++ compiler are "switchers" and that approach is very flexible. If some default option is changed it could bring lots of unpredictable issues and problems with existing hundreds of millions C/C++ code lines already implemented, tested, verified, validated, stabilized, frozen, etc.


Turning it on by default would break compatibility with the Microsoft compiler. We only enable those c++11 features by default which are already implemented by the reference Microsoft compiler on the user's system.

Leave a Comment

Please sign in to add a comment. Not a member? Join today