1
我懷疑在目前的C++標準下這是不可能的,但我仍然會問。has_member_of_type - C++中的模板元編程
我想要實現的是讓編譯器在編譯期間判斷出類是否包含Base類型的任何成員變量(及其派生類)。
例如
struct Base
{
};
struct Derived : public Base
{
};
struct Foo
{
int x;
Derived a;
Derived b;
};
struct Bar
{
int x;
};
我想沿着線的東西,
has_member_of_type<Base, Foo>::value
在這種情況下將是真實的(一個或多個成員瓦爾有基地的基本類型),而其他任何東西(包括基本類型)會被認爲是錯誤的。
例如
has_member_of_type<Base, char>::value = false
has_member_of_type<Base, Bar>::value = false
請注意,我試圖用has_member_of_type我在圖書館發現和使用不同的代碼分支,如果用戶類有某種類型的成員變量。