Talk:cpp/compiler support
Contents |
Link features to wiki pages
I think we should link the items listed in the left-hand column to their documentation on the wiki as well as the standards proposal document. Standardese isn't always the best way to explain a feature --Legalize (talk) 09:01, 22 June 2015 (PDT)
OpenWatcom
What about OpenWatcom? --92.76.187.173 07:03, 18 April 2014 (PDT)
- At some point we'll probably have to limit the compilers that we include to "the big ones" just for presentation purposes, but it looks like there's still some room. Would you like to figure out what OpenWatcom supports and add a new column? --Nate (talk) 08:39, 18 April 2014 (PDT)
Falling behind
This is getting outdated fast, check out Visual Studio 14 CTP. Also, Oracle Studio 12.4 is advertised to have C++11 support "all features except for concurrency, Delegating and Inheriting constructor, and user-defined literals"). (and of course my usual gripe is that this table does not talk about the library, which is more than half of the standard). I don't think this is maintainable given that the level of documentation is very different between compilers. Unless someone takes it upon themselves to write a conformance test and subject various compilers to it.. --Cubbi (talk) 13:38, 3 June 2014 (PDT)
- What you say is true. I wonder if it would be useful to somehow more prominently indicate how old the information in the table is, with e.g. a "last updated" date or more prominent labeling of the most recent version of each compiler listed (to better communicate "this info was only updated as of gcc-4.9)? --Nate (talk) 21:50, 3 June 2014 (PDT)
Intel support matrix C++11 C++14 as of december, but still newer than this page (in case someone finds a moment to go over them - their rows are close enough to the ones used here). --Cubbi (talk) 16:50, 22 June 2014 (PDT)
Features in VS 2015 preview --Legalize (talk) 09:13, 8 December 2014 (PST)
I take back my reservations about the viability of this page: enough people appear to be interested in keeping their favorite compilers up to date here. It is the other websites that attempted to aggregate compiler support information that are falling behind. --Cubbi (talk) 06:44, 30 April 2015 (PDT)
Needs C++11 Library Support
For instance, regex isn't supported at all until gcc 4.9. This can be surprising when you consider that the core language features are supported. --Legalize (talk) 09:08, 4 August 2014 (PDT)
Readability improvements
I find it hard to keep track of which compiler is in which column at a glance when scrolled down the list. Thus, I'm wondering, is it worth showing the compilers that have hardly any support for C++11 features? If the table was limited to compilers that support even at least five (maybe more!) C++11 features, it would become much simpler. I'm not sure how useful the table entries are if the situation for the compiler is essentially "doesn't even come close to supporting C++11".
I expect GCC, MSVC, and Clang have a vastly greater user base than any of the other compilers, so it might make sense to put those three together in the list at either end.
I'm happy to make these changes, but not about to without getting some input first :) Sdt (talk) 21:32, 8 September 2014 (PDT)
- As someone who's been using IBM, Oracle, Intel, and HP compilers, I'd feel unrepresented. Perhaps it would work with two tables: compilers that support all/most of it (clang, gcc, Intel, MS) and only parts of it (others). Of course I am not sure it's worth rearranging all this outdated information in the first place. --Cubbi (talk) 03:38, 9 September 2014 (PDT)
Collapsables?
The new {{collapse}} template (as seen in cpp/experimental/parallelism and cpp/language/history now) is giving me an idea, I think a great way to make this table managable would be to make summary rows for C++11, C++14, Libfund TS, etc, which would say no, partial, or version where full support was achieved. And these summary rows would [Expand] into per-proposal support details which are shown now. Then it won't even be so intimidating to actually add all 11/14/libfund/etc proposals. --Cubbi (talk) 18:48, 10 August 2015 (PDT)
Fujitsu?
The Fujitsu column was added but no support for anything was indicated. Is this really doing anything useful? --Legalize (talk) 13:39, 19 January 2016 (PST)
- there is some discussion of this addition over at User_talk:PhilMiller. To quote myself "Fujitsu microprocessors were bought by Spansion in 2013, which merged with Cypress Semiconductor in 2014. Based on Cypress's website, their current compiler for the former Fujitsu microprocessors is Softune C++ V6, which only supports C++98", so I dropped Fujitsu from the table. --Cubbi (talk) 14:04, 19 January 2016 (PST)
Splitting and folding the table
The table is large and will only keep growing. As pointed out on User_talk:PhilMiller, there are fewer library implementations than compiler implementations, so it would make a very real sense to split the table in two: core proposals and library proposals. And then if it could use some sort of fold (like what we use on cpp/language/history to collapse the rows you're not interested in, it would actually become manageable. Comments? --Cubbi (talk) 13:14, 13 July 2016 (PDT)
Feature missing
I do not see Expression SFINAE in the features table, although it is a very important feature, and something still not supported by MSVC (one of the last standing no conformance). Would love to see someone go after which compiler versions picked up support.
MSVC version numbers are confusing
The chart heading lists MSVC, which is Microsoft's C/C++ compiler. The compiler program is cl.exe, and it can be checked with the macro _MSC_VER.
A number of the rows in the chart list 14 for MSVC, which indicates MSVC 14.00. That's the compiler that shipped with Visual Studio 2005. Confer, https://en.wikipedia.org/wiki/Microsoft_Visual_Studio#History.
I believe the intention of "14" is to relay the [unused] Visual Studio version number. "Unused" means we call it "Visual Studio 2015", and not "Visual Studio 14". The compiler version that shipped with VS2015 is MSVC 19.00.
Labeling the heading as the compiler (MSVC), citing other compiler versions (like Clang and GCC), and then using the unused Visual Studio version is very confusing.
Its also worth mentioning that you can download the MSVC compiler *without* Visual Studio. Microsoft calls it "VC++ Build Tools". The download includes Nmake, Cl (compiler), Link (linker) and a few other command line utilities. Confer, http://landinghub.visualstudio.com/visual-cpp-build-tools.