Get lowest shared base class type in template

Viewed 214

Let's say I have a function that takes two different templated arguments:

template<typename T, typename U>
void fun(T t, U u);

Types T and U are part of the same inheritance tree. I'd like to get the most specific class that they both inherit from.

typedef /*something*/ shared_parent;

For example, if type T and type U are the same type, I want that type. If type T inherits from type U, I want type U. If Type T and type U both inherit from the same parent, I want that parent.

If types T and U are not part of the same inheritance tree, I don't care what happens.

0 Answers
Related