有什么方法可以用MSVS2015模拟编译时的双常数吗
Is there any way to emulate compile-time double constant with MSVS2015?
我知道MSVS2013(甚至是CTP)无法处理static constexpr double
数据成员,这一点在本问题中得到了证实。
现在,我希望MSVS2015预览版能让我至少使用这个简单的结构,但遗憾的是,我也遇到了同样的错误。因此,合乎逻辑的下一个问题是:有没有办法用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的庞然大物。
如果编译器接受constexpr
成员函数
static constexpr T value() {return 42;}
那么这应该会给您一个编译时间常数。
免责声明:我从来没有使用过这个编译器,所以不能测试这个。
相关文章:
- C++中的条件运算符 ( ? : ) 可以编译时吗?
- 我可以在不使用Qt for Webassembly的情况下使用Emscripten编译Qt吗?
- 我可以在Visual Studio C++中使用 #include "pch.h" 而不是 #include "stdafx.h" 作为我的预编译头吗?
- 所有的openMp c++编程都是使用在GPU上运行的-fopenmp编译的吗
- 在预编译标头中实例化模板会缩短编译时间吗?
- 将 lambda 函数转换为另一个编译单元中的普通函数会缩短编译时间吗?
- 非常量表达式的左值到右值转换的结果是常数吗?
- "undefined behaviour"扩展到编译时吗?
- 有什么方法可以用MSVS2015模拟编译时的双常数吗
- 将文件拆分为.cpp和.h会减少编译时间吗
- "null logger" - 带有 ostream 运算符的空类会从优化的代码中编译出来吗?
- 这是Visual 2010的编译错误吗?
- 我们需要用c++11重新编译库吗
- 我可以得到C/ c++ /Java代码的XML AST而不编译它吗?
- 我可以使用LLVM来加速构建并减少GCC编译时间吗?
- 大量的警告会增加编译时间吗?
- 可以在Visual Studio中编译voro++吗?
- 注释会影响编译时间吗?
- 你可以用同一编译器的不同版本混合编译c++吗?
- 我可以不使用Visual Studio编译dll吗?