LINUX.ORG.RU

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

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

https://habr.com/ru/company/jugru/blog/469465/

https://en.cppreference.com/w/cpp/language/copy_elision

Ребят, просветите, есть ли какая-то разница между инициализацией с разными скобками?

Есть.

Test test1(0.0, 4.2);  // ok
Test test2{ 0.0, 4.2 }; // error: narrowing conversion of ‘1.0e+0’ from ‘double’ to ‘int’

Варианты с разнообразным вкладыванием фигурных скобок будут отрабатывать по-разному в зависимости от объявленных конструкторов.

Кроме того, при наличии конструктора из std::initializer_list Test{1, 2} в данном примере будет вызовет именно его.

Исправление Siborgium, :

https://habr.com/ru/company/jugru/blog/469465/

https://en.cppreference.com/w/cpp/language/copy_elision

Ребят, просветите, есть ли какая-то разница между инициализацией с разными скобками?

Есть.

Test test1(0.0, 4.2);  // ok
Test test2{ 0.0, 4.2 }; // error: narrowing conversion of ‘1.0e+0’ from ‘double’ to ‘int’

Варианты с разнообразным вкладыванием фигурных скобок будут отрабатывать по-разному в зависимости от объявленных конструкторов.

Исправление Siborgium, :

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