On 03/03/14 08:41 PM, Patrick Walton wrote:
> On 3/3/14 4:32 PM, Daniel Micay wrote:
>> Type-checked lifetimes on references and type-checked move semantics are
>> examples of true safety improvements over C++. They are not a panacea as
>> they prevent expressing many safe patterns, even when the safety is
>> obvious to a human or a more complex type-checking algorithm.
> 
> Avoiding the unsafe patterns (such as unsafe pointers, e.g. `this`) is
> very difficult in C++, however. Nothing is a panacea as far as zero-cost
> safety is concerned. However, any provably memory-safe subset of C++11
> would be even more limiting, as it would rule out any use of methods
> (except perhaps with `enable_shared_from_this` and use of `shared_ptr`
> for *all data*).
> 
>> If you're not familiar with writing in a modern dialect of C++11 with
>> similar idioms to Rust, then I don't think writing articles comparing
>> the languages is fair. Rust doesn't bring anything new to the table when
>> it comes to destructors, allocators or smart pointers. It's still
>> playing catch-up to C++11 and Boost in these areas.
> 
> It does enforce that you don't do any unsafe things when using
> destructors, allocators, or smart pointers without using the *unsafe*
> keyword, which is an improvement to me.
> 
> Patrick
> 

Smart pointers and destructors are no more unsafe in C++ than they are
in Rust. Rust makes moves and references safe, it doesn't do anything to
make a smart pointer implementation more safe.

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
Rust-dev mailing list
[email protected]
https://mail.mozilla.org/listinfo/rust-dev

Reply via email to