[temp.dep] (original) (raw)
:
template class A {
A* p1;
A* p2;
A<T*> p3;
::A* p4;
class B {
B* p1;
A::B* p2;
typename A<T*>::B* p3;
};
};
template class A<T*> {
A<T*>* p1;
A* p2;
};
template <class T1, class T2, int I> struct B {
B<T1, T2, I>* b1;
B<T2, T1, I>* b2;
typedef T1 my_T1;
static const int my_I = I;
static const int my_I2 = I+0;
static const int my_I3 = my_I;
static const long my_I4 = I;
static const int my_I5 = (I);
B<my_T1, T2, my_I>* b3;
B<my_T1, T2, my_I2>* b4;
B<my_T1, T2, my_I3>* b5;
B<my_T1, T2, my_I4>* b6;
B<my_T1, T2, my_I5>* b7;
};
— end example