Note that Rust does not do strict aliasing, its model is different.
Also note that C++ does not have restrict, formally speaking, though it is a common compiler extension. It's a C feature only!