Explicitly saying ref or out when invoking a function
Andrei Alexandrescu
SeeWebsiteForEmail at erdani.org
Wed Aug 12 01:11:31 PDT 2009
Lionello Lunesu wrote:
>
> "Jeremie Pelletier" <jeremiep at gmail.com> wrote in message
> news:h5sl4c$1733$1 at digitalmars.com...
>> It's especially bad since if you modify the function prototype and
>> change ref, you have all your calls to update too.
>
> That must be the best argument to introduce repeating ref and out!
>
> L.
// untested
struct Ref(T)
{
private T* _data;
this(ref T data) { _data = &data; }
ref T get() { assert(_data); return *_data; }
alias get this;
}
Ref!(T) byRef(ref T data)
{
return Ref!(T)(data);
}
...
void fun(Ref!int rint) { ... }
...
int x;
fun(byRef(x));
Andrei
More information about the Digitalmars-d
mailing list