www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - What does nogc do to a class?

reply Jack <jckj33 gmail.com> writes:
Does it allocate the object rather on stack, like auto scope a = 
new A or what?
May 05
next sibling parent reply Mike Parker <aldacron gmail.com> writes:
On Thursday, 6 May 2021 at 01:04:02 UTC, Jack wrote:
 Does it allocate the object rather on stack, like auto scope a 
 = new A or what?
It doesn't do anything to classes. ` nogc` prevents you from any action triggers a GC allocation, such as using `new, so you would need to allocate from somewhere else (e.g., via `malloc`) for any class instances you want to create in a ` nogc` function.
May 05
parent Jack <jckj33 gmail.com> writes:
On Thursday, 6 May 2021 at 02:11:27 UTC, Mike Parker wrote:
 On Thursday, 6 May 2021 at 01:04:02 UTC, Jack wrote:
 Does it allocate the object rather on stack, like auto scope a 
 = new A or what?
It doesn't do anything to classes. ` nogc` prevents you from any action triggers a GC allocation, such as using `new, so you would need to allocate from somewhere else (e.g., via `malloc`) for any class instances you want to create in a ` nogc` function.
I see, thanks!
May 06
prev sibling parent reply Per =?UTF-8?B?Tm9yZGzDtnc=?= <per.nordlow gmail.com> writes:
On Thursday, 6 May 2021 at 01:04:02 UTC, Jack wrote:
 Does it allocate the object rather on stack, like auto scope a 
 = new A or what?
Further note that auto scope a = new A; can be written shorter as scope a = new A;
May 06
parent Jack <jckj33 gmail.com> writes:
On Thursday, 6 May 2021 at 22:16:04 UTC, Per Nordlöw wrote:
 On Thursday, 6 May 2021 at 01:04:02 UTC, Jack wrote:
 Does it allocate the object rather on stack, like auto scope a 
 = new A or what?
Further note that auto scope a = new A; can be written shorter as scope a = new A;
I'll be using that, thanks!
May 08