You are technically right, in that this is a warning rather than an error. In fact, you used compilation flags no one ever uses to make your point (no warnings at all). That goes back to a core ideological, and quite purposeful, difference between the languages, where C++ wishes to help the programmer avoid errors whereas Rust wishes to prevent the programmer from making them.
In practice, I think this is a distinction without a difference. The tools Rust provide you on that front are available to you with C++, with the only practical difference being that they are not mandated by the language.
The fact in my code I achieve the exact same effect in C++, using the precise same tools. If you want an example, check out a FOSS project I built, add an enum case for the tokenizer (under lib/tokenizer.h), and try building. You will get precisely the behavior the speaker claims is impossible in C++: you can't build warning free until you've handled all of the cases, with the compiler telling you where you're missing cases all the way until you're done.