// Build don't run: | |
// Special g++ Options: -Wno-deprecated | |
struct B { | |
typedef int I; | |
}; | |
template <class T> | |
struct D1 : public B { | |
}; | |
template <class T> | |
struct D2 : public D1<T> { | |
I i; // WARNING - implicit typename | |
}; | |
template <> | |
struct D1<int> { | |
typedef double I; | |
}; | |
template <class T> | |
void f(T); | |
template <> | |
void f(double) {} | |
int main() | |
{ | |
D2<int> d2i; | |
f(d2i.i); | |
} |