On Sunday, 12 May 2013 at 17:13:30 UTC, Timo Sintonen wrote:
On Sunday, 12 May 2013 at 15:27:04 UTC, Iain Buclaw wrote:
On 12 May 2013 15:41, Rel <relm...@rambler.ru> wrote:

Benjamin Thaut, yes I know. but here is an example, if I add a class to
the code like that:


module main;

extern (C) void* _Dmodule_ref = null;
extern (C) void printf(const char*, ...);

extern (C) void puts(const char*);
extern (C) void exit(int);

class A {
       int a = 100;
       int b = 200;

};

extern (C) void main() {
       scope(exit) {
               puts("Exiting!");
               exit(0);
       }

       A a; printf("%d %d\n", a.a, a.b);
}


This code won't work. classes are reference types and need to be initialised with 'new'. This requires TypeInfo_Class information to do... You could possible use 'scope A a = new A'. But again your going into the bounds of needing rtti for the initialiser var to assign it on the
stack.

Structs would be your friend here...

I have used the option -fno-emit-moduleinfo and got rid of _Dmodule_ref

Anything created with 'new' needs memory allocation. I have just published a minimum memory allocation in my repo.

The address of my minimum runtime environment repository is:
bitbucket.org/timosi/minlibd

Will this minimum runtime environment work on Windows, too?
I'd like to try that out.

Reply via email to