我知道MSVS2013(甚至是CTP)无法处理static constexpr double
数据成员,已确认为in this question。
现在,我希望MSVS2015 Preview能够让我至少使用这个简单的构造,但是,我得到了同样的错误。所以逻辑上的下一个问题是:有没有办法用MSVC2015定义编译时双精度常量?
示例:
template<typename T>
struct my_constant
{
static constexpr const T value = 42;
}
这给出了错误:
error C2864: 'my_constant<double>::value': a static data member with an in-class initializer must have non-volatile const integral type
这是C ++ 03 mumbo-jumbo。
答案 0 :(得分:5)
如果编译器接受constexpr
成员函数
static constexpr T value() {return 42;}
然后它应该给你一个编译时常量。
免责声明:我从不使用此编译器,因此无法对此进行测试。