Преобразование списка инициализатора - PullRequest
6 голосов
/ 25 июля 2011

Мне нужно преобразовать класс, написанный на 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.

Я действительно изо всех сил пытаюсь изменить 100 строк нового кода C ++ на старый C ++. Так что, пожалуйста, помогите мне.

1 Ответ

5 голосов
/ 25 июля 2011

Вместо initializer_list вы можете передать пару итераторов. Но вам также придется изменить код клиента.

Если это хорошо написанный класс, у него обязательно должны быть другие конструкторы, такие как тот, который я упомянул. В этом случае я бы рекомендовал просто снять перегрузку, которая занимает initializer_list. Клиентский код, возможно, придется изменить, если он использует этот конструктор.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...