Является ли следующий кодИнициализация вектор векторов
vector<vector<int> > v(3,5);
правовой C++ 98? Является ли это законным C++ 11?
Он компилируется с MSVS 2010 и дает вектор размера 3, каждый из которых является вектором размера 5. Он не может скомпилироваться с MSVS 2013 и MSVS «14».
Неправомерный, поскольку 'std :: vector' имеет [явный конструктор] (http://en.cppreference.com/w/cpp/container/vector/vector), берущий размер. – 0x499602D2
Я считаю, что это была ошибка в stdlib VS2010, которая вызвала конструктор 'vector', в котором были задействованы два итератора. Этот конструктор не должен участвовать в разрешении перегрузки, когда два аргумента являются целыми типами. – Praetorian