我在我的项目中使用过Mingw-w64
编译器。现在我用MSVC2015
编译项目。以下行给出错误:
constexpr double pi = 4*std::atan(1);
错误:
error: C2131: expression did not evaluate to a constant
然而,它在mingw编译没有任何问题。
答案 0 :(得分:2)
本文档明确要求某些标准库函数是constexpr。 实现不得将任何标准库函数签名声明为constexpr,除非明确要求它。
正如您在我突出显示的最后一句话中所看到的,如果标准没有这样说,则不允许实现声明函数 if str(self.screens[index].name) == 'Front':
self.ids.test.points = (100, 100, -300, 300)
。
现在标准是否说constexpr
是atan
?不,从[c.math]中的签名可以看出:
constexpr