В чем причина того, что копирование и прямая инициализация ведут себя по-разному?

Что-то связанное с Почему вызывается конструктор копирования вместо конструктора преобразования?

Есть два синтаксиса для инициализации, прямая инициализация и инициализация копированием:

A a(b);
A a = b;

Я хочу знать, почему они имеют различное определенное поведение. Для инициализации копии задействована дополнительная копия, и я не могу придумать никакой цели для этой копии. Поскольку это копия из временного файла, она может и, вероятно, будет оптимизирована, поэтому пользователь не может полагаться на то, что это произойдет, поэтому дополнительная копия сама по себе не является достаточной причиной для другого поведения. Итак... почему?

43
задан Community 23 May 2017 в 11:59
поделиться