2010-06-19 45 views
3

可能重複:
C++ class template of specific baseclass如何確保類模板參數是從特定類Foo派生的?

class Base 
{ 
... 
}; 

class Derived1 : public Base 
{ 
... 
}; 

class Derived2 : public Base 
{ 
... 
}; 

class Unrelated 
{ 
... 
}; 

我想有一個接受的參數只有類Derived1和Derived2的,但不無關係類模板ClassTemplate,所以我可以做:

ClassTemplate<Derived1> object1; 

ClassTemplate<Derived2> object2; 

但我不應該這樣做:

ClassTemplate<Unrelated> object3; 

是否有可能?

回答

5

使用boost::is_base_of

template<class T> class ClassTemplate { 
    BOOST_STATIC_ASSERT((boost::is_base_of<Base, T>::value)); 
}; 
1

使用boost靜態斷言類型爲組合從Boost.TypeTraits性狀

相關問題