On Tuesday, 11 February 2020 at 07:51:04 UTC, Ferhat Kurtulmuş wrote:
I need to be sure about "const ref". Based on the following function, does it mean:

Type can be string or an integral type.

(a) k1 is not copied on function calls
(b) k1 cannot be modified inside function

Please correct me if I am wrong. Can storage class "in" be used to satisfy (a) and (b)?


void doIt(const ref Type k1){
    ....
}

Type k = ...;

doit(k);


You're correct for 'a' and 'b'. However `in` only entails `const`, so it is not an exact replacement. Additionally, you might want to add `scope` to show that the parameter does not escape.

Note that a big limitation on `const ref` parameters at the moment is that it does not accept literals, which is something Andrei talked about a few years ago at DConf (or was it last year?).
  • about const ref Ferhat Kurtulmuş via Digitalmars-d-learn
    • Re: about const ref Mathias Lang via Digitalmars-d-learn

Reply via email to