Отчасти связано с Почему вместо конструктора преобразования вызывается конструктор конструктора?
Существует два синтаксиса для инициализации, direct- и copy-initialization:
A a(b);
A a = b;
Я хочу знать мотивацию для них, имеющих различное определенное поведение. Для инициализации копии задействована дополнительная копия, и я не могу придумать какой-либо цели для этой копии. Так как это копия из temp, она может и, вероятно, будет оптимизирована, поэтому пользователь не может полагаться на это: эрго - дополнительная копия сама по себе не является достаточной причиной для различного поведения. Итак... почему?