deserialization: creating a class instance without calling constructor
John Colvin via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Thu May 21 02:22:08 PDT 2015
On Thursday, 21 May 2015 at 09:06:59 UTC, Timothee Cour wrote:
> Can I create an instance of A without calling a constructor?
> (see below)
> Use case: for generic deserialiaztion, when the deserialization
> library
> encounters a class without default constructor for example (it
> knows what
> the fields should be set to, but doesn't know how to construct
> the object).
>
> class A{
> int x=2;
> this(int x){
> this.x=x;
> }
> }
>
>
> This came up here:
> https://github.com/msgpack/msgpack-d/issues/54#issuecomment-104136148
> I provide some hacky solution for that in that thread but I
> suspect it's
> not safe and something is missing.
For a start I'm pretty sure you want to be calling
core.memory.GC.malloc not core.stdc.stdlib.malloc, otherwise you
leak the memory.
More information about the Digitalmars-d-learn
mailing list