問題 copy vs. memcpy vs memmoveに関して(ここで優れ た情報、ところで)、私は読んでいて、口頭で言われていることとは異なり、たとえばcppreference注: memcpy はに変更されましたこの引用を受け取ってからmemmove。 --
ノート
実際には、 の実装では
std::copy複数の代入を避けstd::memcpy、値の型がTriviallyCopyable
-- std::copy(nor std::copy_backward)は、宛先範囲の先頭のみがソース範囲に入ってはならず、範囲全体が重複してはならないため、 に関して実装することはできません。memcopystd::copymemcpy
Visual-C++ の実装 (xutilityヘッダーを参照) を見ると、VC++ がmemmoveを使用していることもわかりますが、現在は よりも要件が緩和されていますstd::copy。
... オブジェクトがオーバーラップする可能性があります。コピーは、文字が一時的な文字配列にコピーされ、次に文字が配列からコピーされたかのように行われます ...
したがってstd::copy、の観点からの実装memcpyは不可能に見えますが、使用memmoveは実際にはペシミゼーションです。(ほんの少しの悲観化、おそらく測定できないかもしれませんが、それでも)
質問に戻るには:私の要約は正しいですか? これはどこかで問題がありますか?指定されているものに関係なく、memcpyの要件も満たさないの実用std::copy的なmemcpy実装の可能性さえありstd::copyますか?