我有什么办法可以简化下列语句吗? (可能使用boost::enable_if
)。C++ boost enable_if问题
我有一个简单的类结构 - Base
基类,Derived1
,Derived2
继承自Base
。
我有以下代码:
template <typename Y> struct translator_between<Base, Y> {
typedef some_translator<Base, Y> type;
};
template <typename Y> struct translator_between<Derived1, Y> {
typedef some_translator<Derived1, Y> type;
};
template <typename Y> struct translator_between<Derived2, Y> {
typedef some_translator<Derived2, Y> type;
};
我想写使用translator_between
一个模板特相同的语句。
一个例子是什么我希望能够写(伪):
template <typename Class, typename Y>
ONLY_INSTANTIATE_THIS_TEMPLATE_IF (Class is 'Base' or any derived from 'Base')
struct translator_between<Class, Y> {
typedef some_translator<Class, Y> type;
};
任何方式实现这一目标使用boost::enable_if
和boost::is_base_of
?