Sospecho que algún código ASSERTION está teniendo efectos secundarios. Me gustaría desactivar ASSERT sin realizar ningún otro cambio en la compilación de mi código. Estoy usando MSVS2008. Cambiar de depuración a versión no funcionará ya que eso alterará la forma en que se inicializa la memoria.¿Cómo puedo desactivar ASSERT (x) en C++?
5
A
Respuesta
6
poner esto en la parte superior de sus archivos de cabecera después de que las inclusiones de cassert
(o un incluyen que incluye cassert
)
#undef assert
#define assert(x) ((void)0)
que redefine el marco afirman para que se expanda a nada.
6
Si quiere decir assert
, entonces eso debería controlarse con la macro NDEBUG.
+1
NDEBUG altera también la inicialización de la memoria – jbcoe
Cuestiones relacionadas
- 1. ¿Es posible desactivar C++ assert desde la aplicación .net
- 2. ¿Cómo puedo assert() sin usar abort()?
- 3. Cómo poner assert en compilaciones de lanzamiento en C/C++
- 4. ¿Puedo usar variables con assert/1?
- 5. C++ Xcode assert evaluado en la versión
- 6. ¿Cómo puedo desactivar _moz_resizing?
- 7. ¿cómo puedo desactivar la clave de Windows en C#?
- 8. ¿Cómo puedo desactivar la optimización del compilador en C#?
- 9. ¿Cómo habilitar programáticamente assert?
- 10. Implementación de C++ assert en assert.h
- 11. ASSERT vs. ATLASSERT vs. assert
- 12. ¿Cómo puedo desactivar un UISegmentedControl?
- 13. Assert IEnumerables
- 14. ¿Cómo puedo desactivar Java basurero?
- 15. C#, NUnit Assert in a Loop
- 16. ¿Cómo puedo desactivar las etiquetas del eje x en un control de gráfico ASP.NET?
- 17. ¿Cómo puedo desactivar un botón en Xcode?
- 18. ¿Cómo puedo desactivar trabajos en Quartz JDBCJobStore?
- 19. ¿Debería ser "Arrange-Assert-Act-Assert"?
- 20. C# Remoting - Cómo desactivar CustomErrors
- 21. C# Throw Exception on use ¿Assert?
- 22. ¿cómo puedo desactivar la salida a log4j.rootLogger?
- 23. ¿Puedo desactivar HttpSession en web.xml?
- 24. Desactivar ayuda visual X para ciertos tipos de proyectos
- 25. ¿cómo puedo desactivar el botón guardar en ckeditor?
- 26. ¿Cómo puedo desactivar el manejo de excepciones en MSVC?
- 27. Assert .NET
- 28. ¿Cómo puedo desactivar el modo de autocompletar en emacs?
- 29. ¿`X x = x = X();` legal C++?
- 30. ¿Cómo puedo desactivar la orientación horizontal?
Si no me equivoco, eso desactiva la aserción (terminación del programa), pero no elimina y evita que la expresión sea evaluada. Quizás: '#define assert (x) (void) 0'? – UncleBens
@UncleBens Ak, tienes razón, sin embargo, el '(nulo) 0' no es obligatorio. El '(x)' es sin embargo. – Yacoby
@Yacoby: en general, lo quieres porque tener 'assert' expandirse a una declaración ayuda con las advertencias y demás. Por ejemplo, si 'assert 'se expande a nada en el modo de lanzamiento, entonces' if (foo) assert (bar); else assert (baz); 'podría advertir de cláusulas if y/o else vacías. El último borrador del estándar C, al menos, * requiere * que la declaración incorporada se implemente de esa manera. –