std:: basic_format_parse_context
|
Definido en el encabezado
<format>
|
||
|
template
<
class
CharT
>
class basic_format_parse_context ; |
(desde C++20) | |
Proporciona acceso al estado de análisis de la cadena de formato que consiste en el rango de la cadena de formato siendo analizado y el contador de argumentos para indexación automática.
Una instancia de
std::basic_format_parse_context
se pasa al
Formatter
al analizar la especificación de formato.
Un programa que declare una especialización explícita o parcial de
std::basic_format_parse_context
está mal formado, no se requiere diagnóstico.
Se proporcionan varios typedefs para tipos de caracteres comunes:
|
Definido en el encabezado
<format>
|
|
| Tipo | Definición |
std::format_parse_context
|
std :: basic_format_parse_context < char > |
std::wformat_parse_context
|
std :: basic_format_parse_context < wchar_t > |
Tipos de miembros
| Tipo | Definición |
char_type
|
CharT
|
iterator
|
std:: basic_string_view < CharT > :: const_iterator |
const_iterator
|
std:: basic_string_view < CharT > :: const_iterator |
Funciones miembro
|
(constructor)
|
construye una instancia de
std::basic_format_parse_context
a partir de una cadena de formato y el número de argumentos
(función miembro pública) |
|
operator=
[eliminado]
|
std::basic_format_parse_context
no es copiable
(función miembro pública) |
|
begin
|
devuelve un iterador al inicio del rango de la cadena de formato
(función miembro pública) |
|
end
|
devuelve un iterador al final del rango de la cadena de formato
(función miembro pública) |
|
advance_to
|
avanza el iterador de inicio a la posición dada
(función miembro pública) |
|
next_arg_id
|
entra en modo de indexación automática y devuelve el siguiente índice de argumento
(función miembro pública) |
|
check_arg_id
|
entra en modo de indexación manual, verifica si el índice de argumento dado está en rango
(función miembro pública) |
|
check_dynamic_spec
(C++26)
|
verifica si el tipo del argumento de formato correspondiente con el índice de argumento dado está en los argumentos de plantilla de tipo dados
(función miembro pública) |
|
check_dynamic_spec_integral
(C++26)
|
verifica si el tipo del argumento de formato correspondiente con el índice de argumento dado es un tipo integral
(función miembro pública) |
|
check_dynamic_spec_string
(C++26)
|
verifica si el tipo del argumento de formato correspondiente con el índice de argumento dado es un tipo de cadena
(función miembro pública) |
std::basic_format_parse_context:: basic_format_parse_context
| (1) | ||
|
constexpr
explicit
basic_format_parse_context
(
std::
basic_string_view
<
CharT
>
fmt,
|
(hasta C++26) | |
|
constexpr
explicit
basic_format_parse_context ( std:: basic_string_view < CharT > fmt ) noexcept ; |
(desde C++26) | |
|
basic_format_parse_context
(
const
basic_format_parse_context
&
)
=
delete
;
|
(2) | |
std::basic_format_parse_context
. Inicializa el rango de la cadena de formato a
[
fmt.
begin
(
)
,
fmt.
end
(
)
)
, y el contador de argumentos a
num_args
(hasta C++26)
0
(desde C++26)
.
|
Cualquier llamada a
|
(desde C++26) |
std::basic_format_parse_context
no es copiable.
std::basic_format_parse_context:: begin
|
constexpr
const_iterator begin
(
)
const
noexcept
;
|
||
Devuelve un iterador al inicio del rango de la cadena de formato.
std::basic_format_parse_context:: end
|
constexpr
const_iterator end
(
)
const
noexcept
;
|
||
Devuelve un iterador al final del rango de la cadena de formato.
std::basic_format_parse_context:: advance_to
|
constexpr
void
advance_to
(
const_iterator it
)
;
|
||
Establece el inicio del rango de la cadena de formato a
it
. Después de una llamada a
advance_to()
, las llamadas posteriores a
begin()
devolverán una copia de
it
.
El comportamiento es indefinido si end ( ) no es alcanzable desde it .
std::basic_format_parse_context:: next_arg_id
|
constexpr
std::
size_t
next_arg_id
(
)
;
|
||
Entra en modo de indexación automática de argumentos y devuelve el siguiente índice de argumento, comenzando desde 0.
Si * this ya ha entrado en modo de indexación manual de argumentos, lanza std::format_error .
Si el siguiente índice de argumento es mayor o igual al num_args proporcionado en el constructor, la llamada no es una expresión constante núcleo.
std::basic_format_parse_context:: check_arg_id
|
constexpr
void
check_arg_id
(
std::
size_t
id
)
;
|
||
Activa el modo de indexación manual de argumentos.
Si * this ya ha activado el modo de indexación automática de argumentos, lanza std::format_error .
Si id es mayor o igual que num_args proporcionado en el constructor, la llamada no es una expresión constante núcleo.
std::basic_format_parse_context:: check_dynamic_spec
|
template
<
class
...
Ts
>
constexpr void check_dynamic_spec ( std:: size_t id ) noexcept ; |
(desde C++26) | |
Si id es mayor o igual que num_args proporcionado en el constructor o el tipo del argumento de formato correspondiente (después de la conversión a std::basic_format_arg ) no es uno de los tipos en Ts... , la llamada no es una expresión constante del núcleo. Una llamada a check_dynamic_spec no tiene efecto en tiempo de ejecución.
El programa está mal formado a menos que sizeof... ( Ts ) >= 1 , los tipos en Ts... sean únicos, y cada tipo sea uno de bool , char_type , int , unsigned int , long long int , unsigned long long int , float , double , long double , const char_type * , std:: basic_string_view < char_type > , o const void * .
std::basic_format_parse_context:: check_dynamic_spec_integral
|
constexpr
void
check_dynamic_spec_integral
(
std::
size_t
id
)
noexcept
;
|
(desde C++26) | |
Equivalente a llamar check_dynamic_spec < int , unsigned int , long long int , unsigned long long int > ( id ) . Una llamada a check_dynamic_spec_integral no tiene efecto en tiempo de ejecución.
std::basic_format_parse_context:: check_dynamic_spec_string
|
constexpr
void
check_dynamic_spec_string
(
std::
size_t
id
)
noexcept
;
|
(desde C++26) | |
Equivalente a llamar check_dynamic_spec < const char_type * , std:: basic_string_view < char_type >> ( id ) . Una llamada a check_dynamic_spec_string no tiene efecto en tiempo de ejecución.
Ejemplo
|
Esta sección está incompleta
Razón: sin ejemplo |
Informes de defectos
Los siguientes informes de defectos que modifican el comportamiento se aplicaron retroactivamente a los estándares publicados anteriormente de C++.
| DR | Aplicado a | Comportamiento publicado | Comportamiento correcto |
|---|---|---|---|
| LWG 3825 | C++20 |
check_arg_id
tenía una verificación de argumento
id en tiempo de compilación, pero
next_arg_id
no la tenía
|
añadido |
| LWG 3975 | C++20 |
se permitía la especialización de usuario de
basic_format_parse_context
|
no permitido |