std:: enable_nonlocking_formatter_optimization
|
Definido en el encabezado
<format>
|
||
|
template
<
class
T
>
constexpr bool enable_nonlocking_formatter_optimization = false ; |
(desde C++23) | |
Esta plantilla puede ser utilizada por las implementaciones para habilitar implementaciones eficientes de std::print y std::println .
Si
std::enable_nonlocking_formatter_optimization<T>
es
true
, la impresión de un argumento de tipo
T
puede realizarse de manera más eficiente (consulte
std::print
para más detalles).
Las especializaciones de
std::enable_nonlocking_formatter_optimization
pueden ser
true
en los siguientes casos:
-
Tes uno de los tipos para los cuales std::formatter < T, CharT > es una especialización estándar básica o especialización estándar para tipos de biblioteca (ver más abajo). -
Un programa puede especializar esta plantilla para cualquier
tipo definido por el programa
sin calificadores cv
T. Dichas especializaciones deben ser utilizables en expresiones constantes y tener tipo const bool .
Contenidos |
Especializaciones estándar básicas
En la siguiente lista,
CharT
es
char
o
wchar_t
,
ArithmeticT
es cualquier tipo aritmético sin calificación cv excepto
char
,
wchar_t
,
char8_t
,
char16_t
, o
char32_t
:
|
Bandera de no bloqueo para formateadores de caracteres
|
||
|
template
<>
constexpr bool enable_nonlocking_formatter_optimization < CharT > = true ; |
(1) | |
|
Bandera de no bloqueo para formateadores de cadenas
|
||
|
template
<>
constexpr bool enable_nonlocking_formatter_optimization < CharT * > = true ; |
(2) | |
|
template
<>
constexpr bool enable_nonlocking_formatter_optimization < const CharT * > = true ; |
(3) | |
|
template
<
std::
size_t
N
>
constexpr bool enable_nonlocking_formatter_optimization < CharT [ N ] > = true ; |
(4) | |
|
template
<
class
Traits,
class
Alloc
>
constexpr
bool
enable_nonlocking_formatter_optimization
|
(5) | |
|
template
<
class
Traits
>
constexpr
bool
enable_nonlocking_formatter_optimization
|
(6) | |
|
Bandera de no bloqueo para formateadores aritméticos
|
||
|
template
<>
constexpr bool enable_nonlocking_formatter_optimization < ArithmeticT > = true ; |
(7) | |
|
Bandera de no bloqueo para formateadores de punteros
|
||
|
template
<>
constexpr bool enable_nonlocking_formatter_optimization < std:: nullptr_t > = true ; |
(8) | |
|
template
<>
constexpr bool enable_nonlocking_formatter_optimization < void * > = true ; |
(9) | |
|
template
<>
constexpr bool enable_nonlocking_formatter_optimization < const void * > = true ; |
(10) | |
Especializaciones estándar para tipos de biblioteca
Especializaciones de
enable_nonlocking_formatter_optimization
para todas las especializaciones de las siguientes plantillas estándar están definidas como
true
:
-
std::chrono::zoned_time
cuando su tipo de parámetro de plantilla
TimeZonePtres const std:: chrono :: time_zone *
Especializaciones de
enable_nonlocking_formatter_optimization
para todas las especializaciones de las siguientes plantillas estándar se definen como condicionalmente
true
:
Especialización de
enable_nonlocking_formatter_optimization
para todos los
tipos de rango formateables
están siempre definidas como
false
para los cuales el tipo de formato de rango no es
std
::
range_format
::
disabled
.
Notas
| Macro de prueba de características | Valor | Estándar | Característica |
|---|---|---|---|
__cpp_lib_print
|
202403L
|
(C++26)
(DR23) |
Salida formateada con bloqueo de flujo |
202406L
|
(C++26)
(DR23) |
Habilitar optimización de formateador sin bloqueo para más tipos formateables |
Véase también
|
(C++20)
|
define las reglas de formato para un tipo dado
(plantilla de clase) |
|
(C++23)
|
imprime en
stdout
o un flujo de archivo usando
representación formateada
de los argumentos
(plantilla de función) |
|
(C++23)
|
igual que
std::print
excepto que cada impresión termina con una nueva línea adicional
(plantilla de función) |