Creating a class at a specific address in memory.

2013-12-12 Thread TheFlyingFiddle

What i am looking for is something like the following.

class Foo
{
int a, b, c;
}

void main() {
void[] buffer = new void[1024];
auto foo = createAt!(Foo)(buffer.ptr);
}


Where the createAt!(Foo) creates a class of the type Foo at the
specified pointer.



Re: Creating a class at a specific address in memory.

2013-12-12 Thread Brad Anderson
On Thursday, 12 December 2013 at 22:54:26 UTC, TheFlyingFiddle 
wrote:

What i am looking for is something like the following.

class Foo
{
int a, b, c;
}

void main() {
void[] buffer = new void[1024];
auto foo = createAt!(Foo)(buffer.ptr);
}


Where the createAt!(Foo) creates a class of the type Foo at the
specified pointer.


emplace() is what you are looking for (found inexplicably in 
std.conv).


http://dlang.org/phobos/std_conv.html#.emplace


Re: Creating a class at a specific address in memory.

2013-12-12 Thread TheFlyingFiddle
emplace() is what you are looking for (found inexplicably in 
std.conv).


http://dlang.org/phobos/std_conv.html#.emplace


Exactly what i wanted :) Thanks for the quick answer!

And yeah... std.conv seems like a wierd place to have this 
functionallity.