以下是两个案例.
案例1)Base-> BaseIndirect-> DerivedIndirect
案例2)Base-> Derived
在案例2)中,我能够使用3种符号调用Base类的模板函数.在案例1)中,我只能使用其中一个符号来调用Base类的模板函数.并且,我无法使用任何符号调用BaseIndirect的模板函数:(.如何解决此问题?谢谢.
struct Base {
template<bool R> inline void fbase(int k) {};
};
template<class ZZ> struct BaseIndirect : Base {
template<bool R> inline void fbaseIndirect(int k) {};
};
template<class ZZ>
struct DerivedIndirect : BaseIndirect<ZZ> {
DerivedIndirect() {
this->fbase<true>(5); // gives error, line 13
fbase<true>(5); // gives error, line 14
Base::fbase<true>(5); // WORKS, line 15
this->fbaseIndirect<true>(5); // gives error, line 16
fbaseIndirect<true>(5); // gives error, line 17
BaseIndirect<ZZ>::fbaseIndirect<true>(5); // gives error, line 18
}
};
template<class …Run Code Online (Sandbox Code Playgroud)