I'm not sure if there's really any alternative besides using a subset, for a low-level language. Even Rust is only memory-safe within a certain subset.
Edit: Actually nevermind! CHERI is a hardware technique that can make C++ memory safe without using only a subset of the language.