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

Reply via email to