Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

It's sometimes frustrating to know that one particular feature is working in one compiler and not in another. Even after downloading latest gcc4.6 few weeks back some C++0x features are not working.

Will the complete C++0x support provided by the compilers (at least the popular ones) on the very 2nd day when the C++11 is released officially ? Have these compiler vendors decided any timeline to provide the full support ?

share|improve this question

put on hold as off-topic by MichaelT, GlenH7, jwenting, gnat, Bart van Ingen Schenau yesterday

  • This question does not appear to be about software development within the scope defined in the help center.
If this question can be reworded to fit the rules in the help center, please edit the question.

1  
Why did you go from talking about C++Ox to C++11. Each compiler project will be different. This question cannot be answered. –  Ramhound Aug 2 '11 at 11:25
1  
C++2011 is the official name of C++0x (that is a nickname). –  Klaim Aug 2 '11 at 11:27
    
@Ramhound, C++0x is supposed to be known as C++11 (so I deliberately used the term). Also, I wanted to know if the compilers are bound to release the date of complete support. –  iammilind Aug 2 '11 at 11:28
    
Why is the nickname of the next release of C++, that I assume will be released in 2011, C++ 0X? I was aware of the term C++0x obviously. –  Ramhound Aug 2 '11 at 11:44
4  
This question appears to be off-topic because it is about prognostication of an event that happened in the past. –  MichaelT yesterday

4 Answers 4

up vote 10 down vote accepted

Will the complete C++0x support provided by the compilers (at least the popular ones) on the very 2nd day when the C++11 is released officially ?

No, not that day.

You can see from well known compiler release dates and C++0x features implementations that it will still take a long time before getting all the standard features in one of those compilers. You'll have to wait years I guess.

Also, AFAIK, not any compiler today is fully C++03 compatible even today, there are still some bugs or hard cases that don't work. So a really complete C++11 implementation would have fixed those too... It's a bit like being 100% HTML4/5 compatible : it would be nice but it's rarely the case in practice. Most of the time it's more like 95-98% of the standard implemented.

share|improve this answer
4  
I think the EDG compilers came so close that the edge cases where they differed from C++03 were often resolved in favor of EDG ;) –  MSalters Aug 2 '11 at 11:48
    
CLang claims to be fully C++ 1998 compatible along with all elements of the C++03 standard. –  Daemin Aug 2 '11 at 12:41
    
@Daemin CLang has not implemented export, see clang.llvm.org/cxx_status.html . Luckily, that feature has been removed in the new C++OX standard. –  Sjoerd Aug 2 '11 at 16:54
    
@Sjoerd Well one element that will be eliminated from all of 1998 and 2003 C++. Close enough but not for programmers. –  Daemin Aug 3 '11 at 10:52

Considering that some items from the previous standard were never implemented in the majority of compilers (for example template exports, now removed from the standard), the answer is uncertain, but one can hope that the new C++0x standard is easier to implement than the previous standards.

In any case at least Microsoft's C++ compiler is unlikely to get a major upgrade until the next revision (2012?), so it's not going to be an immediate switchover for all compilers.

share|improve this answer
    
@Keith - I suspect we will start to hear more about the next version of VS C++ in the near future since Microsoft has made it clear they are going to improve it in the next release. I suspect by the end of the year, we will have a release date for VS 2012, and a timeline for C++ 0x support. –  Ramhound Aug 2 '11 at 11:47
    
@Ramhound - I certainly hope so, because the minor steps towards C++0X in VS2010 are already making life a little nicer for us poor native C++ developers. –  Joris Timmermans Aug 2 '11 at 13:07

Many developers seem to think that until the spec is released, there won't be any support. That's just not so. Some of C++0x was in Visual Studio 2008 "Feature Pack". More was in VS 2010. Still more will be in the next one. Informed opinions guess that a beta or CTP of "vNext" will be available in mid September, to coincide with the BUILD conference Microsoft is holding. It's just speculation, but it makes sense. Microsoft has said publicly there will be a "large C++ presence" at BUILD.

Perhaps some corners of the spec won't be implemented for a long time. Your definition of "complete" may be more stringent than someone else's. To see where things stand at the moment, use this table from Scott Meyers: http://www.aristeia.com/C++0x/C++0xFeatureAvailability.htm - there are tabs across the bottom for language features, library features, and so on. I expect Scott will keep this up to date as compilers release new versions. For now, you can use it to guide which features are "safe" for cross-compiler work.

share|improve this answer

There are no guarantees. For example, IIRC C99 or something is not yet supported with MSVC. If you're going for cross-platform development you'll have to limit features for a very long time, because there will be compilers that are either discontinued, or they rank a feature or two as insignificant.

But a lot of C++0x features are already available in MSVC2010 and GCC, which you can start using already.

share|improve this answer
1  
TO be fair, MSVC is a C++ compiler - there is no reason it should support C99. –  Martin Beckett Aug 2 '11 at 15:15

Not the answer you're looking for? Browse other questions tagged or ask your own question.