我目前在一个项目中工作,我们的目标是多个平台,我们的代码库是使用多个不同的编译器 (gcc/clang/vc++) 构建的。
对于我们的 windows 平台,我们使用 VS2013,目前不支持 'constexpr',我想知道除了检查我们是否在 Windows 中以及编译器的版本是低于 VS2015。
这样我就可以决定何时使用模板元编程(涉及 constexpr 的使用)使用编译时生成的成员来扩展现有类型,仅当它可用时。
最佳答案
这里有两个建议。 Boost.Config这个 python 程序称为“cxx11tests”(github.com/sloede/cxx11tests)。运行它非常简单:
CXX=g++ CXXFLAGS=-std=c++11 ./configure.py
make
对于 Boost,您需要的宏是 BOOST_NO_CXX11_CONSTEXPR
。
关于c++ - 如何在编译时检测是否支持constexpr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32219908/