All of your examples are still type information. They are more specific than the types provided by a basic C-style type system, but that's the point.
In modern languages where defining custom types and enforcing their use is easier, there is less need to distinguish these properties by convention. Twenty years ago, when we were doing more development with languages in the C family that don't have very powerful systems, it was a different story, and so naming conventions went some way to helping keep track of what data you were really passing around beyond just "It's an int" and the like.
This is, after all, exactly how systems hungarian misunderstanding came about.
It's just that nobody ever actually does that in C++.