【发布时间】:2014-06-21 05:09:56
【问题描述】:
采用以下类层次结构:
template<typename T>
class Foo {
public:
T fooMethod() { ... }
};
class Moo : public Foo<bool> {
...
};
如果我现在在某处写Moo::fooMethod,编译器将推导出Foo<bool>::fooMethod。我如何在编译之前将Foo<bool> 自己推断为fooMethod 的父级?
动机:编译器不允许将Foo<bool>::fooMethod 作为bool (Moo::*)() 的模板参数传递,因为在该上下文中它将是bool (Foo<bool>::*)() 类型。但是由于我有多重继承,我不知道fooMethod会在哪个父级,所以必须推导出来。
【问题讨论】:
-
我不认为只有using an rvalue-reference 是可能的?
-
简单的直通功能是否可以接受/不会太不方便?
标签: c++ inheritance