On Monday, 25 August 2014 at 10:27:53 UTC, Kagamin wrote:
Can't scope(int*) on return type be equivalent to scope!(a,b)(int*)? How often this is not desired?

You mean as a default?

It would be desired in `chooseStringAtRandom`, but not in the `findSubstring`, whose returned string shouldn't be limited by the scope of the needle. If it is made the default, there would need to be a way to opt out, such as removing an owner.

But note that in the `chooseStringAtRandom` example, it would be sufficient to declare it as:

    scope chooseStringAtRandom(scope(string) a, scope(string) b) {
        return random() % 2 == 0 ? a : b;
    }

Type deduction would then automatically add `a` and `b` as the owners, by the rules under "Owner tracking".

Reply via email to