digitalmars.D.bugs - Interface member classes have no code generated
- Matthew Wilson (32/32) Jul 14 2004 I get
I get " Error 42: Symbol Undefined __Class_3std3dtl6common10IContainer9Container" from the following code interface IContainer { public: alias uint index_type; alias uint size_type; public: class Container : public IContainer { public: bool isEmpty(); IEnumerator enumerate() { return new Enumerator(this.toArray()); } protected: abstract Object[] toArray(); } alias Container selecting_type; static selecting_type hack; // IContainer methods public: /// Denotes whether the given container is empty bool isEmpty(); /// Returns an enumerator object representing the elements of the container IEnumerator enumerate(); }
Jul 14 2004
Interfaces are only supposed to have member functions in them. Anything else should generate an error. "Matthew Wilson" <admin.hat stlsoft.dot.org> wrote in message news:cd4vbd$1ih4$1 digitaldaemon.com...I get " Error 42: Symbol Undefined __Class_3std3dtl6common10IContainer9Container" from the following code interface IContainer { public: alias uint index_type; alias uint size_type; public: class Container : public IContainer { public: bool isEmpty(); IEnumerator enumerate() { return new Enumerator(this.toArray()); } protected: abstract Object[] toArray(); } alias Container selecting_type; static selecting_type hack; // IContainer methods public: /// Denotes whether the given container is empty bool isEmpty(); /// Returns an enumerator object representing the elements of the container IEnumerator enumerate(); }
Jul 16 2004
Wow! If that's the case: - I'd *like* you to enhance the lang to allow any kinds of member types, including classes, other interfaces, static members. Given the fact that interfaces/classes currently don't appear to have their member types accessible to the outside world, I'm using static members + typeof as a temporary hack. - I have to suggest that they *must* be allowed to have member aliases/typedefs. Otherwise, DTL and other template libs are going to be impossible/crippled/very-unobvious "Walter" <newshound digitalmars.com> wrote in message news:cda8ht$ssu$2 digitaldaemon.com...Interfaces are only supposed to have member functions in them. Anything else should generate an error. "Matthew Wilson" <admin.hat stlsoft.dot.org> wrote in message news:cd4vbd$1ih4$1 digitaldaemon.com...I get " Error 42: Symbol Undefined __Class_3std3dtl6common10IContainer9Container" from the following code interface IContainer { public: alias uint index_type; alias uint size_type; public: class Container : public IContainer { public: bool isEmpty(); IEnumerator enumerate() { return new Enumerator(this.toArray()); } protected: abstract Object[] toArray(); } alias Container selecting_type; static selecting_type hack; // IContainer methods public: /// Denotes whether the given container is empty bool isEmpty(); /// Returns an enumerator object representing the elements of the container IEnumerator enumerate(); }
Jul 16 2004