djgpp is a dos compiler, so you'll get problems once you want to make real windows apps.

Keda: do you mean this thing:?
Code:
template <int S> class Y
{
  enum {V = S}:
}

template <class T> class X
{
   int i;
   X() {i = T::V;};
}
??

Well, who uses those? It's against the idea of templates: they are meant to be used for ANY datatype! You can use macros instead, but they're not good as they are not typed:
this initializes any DirectX structure that needs a size:
Code:
#define DD_INIT(s) \
    memset(&s, 0, sizeof(s)); s.dwSize = sizeof(s);
I admit I'd prefer:
Code:
template <class dd>
inline void DD_Init(dd s)
{
    memset(&s, 0, sizeof(s));
    s.dwSize = sizeof(s);
}
But such things are rather seldom...