Re: GCCG with C++11

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 28 May 2015 at 16:51, Martin Sebor wrote:
> The standard specifies that implementations conforming to C++
> 11 must define the __cplusplus macro to 201103L, and recommends
> that non-conforming compilers (presumably those that aim to be
> C++11 conforming but whose support is incomplete) should use
> a value with at most five decimal digits.
>
> C++ 98 defines __cplusplus to 199711L, and C++ 14 to 201402L.
>
> With that, the following should cover past and future cases:
>
>   #if __cplusplus == 199711L
>     // C++ 98 conforming implementation
>   #elif __cplusplus == 201103L
>     // C++ 11 conforming implementation
>   #elif __cplusplus == 201402L
>     // C++ 14 conforming implementation
>   #elif __cplusplus > 201402L
>     // future C++ implementation
>   #elif 0 < __cplusplus && __cplusplus < 100000L
>     // non-conforming C++ implementation
>   #else
>     // not C++ or a non-conforming C++ implementation
>   #endif

Until GCC 4.7.0 __cplusplus was always defined to 1, even though C++11
support in 4.6.4 was OK, and C++98 support was mostly complete.




[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux