what means... auto ref Args args?

Dave Jones dave at jones.com
Thu Oct 19 00:00:54 UTC 2017


On Wednesday, 18 October 2017 at 22:16:32 UTC, Moritz Maxeiner 
wrote:
> On Wednesday, 18 October 2017 at 21:38:41 UTC, Dave Jones wrote:
>> Poking around in the source code for emplace and I noticed...
>>
>> T* emplace(T, Args...)(T* chunk, auto ref Args args)
>>
>> what does the "auto ref" do in this situiation? Cant seem to 
>> find any explanation in the docs.
>
> It means that any argument (that is an element of args) will be 
> passed by reference if and only if it's an lvalue (has a memory 
> address that can be taken) (it'll be passed by value otherwise).
>
> https://dlang.org/spec/template.html#auto-ref-parameters

So it's just to make sure any "ref" in the eventual call to Ts 
constructor is also reflected in the call to emplace?




More information about the Digitalmars-d mailing list