大きさ0のものを除いて、非静的メンバ変数を持たない。仮想メンバ関数を持たない。仮想基底クラスを持たない。空のクラスでない基底クラスを持たない。大きさ0のメンバ変数には、以下のものがある。上の例でコンパイラによってはエラーになる。持っていないためエラーになる。traitsC++11では要件が「型Tは完全型であるか、const/volatile修飾された(あるいはされていない)voidか、要素数不明の配列型でなければならない。」だったが、これは間違いであるため、C++14で「型Tが非共用体のクラスである場合、その型は完全型でなければならない。下に提供されています。