http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52126

--- Comment #2 from tmmikolajczyk at gmail dot com 2012-02-05 20:57:29 UTC ---
Further investigation shows that the issue appears only when inheritance from
the template class (class B : private A<T>) is provided explicitly. According
to the standard a nested class defined inside a class template is implicitly
template as well. The modified code reflecting that rule compiles fine:

template<typename T>
class A
{
public:
    void foo() {};

    class B : private A
    {
    public:
        typedef A inherited;
        using inherited::foo;
    };
};

Anyway, the first version of the code seems to be valid C++ code.

Reply via email to