Copy a struct on the heap and get the pointer to it.

Timon Gehr timon.gehr at gmx.ch
Sat Nov 12 07:34:02 PST 2011


On 11/12/2011 04:29 PM, Andrei Alexandrescu wrote:
> On 11/12/11 8:39 AM, deadalnix wrote:
>> Hi all,
>>
>> We recently had a discution on #D about copying a struct on the heap and
>> getting a pointer to it.
>>
>> We come up with the following solution (Thanks to CyberShadow !) :
>>
>> struct S;
>> S s; // Allocated locally.
>> [s].ptr; // Get a pointer to a copy in the heap of the struct
>
> This should work:
>
> S s;
> auto p = new S(s);
>
> It's a bug in the compiler if it doesn't. Unfortunately it doesn't for
> primitive types, e.g. new int(5) does not work.
>

It does not work for structs either. It fails with 'Error: no 
constructor for S'.
Where is the behaviour you describe documented?


More information about the Digitalmars-d mailing list