Taking a constant reference to a constant/non const object

helxi brucewayneshit at gmail.com
Wed Nov 15 09:34:32 UTC 2017


On Wednesday, 15 November 2017 at 09:23:53 UTC, Jonathan M Davis 
wrote:
> On Wednesday, November 15, 2017 09:04:50 helxi via 
> Digitalmars-d-learn wrote:
>> Hi. What function signature should I use for receiving a 
>> constant
>> reference of an r/l value object? Is it auto fn(inout ref const
>> myClass obj)?
>> I want to:
>> 1. Take a constant reference of the object, not copy them
>> 2. The object itself may be const or non const.
>
> ref const(Type) would be the const version of ref Type. e.g.
>
> auto foo(ref const(int) i) {...}
>
> - Jonathan M Davis

Thanks. Just a couple of follow-ups:
1. I've never seen a signature like `const(int)`is the enclosing 
parenthesis around the `int` necessary?
2. What effects does prefixing the arguments with `inout` have? 
For example:  fn(inout ref const string str){...}


More information about the Digitalmars-d-learn mailing list