Si je ne me trompe pas l'opérateur en C++ te donnera toujours une valeur. En cas d'accès incorrect ça peut être la porte d'entrée pour une attaque. En Rust tu as une interruption du programme donc la pire attaque possible c'est un deny of service.
Les accès operator[x] en C++ sont l'équivalent de get_unchecked en Rust.
Dans les deux cas, c'est unchecked et sans interruption. Dans les deux cas, un accès out of bound est une porte d'entrée pour une attaque, même en Rust.
La différence est que dans le cas de Rust, tu dois explicitement déclarer le call en unsafe: c'est donc explicite et visible. Là où ça sera plus subtile à voir en C++.
[^] # Re: Performances
Posté par Firwen (site web personnel) . En réponse au journal Rust dans Linux, ça démarre fort!. Évalué à 5.
Les accès operator[x] en C++ sont l'équivalent de get_unchecked en Rust.
Dans les deux cas, c'est unchecked et sans interruption. Dans les deux cas, un accès out of bound est une porte d'entrée pour une attaque, même en Rust.
https://doc.rust-lang.org/src/core/slice/mod.rs.html#398-400
La différence est que dans le cas de Rust, tu dois explicitement déclarer le call en unsafe: c'est donc explicite et visible. Là où ça sera plus subtile à voir en C++.