More enum/template problems
Todd Veldhuizen
todd@p200.cybervision.com
Tue Sep 9 06:54:00 GMT 1997
Jody, thanks for patching that enum problem. Here's another one
which is eerily similar. It fails with the 970907 snapshot.
bug27.cpp:31: `a' is not a member of type `Y<X,X,X>'
bug27.cpp:31: enumerator value for `a' not integer constant
template<int N1, int N2>
struct meta_max {
enum { max = (N1 > N2) ? N1 : N2 };
};
struct X {
enum {
a = 0,
n = 0
};
};
template<class T1, class T2, class T3>
struct Y {
enum {
a = T1::a + T2::a + T3::a,
n = meta_max<meta_max<T1::n,T2::n>::max, T3::n>::max
};
};
template<class T>
struct Z {
enum {
a = T::a,
n = T::n
};
};
Z<Y<X,X,X> > z;
More information about the Gcc-bugs
mailing list