Passing an array by reference?
Rishub Nagpal via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Thu Jul 24 09:28:51 PDT 2014
On Thursday, 24 July 2014 at 16:15:44 UTC, John Colvin wrote:
> On Thursday, 24 July 2014 at 16:06:00 UTC, Rishub Nagpal wrote:
>> 1 class Test
>> 2 {
>> 3 int[][] array;
>> 4 this(ref int[][] d)
>> 5 {
>> 6 array = d;
>> 7 }
>> 8
>> 9 }
>> 10
>> 11 void main()
>> 12 {
>> 13 Test t = new Test([[1,1],[1,1]]); //does not compile
>> 14 }
>> 15
>>
>>
>> what is the best way to pass a literal ([[1,2],[3,4]]) by
>> reference? Is using ref the best way? I am still a bit fuzzy
>> with in/out and scope
>
> Why do you need to pass the array by reference? D's slices are
> just windows on to memory, they don't copy the contents when
> you pass them around.
>
> Anyway, if you do need ref, the problem is that [[1,1],[1,1]]
> is a temporary, an rvalue, and ref can't take rvalues.
Ah I did not know that. jwhear on IRC cleared it up for me
http://dpaste.dzfl.pl/c7ae7e71d45c
More information about the Digitalmars-d-learn
mailing list