如果有一些代码我想尽可能多地使用C++ 11x扩展,但如果不支持则有后备.目前,GCC的OSX版本和VisualC编译器几乎不支持C++ 11x,所以我使用:
#if (defined(__APPLE__) || (defined(_WIN32)))
...fallback code without C++11x ...
#else
... code using C++11x ...
#endif
Run Code Online (Sandbox Code Playgroud)
这可行,但不是真正正确的事情,特别是因为MacPorts中的gcc编译器支持c ++ 11x.
有#define C11X_SUPPORTED型宏吗?也许GCC只有一些东西?