Ça existe aussi en C++, depuis C++03 avec auto_ptr (mais qui était une catastrophe), et correctement depuis C++11 avec la sémantique de mouvement / unique_ptr.
oups2.rs:8:10: 8:11 error: use of moved value: `n`
oups2.rs:8 take(n);
^
oups2.rs:7:10: 7:11 note: `n` moved here because it has type `Box<i32>`, which is non-copyable
oups2.rs:7 take(n);
^
error: aborting due to previous error
Dans un cas ça pète à la compilation (donc catastrophe évitée) dans l’autre ça pète à l’exécution (segmentation fault, youhou...).
Donc oui y’a des trucs qui ressemble à ça en C++ mais c’est pas équivalent.
[^] # Re: Premières impressions
Posté par grim7reaper . En réponse à la dépêche Rust 1.0, entrée dans la période stable. Évalué à 9.
Ça existe, oui et non...
La différence entre ça
et ça
C’est ça
contre ça :
Dans un cas ça pète à la compilation (donc catastrophe évitée) dans l’autre ça pète à l’exécution (segmentation fault, youhou...).
Donc oui y’a des trucs qui ressemble à ça en C++ mais c’est pas équivalent.