Return a class instance as a pointer
Jacob Carlborg
doob at me.com
Sat Mar 31 08:29:14 PDT 2012
On 2012-03-31 17:02, "Timo Westkämper" <timo.westkamper at gmail.com>" wrote:
> I am trying to compile the following code in D
>
> void* instantiate(_LV2_Descriptor* descriptor,
> double sample_rate, char * bundle_path,
> LV2_Feature** features) {
> Plugin plugin = new Bleep(sample_rate, features);
> return &plugin;
> }
>
> but I get the following error
>
> ../src/lv2/plugin.d(38): Error: escaping reference to local plugin
>
> What is the right way to create a class instance and a return it as a
> pointer? Also in such a way that it is not claimed by GC. There is
> another callback for object deletion.
Why would you want to return an object as a pointer? All classes are
reference types. But if you actually do want to return an object as a
pointer you can just cast it to void*.
--
/Jacob Carlborg
More information about the Digitalmars-d
mailing list