No puedo encontrar una declaración clara sobre la semántica de Q_ASSERT en versiones de lanzamiento. Si no hay verificación de aserción, ¿se evalúa la expresión afirmada?Semántica de compilación de la versión de Q_ASSERT
considere el siguiente código
Q_ASSERT(do_something_report_false_if_failed());
Will do_something_report_false_if_failed()
funcionamiento bajo todas las configuraciones posibles Qt construir? ¿Sería más seguro (aunque un poco más detallado y menos legible) de hacer esto en su lugar:
bool is_ok = do_something_report_false_if_failed();
Q_ASSERT(is_ok)
Este último método tiene la desventaja de que aseveran omisiones son menos detallado, pero tal vez se nota más claramente que la declaración es ¿ejecutado?
Esa es exactamente la misma situación que con las macros 'assert' y' NDEBUG'. –