this post was submitted on 25 Nov 2023
27 points (96.6% liked)

C++

1767 readers
1 users here now

The center for all discussion and news regarding C++.

Rules

founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 7 points 11 months ago (2 children)

In Rust, making something copyable is always explicit. I like that a lot.

[–] [email protected] 3 points 11 months ago (1 children)

Cpp should have done ref by default and had & for copy, but here we are.

[–] [email protected] 1 points 11 months ago

Cpp should have done ref by default and had & for copy, but here we are.

That would defeat the goal of making it backwards-compatible with C.

[–] [email protected] 3 points 11 months ago (1 children)

Copy has a very different meaning between the two languages. In rust the equivalent of a c++ copy is a clone() call for anything non trivial

[–] [email protected] 3 points 11 months ago (2 children)
[–] [email protected] 2 points 11 months ago (1 children)

@BatmanAoD @Miaou It is just what you are used to.
In C++ everything is a copy. Sometimes the compiler optimizes it away. clang-tidy may help. Having a clone() is very C-like.

[–] [email protected] 1 points 11 months ago* (last edited 11 months ago)

That's a common idiom but the default behaviour is still implicit copy, which, with VLAs and no smart pointers, makes things arguably worse than in c++

[–] [email protected] 1 points 11 months ago

I thought that was obvious as I mentioned a function call, but yes indeed