我需要将用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 ++。所以,请帮帮我。
答案 0 :(得分:5)
您可以选择传递一对迭代器而不是initializer_list
。但是你也必须改变客户端代码。
如果它是一个编写良好的类,它必然会有其他构造函数,例如我提到的那个。在这种情况下,我建议只删除需要initializer_list
的重载。如果客户端代码使用该构造函数,则可能也必须更改它们。