A a(something)
sagt Konstrukt a
from something
. Wenn wir also something
durch {1.0f, 0.0f}
ersetzen, müssen wir einen Konstruktor finden, in dem der Parametermeter mit {1.0f, 0.0f}
initialisiert werden kann. Die einzigen Konstruktoren, die wir haben, sind die Standardkopie- und Verschiebungskonstruktoren, die jeweils const A&
und A&&
übernehmen.
Also, macht
%Vor% Erstellt tatsächlich ein temporäres A
und verwendet dann dieses temporäre, um a
zu initialisieren. In diesem Fall wird der Verschiebungskonstruktor verwendet, da das Objekt beweglich ist, und Verschiebungskonstruktoren ziehen es vor, Konstruktoren zu kopieren, wenn sie mit rvalues arbeiten.
Tags und Links c++ c++11 brace-initialization