Der Standard Konstruktor einer std::array
, die eine eingebaute (wie float
, int
, etc.) wäre die schnellste, gefolgt von bewegen und Kopie (die in äquivalenter Weise schnell sein würde).
std::array
ist ein Aggregat, so dass der Standard Konstruktor nichts tut. Wie auf cppreference angegeben
beachten Sie, dass Standardinitialisierung
Hinweis auf unbestimmte Werte für nicht-Klasse T führen kann, da diese die Einbauten sind, verschieben und kopieren sind ganz die gleiche Leistung klug, da Sie können eine integrierte Datei nicht schneller als kopieren kopieren.
Also für eine std::array
ist die Reihenfolge Standard>bewegen == Kopie.
Dies gilt nicht unbedingt für Aggregate, die Nicht-Einbauten enthalten, aber gilt für Aggregate, die nur Einbauten oder andere Aggregate enthalten, die nur Einbauten enthalten.
Es hängt von der Art der Elemente ab, die im 'Array' gespeichert sind. Könnte move = default = copy oder move = copy> default oder eine beliebige Kombination sein. – user975989
Sie haben Recht. Ich habe tatsächlich über eingebaute Typen nachgedacht. Ich korrigiere das in meiner Frage. – Corvinus
Nun verschieben = kopieren für eine eingebaute, so kopieren/verschieben ist das gleiche wie ein memcpy Äquivalent und Standard ist ein Memset entspricht (möglicherweise SIMD, etc). Egal, ich log, Standard ist kein Memset, es ist nur nicht initialisiert. – user975989