字段初始值设定项不是常量g ++ 4.8.4

时间:2016-06-10 23:19:19

标签: c++ compilation g++

我尝试使用g ++ 4.8.4在我的笔记本电脑上编译以下代码:

#include <algorithm>
#include <iostream>
#include <initializer_list>
#include <tuple>

struct Storage {
  static const int num_spatial_subset = 8;
  static constexpr std::initializer_list<std::initializer_list<double>> vectors{ {0,0,0}, 
      {0,1,0}, 
      {0,0,1}, 
      {1,1,0}, 
      {1,0,1}, 
      {0,1,1}, 
      {1,0,0}, 
      {1,1,1} };
  double storage[num_spatial_subset][vectors.size()];
};


int main()
{
}

我收到此错误消息:

error: field initializer is not constant
constexpr std::initializer_list< std::initializer_list<double> > vectors{ {0,0,0}, {0,1,0}, {0,0,1}, {1,1,0}, {1,0,1}, {0,1,1}, {1,0,0}, {1,1,1} };

但是,我使用相同的编译参数在coliru(g ++ 6.1.0)上复制/粘贴相同的代码,并且它有效。

有人可以告诉我有什么问题吗?

谢谢。

1 个答案:

答案 0 :(得分:1)

实际上,正如Chris和Baum指出的那样,更新到g ++ 4.9修复了它。