Namespaces
Variants

std::contracts:: contract_violation

From cppreference.net
Utilities library
Contract support
Contract-violation information
contract_violation
(C++26)
Helper functions
Definido en el encabezado <contracts>
class contract_violation ;
(desde C++26)

La clase std::contracts::contract_violation define el tipo de objetos utilizados para representar una violación de contrato que ha sido detectada durante la evaluación de una aserción de contrato con una semántica de evaluación particular.

Los objetos de este tipo solo pueden ser creados por la implementación cuando el manejador de violación de contrato necesita ser invocado. Los usuarios no pueden crear dichos objetos directamente.

Contenidos

Funciones miembro

(constructor)
[deleted]
contract_violation los objetos no pueden ser construidos por los usuarios
(función miembro pública)
operator=
[deleted]
contract_violation los objetos no pueden ser asignados
(función miembro pública)
(destructor)
[possibly virtual]
destruye el objeto contract_violation
(función miembro pública)
Información general de violación de contrato
kind
devuelve el tipo de aserción de contrato violada
(función miembro pública)
semantic
devuelve la semántica de evaluación cuando ocurre la violación del contrato
(función miembro pública)
is_terminating
devuelve si la semántica de evaluación es terminante
(función miembro pública)
detection_mode
devuelve la razón que causa la violación del contrato
(función miembro pública)
evaluation_exception
devuelve un std::exception_ptr a la excepción lanzada desde la evaluación del predicado
(función miembro pública)
Información miscelánea de violación de contrato
comment
devuelve la cadena explicativa sobre la violación del contrato
(función miembro pública)
location
devuelve un std::source_location indicando la ubicación de la violación del contrato
(función miembro pública)

std::contracts::contract_violation:: contract_violation

contract_violation ( const contract_violation & ) = delete ;
(desde C++26)

El constructor de copia está definido como eliminado. std::contracts::contract_violation no es CopyConstructible .

Notas

Otros constructores son solo para uso interno y no son accesibles para el usuario.

std::contracts::contract_violation:: operator=

contract_violation & operator = ( const contract_violation & ) = delete ;
(desde C++26)

El operador de asignación de copia está definido como eliminado. std::contracts::contract_violation no es CopyAssignable .

std::contracts::contract_violation:: ~contract_violation

/* ver más abajo */ ~contract_violation ( ) ;
(desde C++26)

Destruye el objeto contract_violation .

Notas

Está definido por la implementación si el destructor es virtual.

std::contracts::contract_violation:: kind

std :: contracts :: assertion_kind kind ( ) const noexcept ;
(desde C++26)

Valor de retorno

Devuelve el valor del enumerador correspondiente a la forma sintáctica de la aserción de contrato violada.

std::contracts::contract_violation:: semantic

std :: contracts :: evaluation_semantic semantic ( ) const noexcept ;
(desde C++26)

Valor de retorno

Devuelve el valor del enumerador correspondiente a la semántica de evaluación con la cual se evaluó la aserción de contrato violada.

std::contracts::contract_violation:: is_terminating

bool is_terminating ( ) const noexcept ;
(desde C++26)

Valor de retorno

Si la semántica de evaluación es una semántica de terminación , retorna true . De lo contrario retorna false .

std::contracts::contract_violation:: detection_mode

std :: contracts :: detection_mode detection_mode ( ) const noexcept ;
(desde C++26)

Valor de retorno

Devuelve el valor del enumerador correspondiente a las razones que causaron la violación del contrato.

std::contracts::contract_violation:: evaluation_exception

std:: exception_ptr evaluation_exception ( ) const noexcept ;
(desde C++26)

Valor de retorno

Si la violación del contrato ocurrió porque la evaluación del predicado finalizó mediante una excepción, retorna un objeto std::exception_ptr que hace referencia a esa excepción o a una copia de la misma. De lo contrario, retorna un objeto std::exception_ptr nulo.

std::contracts::contract_violation:: comment

const char * comment ( ) const noexcept ;
(desde C++26)

Valor de retorno

Devuelve una cadena multibyte terminada en nulo definida por la implementación en la codificación literal ordinaria .

Notas

El estándar de C++ recomienda que la cadena devuelta debería contener una representación textual del predicado de la aserción de contrato violada o una cadena vacía si no se desea almacenar una representación textual.

std::contracts::contract_violation:: location

std:: source_location location ( ) const noexcept ;
(desde C++26)

Valor de retorno

Retorna un objeto std::source_location con valor definido por la implementación.

Notas

El estándar de C++ recomienda que el valor retornado debería ser un objeto std::source_location construido por defecto o un valor que identifique la aserción de contrato violada:

  • Cuando sea posible, si la aserción de contrato violada era una aserción de precondición , debería retornarse la ubicación en el código de la invocación de la función.
  • En caso contrario, debería retornarse la ubicación en el código de la aserción de contrato.