The spec for array says:
Static arrays are value types. Unlike in C and D version 1, static arrays are passed to functions by value. Static arrays can also be returned by functions.

I don't get the "static arrays are passed to functions by value" part.

Here I am passing in a static and dynamic array. Both are passed by value, and the function can modify the array of both

        {
                void func(int[] arr, void* ptr) {
                        arr[0] = 9;
                        assert(&arr != ptr);
                }

                int[3] a = [1,2,3];
                func(a, &a);
                assert(a == [9,2,3]); // changed..
                
                int[] b = [1,2,3];
                func(b, &b);
                assert(b == [9,2,3]);
        }

Reply via email to