[rust-dev] Mutable files

Patrick Walton pcwalton at mozilla.com
Mon Jul 21 14:45:26 PDT 2014


On 7/21/14 2:22 PM, Tobias Müller wrote:
> We discussed this with Bartosz literally for weeks (him being a fan of
> auto_ptr for too long, later completely converted against it and I take
> credit for that :o)). With auto_ptr this was possible:
>
> auto_ptr<int> a(new int);
> auto_ptr<int> b = a;
>
> It would nullify a with copy syntax. That code won't compile with
> unique_ptr; you'd need an explicit move(a).
>
> It only got worse from there: passing into functions, member variables...
>
> MOVING WITH COPY SYNTAX DOES NOT WORK.
>
> It's cut and dried.

... in C++. Not in Rust. That's because, unlike C++, Rust is designed 
from the ground up to support moves and copies in a first class way.

> It's just strange that you can change the semantic of an already existing
> operation just by adding new capabilities. Adding traits should define new
> operations with new semantics, not changing the semantics of existing
> operations. At least that's how it works for all other traits, and
> deviating from that is at least surprising.

Hence the Opt-In Built-In Traits proposal

> Maybe the syntax was just too heavy?

Any syntax at all is too much. I am convinced of that.

Patrick



More information about the Rust-dev mailing list