On Sat, 15 Feb 2014 21:36:43 -0500, Meta <jared...@gmail.com> wrote:

On Sunday, 16 February 2014 at 02:34:36 UTC, Steven Schveighoffer wrote:
On Sat, 15 Feb 2014 15:02:44 -0500, Meta <jared...@gmail.com> wrote:

On Saturday, 15 February 2014 at 19:59:07 UTC, Meta wrote:
inout is *sort of* logical const, if the underlying type is immutable.

I mean mutable, of course.

No, it's not. It's not allowed to mutate with inout.

-Steve

Right, but inout can accept any of mutable, const, and mutable. The compiler will statically disallow you from mutating an inout variable, but if you know the underlying data is mutable, it's safe to cast inout away and mutate. If the data is actually mutable, then inout is effectively logical const. I guess the same is true of regular const.

inout does not know when the incoming data is mutable.

Effectively, inout is just like const, but has implications on the return value.

-Steve

Reply via email to