转换初始值设定项列表 我需要将C++中的类转换成VisualStudio 2008中编译的类。 代码使用std::initializer\u list

转换初始值设定项列表 我需要将C++中的类转换成VisualStudio 2008中编译的类。 代码使用std::initializer\u list,c++,c++11,initializer-list,C++,C++11,Initializer List,下面是代码 template <typename data_type> class symmatrix { public: typedef data_type value_type; symmatrix(std::initializer_list<T> const& size, value_type ini = value_type()) : m_data(0), m_memory(false) { resize(s

下面是代码

template <typename data_type>
class symmatrix
{
public:


    typedef data_type         value_type;
    symmatrix(std::initializer_list<T> const& size, value_type ini = value_type())
      : m_data(0), m_memory(false) { resize(size); *this = ini; }
}
模板
类对称矩阵
{
公众:
类型定义数据类型值类型;
symmatrix(std::初始值设定项\u list const&size,value\u type ini=value\u type())
:m_数据(0),m_内存(false){resize(size);*this=ini;}
}
必须转换为VS 2008理解的旧标准


我真的很努力把100行新C++代码改成老C++。所以,请帮帮我

您可以选择传递一对迭代器,而不是
初始值设定项列表。但是您还必须更改客户端代码


如果它是一个编写良好的类,那么它肯定会有其他构造函数,比如我提到的那个。在这种情况下,我建议只删除使用
初始值设定项列表的重载。如果客户端代码使用了该构造函数,那么它也可能需要更改

您是否理解,更改构造函数很可能意味着更改所有使用该构造函数的站点?可以编写语义等效的构造函数,但它不会与旧构造函数在源代码上兼容。如果您当前(从您的问题判断)正在生成与VS2008兼容的C++0x(VS2010?)项目版本,我建议您花点时间阅读导致标准修改的文档,以及代码中的等价物代表了什么。根据当前代码使用该类的数量,以及是否要维护这两个版本(C++03/0x),您可能会认为该类的某些功能不值得使用,并将其从C++03版本中删除。很抱歉,我无法获取。你能举个例子吗。