【发布时间】:2016-06-21 18:45:12
【问题描述】:
我在我的项目中使用了Mingw-w64 编译器。现在我正在用MSVC2015 编译项目。以下行给出了错误:
constexpr double pi = 4*std::atan(1);
错误:
error: C2131: expression did not evaluate to a constant
但是它在 mingw 中编译没有任何问题。
【问题讨论】:
-
可能 std::atan() 在 Mingw-w64 编译器中是 constexpr 并且不在 MSVC2015 实现中。比较 Mingw-64 附带的
头文件和 Visual Studio 附带的同一文件中的此函数声明 -
这看起来像一个 gcc 错误。 Clang 和 MSVS 都正确拒绝代码恕我直言。
标签: c++ visual-studio c++11