There\'s this other question asking about how comparing pointers is supposed to be interpreted wrt the C++ Std.
So I was wondering what the C++ Std has to say about
"They may valid but don't" is the answer I would give.
Obviously there is the issue of comparability that you raise, but the reason you don't want to is because of the lack of reference management on "vanilla" pointers. It's very easy for the object to be deleted without it being removed from the container, resulting in an invalid pointer and an access violation next time you go to access it.