in / out for C++ programmers

Ali Çehreli acehreli at yahoo.com
Fri Mar 23 23:37:27 PDT 2012


On 03/23/2012 11:28 PM, Dan wrote:
 > When would you use in / out parameters instead of ref & const keywords?

I am just about finished translating a chapter exactly on that topic. 
I've just realized that I have some questions myself. :)

'out' is the equivalent of a reference in C++, with additionally 
initializing the out parameter upon entry to the function.

void foo(out int i)
{
     assert(i == 0);  // regardless of what it was before the call
}

'in' is the same as 'const scope'. const part is easy to understand but 
I don't know what 'scope' does. I could not understand what the spec 
means with "references in the parameter cannot be escaped (e.g. assigned 
to a global variable)" for scope:

   http://dlang.org/function.html

'ref' is the same as a C++ reference.

Ali



More information about the Digitalmars-d-learn mailing list