我当然可以用
is_base
如果基类中没有模板。但是,如果是这样,我就看不到任何方法来通用地匹配任何派生类型。以下是我所指的一个基本例子:
#include <boost/mpl/bool.hpp>
template < typename T >
struct test_base
{
};
template < typename T >
struct check : boost::mpl::false_ {};
template < typename T >
struct check<test_base<T> > : boost::mpl::true_ {};
struct test_derived : test_base<int> {};
#include <iostream>
int main()
{
std::cout << check<test_derived>::value << std::endl;
std::cin.get();
}
我想把它还回去
true_
而不是
false_
. 真正的例子有7个模板参数,大多数是默认的,使用boost.parameter按名称引用它们。为了使用
ISX基
我必须能够以某种方式拉出参数,而且在声明内部typedef的情况下,我找不到实现这一点的方法。
我认为这是不可能的。希望被证明是错误的。