0
直感的には、私はmove> default> copy(速いほうが速い)と言うでしょう。
これは間違いありませんか?ビルトイン(等float
、int
など)を保持std::array
の
直感的には、私はmove> default> copy(速いほうが速い)と言うでしょう。
これは間違いありませんか?ビルトイン(等float
、int
など)を保持std::array
の
デフォルトコンストラクタは移動とコピー(等価的に速いであろう)、続いて、最速であろう。
std::array
は集合体なので、のデフォルトのコンストラクタは何も行いません。デフォルトの初期化は、これらのことから、内蔵インが移動し、で、コピーするので、全く同じ性能が賢明であることを非クラスTのための不確定値で
お知らせを生じる可能性があることcppreference
ノートに述べたようにあなたはそれをコピーするよりも速くビルトインを移動することはできません。
std::array
ためだから、、順序はデフォルト>移動 == コピーです。
これは、非組み込み関数を保持する集計では必ずしも成立しませんが、組み込み関数または組み込み関数のみを保持するその他の集計を保持する集計では保持されます。
'array'に格納されている要素のタイプによって異なります。 move = default = copy、またはmove = copy> defaultまたは任意の組み合わせです。 – user975989
あなたは正しいです。私は実際に組み込み型について考えていました。私は私の質問でそれを修正しています。 – Corvinus
Well move =組み込みのためのコピーなので、copy/moveはmemcpyの同等物と同じであり、デフォルトはmemset相当(おそらくSIMDなど)です。決して私は嘘をついていません。デフォルトはmemsetではなく、初期化されていません。 – user975989