由于添加命名空间而导致的编译错误

时间:2016-05-06 05:34:31

标签: c++ namespaces c++14 initializer-list

我收到初始化列表转换错误(static_data.h) (我用g ++ -std = c ++ 14)

#include<vector>
#include<string>

namespace Euler2D {

  class static_data{
  public :
    const std::vector<std::string> path{"x","y","z"};
  };

}

但是我可以编译它(并且在没有任何其他类/函数的问题的情况下使用它)

class static_data{
  public :
    const std::vector<std::string> path{"x","y","z"};
  };

那么如何在不牺牲初始化列表的情况下将static_data类放入命名空间?

1 个答案:

答案 0 :(得分:0)

我认为您使用的是MSVC 2010?在这种情况下,你将面临初始化矢量的问题。尝试这个,它应该适合你

#include<vector> 
#include<string>
using namespace std;

namespace Euler2D {
    class static_data{
      public :    
        static std::vector<std::string> path;
    };
    const char *initialval[] = {"x", "y", "z"};
    std::vector<std::string> static_data::path(initialval, end(initialval)); 
 }