小编Mr_*_*1mm的帖子

C++中的static const double初始化

我有一些遗留代码,我正在用"更新"的编译器构建并运行一些对我来说没有意义的静态const double初始化错误.这就是我所拥有的:

//header.h

class myclass
{
   private:
      static const double foo = 3.1415;
      static const double bar = 12345.0 * foo;
};
Run Code Online (Sandbox Code Playgroud)

用gcc版本4.3.3编译此代码时 - 我看到以下错误:

 foo cannot appear in a constant-expression
Run Code Online (Sandbox Code Playgroud)

我已经将其解释为不是静态初始化顺序惨败,因为我相信内部数据类型具有良好定义的初始化顺序 - 尤其是当它们位于同一个类中时.作为测试,我已经尝试static_cast< double >过表达式,但是这会产生另一个错误,指出在const表达式中只允许使用整数类型转换.

c++ double initialization constant-expression

1
推荐指数
1
解决办法
506
查看次数

标签 统计

c++ ×1

constant-expression ×1

double ×1

initialization ×1