rub*_*nvb 3 c++ visual-c++ constexpr c++11 visual-studio-2015
我知道MSVS2013(甚至是CTP)无法处理static constexpr double数据成员,正如这个问题所证实的那样.
现在,我希望MSVS2015 Preview能够让我至少使用这个简单的构造,但是,我得到了同样的错误.所以逻辑上的下一个问题是:有没有办法用MSVC2015定义编译时双精度常量?
例:
template<typename T>
struct my_constant
{
static constexpr const T value = 42;
}
Run Code Online (Sandbox Code Playgroud)
这给出了错误:
error C2864: 'my_constant<double>::value': a static data member with an in-class initializer must have non-volatile const integral type
Run Code Online (Sandbox Code Playgroud)
这是C++ 03 mumbo-jumbo.
如果编译器接受constexpr成员函数
static constexpr T value() {return 42;}
Run Code Online (Sandbox Code Playgroud)
那应该给你一个编译时常量.
免责声明:我从不使用此编译器,因此无法测试.