On 23 April 2013 15:29, Paolo Carlini wrote: > Hi, > > Gabriel Dos Reis <g...@integrable-solutions.net> ha scritto: > >>There appear to be two targets: C++14 and C++17. Personally, I am >>inclined >>to have CXX14 and CXX1Y, where CXX1Y is for the presumed C++17 target. > > This clarified - thanks - I'm wondering if it's safe to assume that the C++14 > library is a superset of the C++11 one: in that case passing -std=c++14 would > also automatically define the C++11 macro and I see a tiny front-end patch > going in followed by smooth progress in library. Otherwise - if -std=c++14 > does *not* automatically define the C++11 macro too - we also need a ton of > boring changes in the library, where things become wrapped in C++11 macro || > C++14 macro. Did I explain myself clearly enough?
If the ~thread motion, N3636, passed then the C++11 and C++14 libraries are incompatible. N3657 adds new member function overloads to existing library types, but should do so in a backward-compatible way (that was the point of the final revision of Joaquin's paper.) But remember we no longer use __GXX_EXPERIMENTAL_CXX0X__ anyway, we check __cplusplus >= 201103L, and so within those chunks we could additionally check for some C++14 macro.