On Thursday, 27 February 2025 at 02:09:29 UTC, Arredondo wrote:
On Thursday, 27 February 2025 at 01:22:07 UTC, Hipreme wrote:
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.

That's great to know. Thank you!
```d
template Model(T, T n = 100) // where n: length with Type of T
{
    auto voidStackArr(inout bool _void = true)
    {
        T[n] arr = void;
        assert(!_void);
        arr = 0;
        return arr;
    }
}

alias voidStackArrInt = Model!int;
void main()
{
    import std.stdio: writeln;

    // err we are reading garb values
    auto arr = voidStackArrInt.voidStackArr;
    arr.writeln;

    // ok
    auto arr2 = voidStackArrInt.voidStackArr(false);
    arr2.writeln;
}
```
and we're back to c++ u guys should really stop doing things like this

Reply via email to