0
我有一个简单的混合,我正在混合到我的其他模板类。模板定义顺序问题
template<typename T> class mixin {
static T* null() { return nullptr; }
auto func() -> decltype(null()->func());
};
template<...> class A : public mixin<A<...>> {
....
};
template<...> class B : public mixin<A<...>> {
....
};
template<...> class C : public mixin<A<...>> {
....
};
现在,我有一个问题。其中一个mixin函数将返回一个必须根据派生类型推导出来的类型。但是,当我尝试使用演绎来找到这种类型时,编译器告诉我我正在使用一个未定义的类型。如果我将mixin
的定义移动到类之后,那么在混合时我将无法从它继承。在这种情况下,如何更改我的类以允许类型扣除?
难道不该`自动FUNC() - >的...``而不是void`? – 2011-08-17 17:13:44