关于c ++:如何使用’using’声明模板基类的模板方法?

How to declare a template method of a template base class using 'using'?

这里描述了两种访问模板基类成员的方法。当基类成员本身是模板时,这里将描述如何使用上面的第一个方法(this->)访问它。在这种情况下,是否也可以使用第二种方法(使用XXXX)?

例如,在下面的代码中,是否可以替换?????"有什么东西可以让代码工作吗?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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>();
    }
};


只是为了记录,尽管它没有提供任何答案或解决方案,但我目前正在与2013年的VS Express合作,我可以向您保证

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#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();
}

工作得很好…