小编ano*_*non的帖子

C++调用Base类的模板函数

以下是两个案例.

案例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)

c++ templates derived-class

7
推荐指数
1
解决办法
7000
查看次数

标签 统计

c++ ×1

derived-class ×1

templates ×1