著者:Vitaly Buturlin
コンテンツ:
ささいなクラス
些細なクラス (自明なクラスは、) -特別なメンバ関数は、コンパイラによって提供されたクラスまたは構造体である(明らかにない実装が存在しない)、または明示的にデフォルトとして定義。特別なメンバー関数はデフォルトで(明示的または暗黙的に)取るに足らないものとして宣言されているため、このようなクラスには制御コードはあり ません。
さらに、追加の要件があり、些細なクラスには次のものがあってはなりません。
仮想機能
重要な基本クラス
重要なデータタイプ
「些細な」という言葉は、次の存在を意味します。
些細な特別メンバー関数(msdn)
メンバーPOD(以下を参照)
些細なクラスは、memcpyなどの関数を使用して完全な精度で安全にコピーできます。
メンバー関数の些細なこと(制御コードの欠如)は、次のことを意味します。
初期化なしのオブジェクトのメモリ割り当て
オブジェクトのバイトコピー
クリーニングせずにメモリを解放する
標準レイアウト
標準構造 (標準レイアウト)-アクセシビリティC ++を含む構造(構造):
仮想関数と仮想基本クラス
いくつかのレベルのアクセス(プライベート、保護)
参照タイプの非静的メンバー
標準構造:
非標準のメンバーはありません
非標準構造以外の基本クラスはありません
非静的データメンバーを持つ基本クラスが複数ありません
非静的メンバーを宣言するための2つの場所がありません(たとえば、基本クラスとそれ自体)
3つ以上の基本(または間接)クラスがありません
標準構造には 予測可能なメモリ構造があります。これは、コンパイラが独自の裁量で構造化できるデータが含まれていないためです(たとえば、パブリック/プライベート/保護の場合)-書き込みと メモリへの保存の両方。
著者:Vitaly Buturlin