Yes, they are. But if we have an object of any kind (class, struct, or union) that does contain a public data member for whatever reason the author chose to do so, I find it useful to omit the trailing underscore.
And see also @algernon’s response:
Feel free to complicate your code with impenetrable C++ -isms all you like, but your solutions to the problems posed by slavish adherence to strict object-oriented coding practices make it even more difficult for people like me to meaningfully contribute to the project. When you claim that it doesn’t degrade readability, that’s a subjective judgement, not shared by everyone.