Another big problem with implicit copy constructors is that they make it very difficult to write correct unsafe code. When each use of a variable can call arbitrary code, each use of a variable can trigger unwinding. You then basically require people to write the equivalent of exception-safe C++ in unsafe code to preserve memory safety guarantees, and it’s notoriously difficult to do that.
Cameron On Jun 20, 2014, at 8:49 PM, Nick Cameron <li...@ncameron.org> wrote: > I think having copy constructors is the only way to get rid of `.clone()` all > over the place when using` Rc`. That, to me, seems very important (in making > smart pointers first class citizens of Rust, without this, I would rather go > back to having @-pointers). The trouble is, I see incrementing a ref count as > the upper bound on the work that should be done in a copy constructor and I > see no way to enforce that. > > So, I guess +1 to spirit of the OP, but no solid proposal for how to do it. > > > On Sat, Jun 21, 2014 at 8:00 AM, Benjamin Striegel <ben.strie...@gmail.com> > wrote: > I'm not a fan of the idea of blessing certain types with a compiler-defined > whitelist. And if the choice is then between ugly code and copy constructors, > I'll take ugly code over surprising code. > > > On Fri, Jun 20, 2014 at 3:10 PM, Patrick Walton <pcwal...@mozilla.com> wrote: > On 6/20/14 12:07 PM, Paulo Sérgio Almeida wrote:] > > Currently being Copy equates with being Pod. The more time passes and > the more code examples I see, it is amazing the amount of ugliness that > it causes. I wonder if there is a way out. > > Part of the problem is that a lot of library code assumes that Copy types can > be copied by just moving bytes around. Having copy constructors would mean > that this simplifying assumption would have to change. It's doable, I > suppose, but having copy constructors would have a significant downside. > > Patrick > > _______________________________________________ > Rust-dev mailing list > Rust-dev@mozilla.org > https://mail.mozilla.org/listinfo/rust-dev > > > _______________________________________________ > Rust-dev mailing list > Rust-dev@mozilla.org > https://mail.mozilla.org/listinfo/rust-dev > > > _______________________________________________ > Rust-dev mailing list > Rust-dev@mozilla.org > https://mail.mozilla.org/listinfo/rust-dev
_______________________________________________ Rust-dev mailing list Rust-dev@mozilla.org https://mail.mozilla.org/listinfo/rust-dev