jeudi 27 août 2015

C++11 (and C++14 ...) support in standard libraries by version?

Is there a good resource which lists what C++11 (C++14, etc.) constructs are supported in each version of the standard libraries for major "vendors"?

I know of the following pages for gcc, clang and icc, (as well as this overview) but they apparently only list syntax-related changes (e.g. changes to the compiler proper, rather than library support.)

Are there equivalent pages for libstdc++ and libc++, listing which library version first supported each feature of the standard?

I'm aware of this page in the libstdc++ manual, but that is only relevant for the most recent development version ... to the extent that even the archived versions of the manual apparently have the current version of the table, rather than the table as it was when the version was originally released.

The reason I ask is that to-date we have avoided C++11 and newer constructs in order to support older compilers. We're looking to modernize things, but in planning it would be nice to know if putting std::shared_ptr or std::regex into our code might cause our user's compilers to choke; or if we set non-bleeding-edge minimum versions which constructs should we avoid to support that version.

(Support for user compilation is mainly on Mac and Linux systems with gcc, clang and some icc. We also build for Windows, but that's primarily under our control so older version support is less critical.)

Aucun commentaire:

Enregistrer un commentaire