template struct A { static const int n = 1; } ; template struct B; template struct restype_order { static const int s = A::n; typedef typename B<(s > 0)>::t t; };