[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: