16

これは、cppreference.comのstd :: is_copy_constructible(1)およびstd :: is_trivially_copy_constructible 2)のドキュメントからの抜粋です。

1)型がCopyConstructibleであるかどうか、つまり、アクセス可能な明示的または暗黙的なコピーコンストラクターがあるかどうかを確認します。要件が満たされている場合は、trueに等しいメンバー定数値が提供されます。それ以外の場合、値はfalseです。

2)(1)と同じですが、コピーコンストラクタ式は簡単ではない操作を呼び出しません。

では、ここで簡単な操作と見なされるものは何ですか?

4

1 に答える 1

17

前に一度言ったように:

では、これらの些細なことと重要なことは何ですか?

クラス X のコピー/移動コンストラクターは、それがユーザー提供でなく、

— クラス X には仮想関数 (10.3) も仮想基本クラス (10.1) もありません。

— 各直接基底クラス サブオブジェクトをコピー/移動するために選択されたコンストラクターは自明であり、

— クラス型 (またはその配列) である X の非静的データ メンバーごとに、そのメンバーをコピー/移動するために選択されたコンストラクターは自明です。

それ以外の場合、コピー/移動コンストラクターは自明ではありません。

基本的にこれは、コピーまたは移動コンストラクターがユーザーによって提供されず、クラスに仮想要素がなく、このプロパティがクラスのすべてのメンバーと基本クラスに対して再帰的に保持される場合、自明であることを意味します。

于 2013-03-04T23:36:07.483 に答える