のはA
をいくつか自明移動し、構成可能を見て、(ない自明)、コピー構築可能(それでもコピー構成可能)ユーザ定義(クラス)を入力してみましょう:次にA
(移動-建設かの移動簡単なコピーと移動の操作は異なりますか?
struct A
{
A() = default;
A(A const &) {}
A(A &&) = default;
};
move-assignment)は、以下のように文字通りに完結します。ソースのビット単位でがコピーされ、操作名が「動いている」にもかかわらず、宛先にがコピーされました。些細な動きの中で右手側は(正式に)const
ではないが、操作全体のトリビアルは右手側の(実際の)非可変性を必要とするのではないか?私の考えでは、些細なコピー操作と簡単な移動操作は、(メモリ、メモリレイアウト、ビットなどの点で)その本質的に全く同じであることを意味します。私は正しい?
もしそうなら、私は、単純に移動可能ではあるが、ユーザーコードには単純にコピーコンストラクタブルなタイプではないと思うなら、明らかに反パターンを見ます。私は正しい?
このような人工的であるが使用可能なタイプの例がありますが、それは単純にコピーコンストラクタブル/アサイナブルではありませんが、
"私の考えでは、些細なコピー操作と簡単な移動操作は、深い性質(メモリ、メモリレイアウト、ビットなど)でまったく同じであることを意味します。 。 – ildjarn
ええ、その質問は全くこの問題に関連していません。 – Barry
"エッジ"の場合:コピーコンストラクタブルではないタイプは、自立的にコンストラクタブルであり、簡単にコピーコンストラクタブルではありません(削除されたコピーコンストラクタは自明ではありません)。 – Holt