En una C++ coding style guide, encontré una recomendación en particular (página 41, la recomendación número 53):C++ styleguide: ¿por qué tener valores no-l en el lado izquierdo?
Siempre tienen los no lvalues en el lado izquierdo (en lugar de
0 == i
i == 0
).
¿Y no entiendo para qué sirve esto? ¿Debes apegarte a esta práctica?
No soy y no sé por qué es una buena práctica. La única ventaja que se me ocurre es que evitará confundir una tarea involuntaria con una comparación (if (foo = 0){}
versus if (foo == 0){}
)
¿Tiene alguna otra idea de por qué debería usarla?
Yo no uso eso. Han pasado muchos años desde que cometí el error = /==. La experiencia y la habilidad han sido una mejor contramedida para mí que las expresiones incómodas como Yoda Condition. Su decisión de usar o no utilizar debe basarse en si le gusta, si le parece que lo ayuda y si el estándar de codificación de su proyecto lo prohíbe o lo requiere. –
La ventaja de '(0 == i)' es que puede detectar algunos errores '=' contra '=='. La desventaja es que leerlo hace sangrar mis ojos. –