A veces se encuentra con código que tiene paréntesis de llaves adicionales, que no tienen nada que ver con el alcance, solo son para facilitar la lectura y evitar errores.Paréntesis de llaves adicionales en el código C++
Por ejemplo:
GetMutexLock(handle) ;
{
// brace brackets "scope" the lock,
// must close block/remember
// to release the handle.
// similar to C#'s lock construct
}
ReleaseMutexLock(handle) ;
Otros lugares que he visto son:
glBegin(GL_TRIANGLES) ;
{
glVertex3d(..) ;
glVertex3d(..) ;
glVertex3d(..) ;
} // must remember to glEnd!
glEnd() ;
Esto introduce un error de compilación si el mutex no es liberado (suponiendo que recordar tanto el} y el Release()
llamada).
- ¿Es esta una mala práctica? ¿Por qué?
- Si no es uno, ¿podría cambiar la forma en que se compila el código o hacerlo más lento?
En OpenGL, esta práctica está destinada a mejorar la legibilidad del código. Los corchetes en las llamadas glBegin() actúan como un delimitador visual del grupo de vértices que deberían dibujarse. – karlphillip
¡Es una práctica terrible! El por qué alguien usaría delimitadores de bloque para hacer que un bloque de código se destaque está más allá de mí. Puedo imaginarme todas las micro-micro-optimizaciones que se pierden ...todo se sacrificó por algo tan al lado del punto como legibilidad. ¿A qué viene el mundo? –
@Noah, le he cambiado el nombre a Sarcastic Cat. – bobobobo