On 25 May 2011 09:19, Jonathan Wakely wrote: > On 25 May 2011 07:44, Patrick Horgan wrote: >> I'm using the following in a header that uses typeof and needs to build >> in code that builds with -std=c++0x or the default -std=c++98. Can I >> leave it and forget it, or will eventually the compiler's use of c++0x >> features no longer be experimental? How do I future proof it? >> >> #ifdef __GXX_EXPERIMENTAL_CXX0X__ >> #define typeof decltype >> #endif > > Yes it will go away at some point. The portable way to detect C++0x support is: > > #if __cplusplus >= 201103L Actually portable is the wrong word, since G++ doesn't actually conform to that requirement - but it's the method specified by the standard, so other compilers should conform to it and G++ should do one day too.