LINUX.ORG.RU

История изменений

Исправление soomrack, (текущая версия) :

Что значит «сразу»?

man initializer_list

https://en.cppreference.com/w/cpp/utility/initializer_list

если коротко, то {} приведет к созданию прокси-объекта, данные которого быстро перенесутся в основной объект. Это может быть сильно быстрее и удобнее, чем прямой вызов конструктора, тем более, с конвертацией из другого типа….

Пример различия:

Vec* v1 = new std::vector(10); // vector из 10 элементов заполненный 10 нулями
Vec* v2 = new std::vector{10}; // vector из одного элемента в котором значение 10

PS: конструктор, само собой, для std::string все равно вызовется, но аргумент будет initializer_list<>

Исходная версия soomrack, :

Что значит «сразу»?

man initializer_list

https://en.cppreference.com/w/cpp/utility/initializer_list

если коротко, то {} приведет к созданию прокси-объекта, данные которого быстро перенесутся в основной объект. Это может быть сильно быстрее и удобнее, чем прямой вызов конструктора, тем более, с конвертацией из другого типа….

Пример различия:

Vec* v1 = new std::vector(10); // vector из 10 элементов заполненный 10 нулями
Vec* v2 = new std::vector{10}; // vector из одного элемента в котором значение 10