【发布时间】:2012-05-29 20:34:28
【问题描述】:
如果有一些代码我想尽可能多地使用 C++11x 扩展,但如果不支持则有一个后备。目前 OSX 版本的 GCC 和 VisualC 编译器几乎不支持 C++11x,所以我使用:
#if (defined(__APPLE__) || (defined(_WIN32)))
...fallback code without C++11x ...
#else
... code using C++11x ...
#endif
这是可行的,但实际上并不是正确的做法,尤其是因为 MacPorts 中的 gcc 编译器确实支持 c++11x。
有#define C11X_SUPPORTED 类型的宏吗?也许只有 GCC 才有?
【问题讨论】:
-
问题是 GCC 还没有完全支持 C++11,所以这真的取决于你想使用什么特性。
-
@rve:你为什么不把它作为答案发布?这是一个很好的。
标签: c++ gcc c-preprocessor preprocessor-directive