| // PR c++/46046 | |
| template <class T> | |
| struct foo | |
| { | |
| template <class U, class V = void> | |
| struct type | |
| {}; | |
| template <class V> | |
| struct type< | |
| typename T::template some_type<int>, | |
| V | |
| > | |
| {}; | |
| }; | |
| template <class T> | |
| class bar | |
| {}; | |
| int main() | |
| { | |
| typedef foo<bar<int> > cont; | |
| cont::type<char> obj; // { dg-error "cannot be defined" } | |
| } |