コンパイル期間制約(1)
1091 ワード
運行期間を減らすためには、タイプの安全によって、プログラムが崩壊するために、いくつかのテンプレートを使用して、コンパイル期間の型式検査を行います.
一つのタイプがPOD(plin old dataの略語であるかどうかを判断します.一つの一般的な古いデータ構造(POD)はデータ構造です.それは受動的なコレクションのフィールド値としてだけで、封包またはotheobject-orented特徴を使用しません.)
一つのタイプがPOD(plin old dataの略語であるかどうかを判断します.一つの一般的な古いデータ構造(POD)はデータ構造です.それは受動的なコレクションのフィールド値としてだけで、封包またはotheobject-orented特徴を使用しません.)
template <typename T>
struct must_be_pod
{
must_be_pod() {
void (*p)() = constraints;
}
static void constraints() {
union {
T T_is_not_pod;
};
}
};class node
{
public:
node() {}
int operator[](int index) const {
return 0;
}
};
int main()
{
// must_have_base<father,children> a;
// must_be_subscriptable<char[]> a;
must_be_pod<node> a;
//must_be_subscriptable_as_decayable_pointer<int*> a;
cout << "Hello World!" << endl;
return 0;
}