• [^] # Re: Performances

    Posté par (site web personnel) . En réponse au journal Rust dans Linux, ça démarre fort!. Évalué à 5.

    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.

    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++.