https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119726

--- Comment #2 from Anders Wind <awia00 at gmail dot com> ---
Two questions: 

I am a bit interested in why my original case is correctly rejecting the code,
but the following is not being rejected (A is no longer a template class).

```
struct A {
    template<typename T>
    struct AA {

    };
};

struct B : A
{
};

template<>
struct B::AA<int> {

};
```

Besides, if A had not been used in CRTP, but simply has <int> 
```
template<typename U>
struct A {
    template<typename T>
    struct AA {

    };
};

struct B : A<int>
{
};

template<>
struct B::AA<int> {

};
```
Here is seems wrong to have to specialize A<int>::AA<int>, since it is no
longer limited to B's inner AA class.

Reply via email to