Intel® C++ Compiler
Community support and assistance for creating C++ code that runs on platforms based on Intel® processors.
7956 Discussions

Which C++0X features are coming in 11.2? And will it be available before VS2010

jlperla
Beginner
560 Views
Hi there,
Does anyone who which are the likely new C++0X in the 11.2 release? And any idea on the likely release dates?

I am trying to think ahead to whether I port over a bunch of my code to 11.1 or wait a version.

-Jesse
0 Kudos
11 Replies
JenniferJ
Moderator
560 Views


One feature of the C++ 0x is the r-value reference. We're working to support it. But we do not have a timeline for it.

Such feature will not be in 11.x branch, but a new major release. So it unlikely will be available before VS2010.

If your program does not make use of the other new language features of VS2010, you can start porting with 11.1. Porting is not just like a switch, may take some time. ALso if you found any feature our 11.1 does not support, let us know and so we can get it into our next version - if time allows.

Thanks,

Jennifer

0 Kudos
jlperla
Beginner
560 Views


One feature of the C++ 0x is the r-value reference. We're working to support it. But we do not have a timeline for it.

Such feature will not be in 11.x branch, but a new major release. So it unlikely will be available before VS2010.

If your program does not make use of the other new language features of VS2010, you can start porting with 11.1. Porting is not just like a switch, may take some time. ALso if you found any feature our 11.1 does not support, let us know and so we can get it into our next version - if time allows.

Thanks,

Jennifer


Thanks Jennifer,

I know that it is one of the larger changes, but variable argument template parameters will be hugely important for using the experimental versions of boost, etc., having sane error messages from libraries, etc.. I would love to see it sooner rather than later (GCC has pushed it forward).
0 Kudos
JenniferJ
Moderator
560 Views
Quoting - jlperla
variable argument template parameters will be hugely important for using the experimental versions of boost
We are trying to supportit in our next major release as well.

I'll mark this post to our FR item so when it's ready, I'll let you know.

Jennifer
0 Kudos
jlperla
Beginner
560 Views

Hi Jennifer,

Just checking in on the status here with the 11.2 release. Do we know if it is coming about the same time as Visual Studio 2010?

Any movement on C++0X features? It will change how I write code now to prepare for it.

In particular, here are a few of the things already in GCC:http://gcc.gnu.org/gcc-4.5/cxx0x_status.html

  • Variable argument templates
  • Alternative function syntax... something like....

[cpp]template
auto myfunc(T t) -> decltype(t + t)
{
  return t+t;
}[/cpp]

  • Initializer lists
  • Default template arguments for function templates

If you are giving feedback on order of implementation for these, I would give these as my ordered list of interests.

Thanks so much, and thanks again for such a great compiler.

0 Kudos
JenniferJ
Moderator
560 Views

Sorry I missed your posting.

No, there will be no 11.2 release. The next major release is 12.0. Some of the C++0x features will be included in 12.0. The 12.0 is still under development. I do not have a date for it.

But you will know when it's released. I will post a big news here. If you're registered to Intel Premier Support, you will get an email notification about it.

A note for VS2010 support, we do not support beta OS or VS. After VS2010 released we will support it in a later time, but it will take some time though.

btw, I've sent your list with 4 features to our engineering team.

Thanks for providing the detail info.
Jennifer
0 Kudos
mayeski
Beginner
560 Views
Jennifer, its great to see that Intel is implementing the c++0x feature set. One thing that would help me a lot in porting from gcc to your compiler are enum classes. Also I would need variadic macros and variadic templates. I look forward to doing the port when your new compiler is released.
0 Kudos
Judith_W_Intel
Employee
560 Views

decltype and auto and variadic macros will beavailablein 12.0 (on Linux under the -std=c++0x option)
but not enum classes or variadic templates.

Also there will be defaulted/deleted functions, lambdas, rvalue references, and some other minor features such as allowing an explicit enum base, enum qualifiers, and local types as template arguments.

We tried to get animplementation of variadic templatesbut this featuredidn't make it in time for the first beta which means it will have to wait until the next release after 12.0.Sorry.

Judy
0 Kudos
dmitry_sychov
Beginner
560 Views
what aboutCompile-time evaluation: constexpr?
my vote++ for it
0 Kudos
Judith_W_Intel
Employee
560 Views
Nope, no constexpr yet.

Our first priority is to try to keep up with Gnu and Microsoft and I don't think either of these compilers have this feature yet.
0 Kudos
jlperla
Beginner
560 Views
Thanks Judith,
For what it is worth, I would like to change the priorities I posted above. Right now, the main difference with GCC and MSVC2010 that is killing me is the lack of alternative function return syntax with the appropriate SFINAE support (i.e.
[cpp]Alternative function syntax... something like....
template  
auto myfunc(T t) -> decltype(t + t)  
{  
  return t+t;  
}  
 [/cpp]
The amount of template meta-programming required to get around this is enormous (and often at the mercy of potential compiler bugs. For example, I postedhttp://software.intel.com/en-us/forums/showthread.php?t=73680for the engineering team as a difference with GCC. This likely wouldn't be a problem if alternative function returns were supported).
Since variable argument templates and default template parameters for functions didn't make it into MSVC2010, I wouldn't be able to use them for my cross-compiler libraries anyways.
-Jesse
0 Kudos
Judith_W_Intel
Employee
560 Views

Yes, the new function declarator syntax is available in both MSVC++ 2010 and g++ 4.5 (with the -std=c++0x option) sowe shouldmake it high priorityonour "C++0x to do list".

thanks for your input.

Judy
0 Kudos
Reply