我有一个接受对象的模板函数。我需要确定对象是否从特定的基类派生。如果它是从基类派生的,则需要调用其他函数。无论如何,我可以在C++ Linux中做到吗?
class baseA{
};
class derivedA:baseA{
};
class testB{
};
template<typename T>
void functionA(const T& value){
//if T is derived from baseA, call an additional function
//perform common operations for derivedA and testB...
}
为了明确起见,附加函数是派生A中的成员函数,而不是testB中的成员函数。
最佳答案
Boost.TypeTraits
boost::is_base_of
const bool is = boost::is_base_of<Base,Derived>::value;
How does `is_base_of` work?