On Wednesday, 26 February 2025 at 23:47:41 UTC, Arredondo wrote:
On Wednesday, 26 February 2025 at 10:19:17 UTC, Hipreme wrote:
```d
struct S
{
int[100] a;
int b = 0;
static S defaultInit(int b)
{
S s = void;
s.b = b;
return s;
}
}
```
Thank you for this Hipreme. I do have a question though,
wouldn't this create two copies of S? one at construction and
then another at the call site after defaultInit returns?
Regarding safety, I'm well aware I'm playing with fire here.
For now I'm just experimenting to see if something like this is
even worth it performance-wise.
Cheers!
Arredondo.
Yes, that is definitely worth performance wise.
Specially if you wish to start using an array of `S`, this could
be a huge toll.
And no, it won't create 2 copies. D has a thing called Return
Value Optimization. Since that local variable is returned, it has
no need to copy it.