On 2013-06-03 06:32, Eric wrote:
If I use "new" inside a D method that is called from a c++ program
it causes a segmentation fault.  For example:

C++ code:

#include "dcode.h"

int main(int argc, char *argv[]) {
     hello();
     return(0);
}

D code:

class X {
     private int x;
     this() { x = 5; }
     public int getX() { return(x); }
}

extern (C++) void hello() {
     X x = new X();
}

This will crash when the line "X x = new X()" is executed.
Is this to be expected?

It seems you haven't started the runtime.

Use this function:

https://github.com/D-Programming-Language/druntime/blob/master/src/rt/dmain2.d#L281

--
/Jacob Carlborg

Reply via email to