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








"Matthew" <admin stlsoft.dot.dot.dot.dot.org>