31 lines
322 B
C++
31 lines
322 B
C++
|
#include <cassert>
|
||
|
|
||
|
template<typename T>
|
||
|
class X
|
||
|
{
|
||
|
public:
|
||
|
// the :: should trigger elaboration of Z<int>
|
||
|
enum { e = T::e };
|
||
|
};
|
||
|
|
||
|
template<typename T>
|
||
|
class Y:public X<T>
|
||
|
{
|
||
|
public:
|
||
|
enum { e = X<T>::e } ;
|
||
|
};
|
||
|
|
||
|
template<typename T>
|
||
|
class Z
|
||
|
{
|
||
|
public:
|
||
|
enum { e = 1 };
|
||
|
};
|
||
|
|
||
|
Y<Z<int> > y;
|
||
|
|
||
|
int main()
|
||
|
{
|
||
|
assert(y.e==1);
|
||
|
}
|