www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - Creating a class at a specific address in memory.

reply "TheFlyingFiddle" <theflyingfiddle gmail.com> writes:
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.
Dec 12 2013
parent reply "Brad Anderson" <eco gnuk.net> writes:
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
Dec 12 2013
parent "TheFlyingFiddle" <theflyingfiddle gmail.com> writes:
 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.
Dec 12 2013