我有一个接受对象的模板函数。我需要确定对象是否从特定的基类派生。如果它是从基类派生的,则需要调用其他函数。无论如何,我可以在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?

07-24 09:46