http://d.puremagic.com/issues/show_bug.cgi?id=11188
--- Comment #5 from Joseph Rushton Wakeling <joseph.wakel...@webdrake.net> 2013-10-10 17:33:40 PDT --- (In reply to comment #3) > In this case, you need inout, because you want to propagate the incoming > qualifiers to the output: if x>=0, then you're returning x again, so the > return > type needs to carry whatever qualifiers x had on entering the function. > Everything implicitly converts to const, of course, but it would suck if you > returned const and the caller passed in unqual, and now after calling abs he > can't modify the BigInt anymore! I wasn't talking about returning const, but about the _input_ to the function. I'm not actually certain you do always want to propagate the qualifiers to the output -- I may want to be able to do: immutable BigInt x = -345678; BigInt xAbs = abs(x); ... or is inout sensitive to things like this? In any case, bear in mind that abs doesn't always guaranteed to return the same type -- if you give it (say) a cfloat or an ifloat, it'll return a real. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------