Gibt es einen Unterschied zwischen der Kopierinitialisierung und der direkten Initialisierung?

Angenommen, ich habe diese Funktion:

<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>

Sind diese Aussagen in jeder Gruppierung identisch? Oder gibt es in einigen Initialisierungen eine zusätzliche (möglicherweise optimierbare) Kopie?

Ich habe gesehen, wie Leute beides sagten. Bittezitieren Text als Beweis. Fügen Sie bitte auch andere Fälle hinzu.

Antworten auf die Frage(8)

Ihre Antwort auf die Frage