On Wednesday, 2 June 2021 at 15:32:38 UTC, Sean wrote:
...

You can implement deep copy using template recursion:

    import std;

    T[] rdup(T : U[], U)(T[] duped) {
        return duped.map!(arr => arr.rdup).array;
    }

    T[] rdup(T)(T[] duped) {
        return duped.dup;
    }

    void main()
    {
        int[][][] dupeable = [[[1], [2]], [[3]]];
        auto duped = dupeable.rdup;
        duped[0][0][0] = 9;
        writeln("Hello D-eep copy of ", dupeable, " to ", duped);
    }

Best regards,
Alexandru.

Reply via email to