G++ rejects legal code
Am doing right by posting this here? (A copy has gone to GNATS as well.)
====== begin error.cpp ======
template <class _TTW>
struct SGBb
{
typedef _TTW _TW;
_TW sy;
void* st;
SGBb <_TW> (_TW _sy, void* _st)
: sy (_sy), st (_st) {}
};
template <class _TW, class _TTWO>
struct SGBMb : public SGBb <_TW>
{
typedef _TTWO _TWO;
_TWO osy;
SGBMb <_TW, _TWO> (_TW _sy, _TWO _osy, void* _st)
: sy (_sy), osy (_osy), st (_st) {}
};
====== end error.cpp ======
$ g++-3.0 -c error.cpp
error.cpp: In constructor `SGBMb<_TW, _TTWO>::SGBMb(_TW, _TTWO, void*)':
error.cpp:19: class `SGBMb<_TW, _TTWO>' does not have any field named `sy'
error.cpp:19: class `SGBMb<_TW, _TTWO>' does not have any field named `st'
Reply to: