Duplicar posibles:
Why are there sometimes meaningless do/while and if/else statements in C/C++ macros?hacer mientras (falso) patrón
¿Por qué es el do while(false)
necesaria en las macros de abajo?
#define LOG(message, ...) \
do { \
Lock<MutualExclusion> lock (logMutex); \
.... a lot of code ...
} while (false)
No creo que sirva para ningún propósito funcional. ¿Estoy pasando por alto algo?
Abuso grave de macros. –
@Rafe: Por supuesto, las macros son bastante asquerosas para empezar. –
En 'C' macros son muy útiles. Actualmente estoy usando macros para contenedores genéricos. En 'C++' tienes plantillas, bastardos afortunados ;-) – gruszczy