acabo de encontrar la existencia de qt_noop()
defino en el qglobal.h como:¿Cuál es el propósito de `qt_noop`
inline void qt_noop() {}
Cuál es el punto de la misma?
acabo de encontrar la existencia de qt_noop()
defino en el qglobal.h como:¿Cuál es el propósito de `qt_noop`
inline void qt_noop() {}
Cuál es el punto de la misma?
Sé que es utilizado internamente en algunos macros que debe hacer algo sólo para depuración se basa, por ejemplo:
# ifndef QT_NO_DEBUG
# define Q_ASSERT(cond) ((!(cond)) ? qt_assert(#cond,__FILE__,__LINE__) : qt_noop())
# else
# define Q_ASSERT(cond) qt_noop()
# endif
#endif
Entonces, su único propósito es usar el operador ternario (¿por qué no un solo si?) Ya que podría omitirse en la 2da definición? – gregseth
No se puede omitir en 2nd define. La macro Q_ASSERT generalmente se usa como una llamada a función normal, es decir 'Q_ASSERT (xxx == yyy);'. Entonces la macro debe expandirse al código que puede seguirse con punto y coma sin ningún error/advertencia. En cuanto al "single if", hay algunos problemas con las macros que contienen if cuando se usan dentro de otras sentencias if sin llaves (ver http://www.parashift.com/c++faq-lite/misc-technical-issues). html # faq-39.4), por lo que el operador ternario podría ser una mejor idea aquí. – chalup
Aceptado más por el comentario y el enlace que la respuesta ... de todos modos, ¡gracias! :) – gregseth
+1 Para la pregunta ... – mosg
* noop * - * no * op - No operacion. –
¡Exactamente! ¿Por qué dar un maldito crear una función que no ... nada! – gregseth