Me enseñaron desde la escuela secundaria que define variables como esta:
int _a;
o
int __a;
debe considerarse una mala práctica porque esto eventualmente desconcertará a los compiladores que usan variables que comienzan con un guión bajo para nombrar variables temporales.
Hasta donde sé, esta es la razón por la cual a algunas personas les gusta mover el guión bajo al final del nombre, como:
int a_;
Sin embargo, veo una gran cantidad de código que utiliza variables de inicio de subrayado. Y ese código se construye bastante bien con Visual Studio 2010 y g ++ 4.x.
Entonces me pregunto: ¿no es un problema hoy en día? ¿Los compiladores modernos son más inteligentes con respecto a las convenciones de nombres?