转换初始化列表

时间:2011-07-25 07:23:24

标签: c++ c++11 initializer-list

我需要将用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; }
}

必须转换为VS 2008所理解的旧标准。<​​/ p>

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

1 个答案:

答案 0 :(得分:5)

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

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