转换初始化列表

Arj*_*jun 6 c++ initializer-list c++11

我需要将用C++ 0x编写的类转换为在Visual Studio 2008中编译的类.代码使用std :: 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(size); *this = ini; }
}
Run Code Online (Sandbox Code Playgroud)

必须转换为VS 2008所理解的旧标准.

我真的很难将100行新的C++代码改为旧的C++.所以,请帮帮我.

Arm*_*yan 5

而不是initializer_list你可以选择传递一对迭代器.但是你也必须改变客户端代码.

如果它是一个写得很好的类,它必然会有其他构造函数,例如我提到的那个.在这种情况下,我建议只删除需要的重载initializer_list.如果客户端代码使用该构造函数,则可能也必须更改它们.