constexpr 中的构建错误
Building error in constexpr
我在我的应用程序中使用 constexpr,但出现编译错误。
namespace {
const int kLength = 1;
const float kPiNumber = 3.14159265;
constexpr float kCircumferenceArc()
{ return (2*kPiNumber*kLength) / 360; }
}
我得到的错误是:
read of non-constexpr variable 'kPiNumber' is not allowed in a constant expression
{ return (2*kPiNumber) / 360; }
有人可以帮我解决这个问题吗?
提前致谢
constexpr 变量必须从编译时已知的值进行初始化。一个 const 变量,例如:
const float kPiNumber = 3.14159265;
由于某些历史原因 'const float' 在编译时未知。
要使其工作,您必须将此行更改为:
constexpr float kPiNumber = 3.14159265;
完整代码如下:
namespace {
const int kLength = 1;
constexpr float kPiNumber = 3.14159265f;
constexpr float kCircumferenceArc()
{ return (2*kPiNumber*kLength) / 360; }
}
我在我的应用程序中使用 constexpr,但出现编译错误。
namespace {
const int kLength = 1;
const float kPiNumber = 3.14159265;
constexpr float kCircumferenceArc()
{ return (2*kPiNumber*kLength) / 360; }
}
我得到的错误是:
read of non-constexpr variable 'kPiNumber' is not allowed in a constant expression { return (2*kPiNumber) / 360; }
有人可以帮我解决这个问题吗?
提前致谢
constexpr 变量必须从编译时已知的值进行初始化。一个 const 变量,例如:
const float kPiNumber = 3.14159265;
由于某些历史原因 'const float' 在编译时未知。 要使其工作,您必须将此行更改为:
constexpr float kPiNumber = 3.14159265;
完整代码如下:
namespace {
const int kLength = 1;
constexpr float kPiNumber = 3.14159265f;
constexpr float kCircumferenceArc()
{ return (2*kPiNumber*kLength) / 360; }
}