描述了两种访问模板基类成员的方法here。当基类成员本身是模板时,使用上面的第一个方法(this->)访问它here。有没有办法在这种情况下使用第二种方法(使用xxxx)?
例如,在下面的代码中,是否可以替换“????”用什么来使代码工作?
using namespace std;
template<typename T> class base
{
public:
template<bool good> void foo()
{
cout << "base::foo<" << boolalpha << good << ">()" << endl;
}
};
template<typename T> class derived : public base<T>
{
public:
using ????
void bar()
{
foo<true>();
}
};
答案 0 :(得分:1)
仅供记录,即使它没有提供任何答案或解决方法,但我目前正在使用VS Express 2013,我可以向您保证
#include <iostream>
template<typename T> class base
{
public:
template<bool good> void foo()
{
std::cout << "base::foo<" << good << ">()" << std::endl;
}
};
template<typename T> class derived : public base<T>
{
public:
void bar()
{
foo<true>();
}
};
struct A{};
void main() {
derived<A> a;
a.bar();
}
完美无缺......