¿Hay alguna diferencia entre la inicialización de la copia y la inicialización directa?

Supongamos que tengo esta función:

<code>void my_test()
{
    A a1 = A_factory_func();
    A a2(A_factory_func());

    double b1 = 0.5;
    double b2(0.5);

    A c1;
    A c2 = A();
    A c3(A());
}
</code>

En cada agrupación, ¿son idénticas estas afirmaciones? ¿O hay alguna copia adicional (posiblemente optimizable) en algunas de las inicializaciones?

He visto a gente decir ambas cosas. Por favorcitar texto como prueba. También agregue otros casos por favor.

Respuestas a la pregunta(8)

Su respuesta a la pregunta