| // { dg-do compile } |
| // Origin: Mark Anders <mark dot a dot anders at intel dot com> |
| // PR c++/15503: disambiguators in base classes and mem-initializers |
| |
| template <typename K1> struct O { |
| template <typename K2> struct I {}; |
| }; |
| |
| template <typename T> |
| struct A : typename O<T>::template I<int> { // { dg-error "keyword 'typename' not allowed" } |
| A() : typename O<T>::template I<int>() // { dg-error "keyword 'typename' not allowed" } |
| {} |
| }; |
| |
| template <typename T> |
| struct B : O<T>::template I<int> { |
| B() : O<T>::I<int>() |
| {} |
| }; |