A preview version of Visual Studio 2012 (the next version after VS2010) is now available.
Does anyone know what new C++11 features it supports? (I'm not in a position to try it out at the moment).
It's worth noting that Visual Studio 2010 already had quite a bit of early C++11 support. So to summarize what is already linked to in other answers, here is what is new in Visual Studio 11 that was not part of Visual Studio 2010:
- rvalue references to version 2.1 from 2.0
- lambdas to version 1.1 from 1.0.
- decltype to version 1.1 from 1.0(not yet available in developer preview)
- Improved, but still incomplete, Alignment
- completed strongly-typed enums
- forward declared enums
- Standard layout and trivial types
- Atomics
- Strong compare and exchange
- Bi-directional fences
- Data-dependency ordering
- Range-based for loop
In early November 2012, Microsoft announced the Visual C++ Compiler November 2012 CTP, which adds more C++11 functionality to Visual Studio 2012:
- uniform initialization
- initializer lists
- variadic templates
- function template default arguments
- delegating constructors
- explicit conversion operators
- raw strings
There is a list there. What strikes me the most is the features which are still missing:
- They said they would implement variadic templates as a priority and they didn't.
- We will still have to declare move constructors by hand for many classes, since there is no delegating constructors.
- Inheriting constructors aren't present, and this would really be needed for some code
- No uniform initialization, in particular no initializer lists. This sucks when you have used them with g++.
- Still no correct thread local storage. So you're stuck with
boost::thread_specific_ptr
for a while.
All the other features which are yet missing are mainly stuff you can live without. What I list here is just what nags me everyday when working with VS10. It's just so irritating that they didn't work on the compiler at all.
EDIT: I shall also add that emplace_back
(one great feature for the standard library containers) isn't correctly implemented.
During GoingNative in Feb 2012, STL announced that range-for will be in VS11 starting with the beta, which is expected Feb 29th. A recording of the talk is available. "The Reveal" is at the one-hour 38 minute mark.
There is now a definitive list of C++11 features in VS2010 and VS2012 on MSDN.
Try this video by Herb Sutter. This fellow dont need introduction!!!
来源:https://stackoverflow.com/questions/7421825/c11-features-in-visual-studio-2012