template <const int i>
class INTEGER
{
#if i == 0
int val;
#elif i == 1
char val;
#elif i == 2
long val;
#endif
};
should yield:
INTEGER<0> two_bytes;
INTEGER<1> one_byte;
INTEGER(2) four_bytes;
//sizeof OPERATOR SHOWS THAT EVERY INSTANTIATION
//OF val IS OF
TYPE int.