September 09, 2004 question about accessing static member | ||||
---|---|---|---|---|
| ||||
Could someone help with the following question: If the following example compiles without errors, why doesn't it work when I make the member B::a static? (It works with Borland C++) This one compiles without error: template<class T> struct A { T t; }; class B { private: struct C { int i; }; A<C> a; public: B() { a.t.i = 0; } } Error: member 'B::C' of class 'B' is not accessible template<class T> struct A { T t; }; class B { private: struct C { int i; }; static A<C> a; // member a made static public: B() { a.t.i = 0; } } A<B::C> B::a; Sorry for my poor English. |
September 09, 2004 Re: question about accessing static member | ||||
---|---|---|---|---|
| ||||
Posted in reply to Szabolcs Horvát | Szabolcs Horvát wrote: > Error: member 'B::C' of class 'B' is not accessible > > template<class T> struct A { T t; }; > > class B { > private: > struct C { int i; }; > static A<C> a; // member a made static > public: > B() { a.t.i = 0; } > } > > A<B::C> B::a; Unless I've missed something, you've found a bug. This works on g++ and intel linux, provided you add the required semi-colon after your class definition. > Sorry for my poor English. No need to apologise, it looks fine to me. Daniel |
Copyright © 1999-2021 by the D Language Foundation