Espacios de nombres
Variantes
Acciones

assert

De cppreference.com
< cpp‎ | error
 
 
Biblioteca de servicios
 
Control de errores
Control de excepciones
Fallas del control de excepciones
(hasta C++17)
(hasta C++17)
(C++11)(hasta C++17)
(hasta C++17)
Códigos de error
Códigos de error
 
Definido en el archivo de encabezado <cassert>
#ifdef NDEBUG

#define assert(condition) ((void)0)
#else
#define assert(condition) /*implementation defined*/

#endif
La definición de la macro assert depende de otro macro, NDEBUG, que no está definido por la biblioteca estándar .
Original:
The definition of the macro assert depends on another macro, NDEBUG, which is not defined by the standard library.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Si NDEBUG se define como un nombre de macro en el punto en el código fuente <cassert> donde se incluye, a continuación, assert no hace nada .
Original:
If NDEBUG is defined as a macro name at the point in the source code where <cassert> is included, then assert does nothing.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Si NDEBUG no está definida, entonces los controles assert si su argumento (que debe tener un tipo escalar) compara igual a cero. Si lo hace, assert salidas de aplicación específica de la información de diagnóstico en la salida de error estándar y llama std::abort. La información de diagnóstico se requiere para incluir el texto de expression, así como los valores de las macros estándar __FILE__, __LINE__, y la __func__ variable estándar .
Original:
If NDEBUG is not defined, then assert checks if its argument (which must have scalar type) compares equal to zero. If it does, assert outputs implementation-specific diagnostic information on the standard error output and calls std::abort. The diagnostic information is required to include the text of expression, as well as the values of the standard macros __FILE__, __LINE__, and the standard variable __func__.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

Contenido

[editar] Parámetros

condition -
expresión de tipo escalar
Original:
expression of scalar type
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

[editar] Valor de retorno

(Ninguno)
Original:
(none)
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

[editar] Ejemplo

#include <iostream>
// uncomment to disable assert()
// #define NDEBUG
#include <cassert>
 
int main()
{
    assert(2+2==4);
    std::cout << "Execution continues past the first assert\n";
    assert(2+2==5);
    std::cout << "Execution continues past the second assert\n";
}

Salida:

Execution continues past the first assert
test: test.cc:8: int main(): Assertion `2+2==5' failed.
Aborted

[editar] Ver también

Declaración static_assert Lleva a cabo comprobación de aserciones en tiempo de compilación. (desde C++11)[editar]
Produce la terminación anormal del programa (sin limpiar).
(función) [editar]