First of all, I've switched styles because I've switched environments. Not as in the IDE kind of environments, but as in the people kind of environments. Nowdays I've got accustomed to the trailing underscore, so that's perhaps why it's my favourite. Yes, in my/our codebase, we have code in both styles. But we don't have both styles in one file. If I go back to the old code to fix bugs or to add new features, I do use the old style. Consistent within at least one file.
In my opinion that's just plain horrible. It requires you to constantly switch your brain just to keep consistent to the artificial rule. That's probably still slightly manageable with two or three people who know the code base. But what if you have more people on the team, some even preferring their own dialect of Hungarian notation? Besides, if you know the code base, any prefix or postfix becomes insignificant. It's just plain noise.
If you don't use prefixes/postfixes, life's a lot easier. Everybody can understand the code, it's compact without being cryptic. They can use code assistence for correct information, they can read the function's arguments and local variables, and/or they can look at the header files to get all the information at once. And most of all, it's not in the way when you don't need it. If you can't remember a class's members or a function's variables then you really have to consider refactoring things.
Personally it takes me more time to figure out wether something is a member or not in your style, than in a style using my, m_ or trailing _.
Certainly. But how many times do you really have to know whether a variable is a member? Is it really worth all the hassle to write and read 'm_' and keep things consistent? How much time did you loose writing all that, correcting it, debugging it?
Personally I practically always already know whether a variable is a member or not, just by reading the code. I don't have to be reminded of it every time I use that same variable. The header file is always close and hovering the mouse over variables is handy for the one-time occasions.
This is no more of a style issue than whether using camelStyleNames or underscores_like_stl, whether to start typenames with a capital and variables and functions with a lower case or to start everything with a capital, whether to use tabs or spaces, whether to write int* a or int *a or int * a. I'm sure you have figured out good reasons why to choose one above the other, but frankly, I don't care. It's a matter of personal taste (*). The only thing that is important is to be consistent, unless there's a good reason to make an exception. There are far more important things to put in a "code convention" than this.
As long as it's C++ and English I'm quite ok with any style as long as it's concise. But it's definitely not all a matter of taste. Some 'habits' create code that is on average harder to read, harder to understand, harder to debug, and/or harder to manage...