Namespaces
Variants

std:: enable_nonlocking_formatter_optimization

From cppreference.net
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:

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

< std:: basic_string < CharT, Traits, Alloc >> = true ;
(5)
template < class Traits >

constexpr bool enable_nonlocking_formatter_optimization

< std:: basic_string_view < CharT, Traits >> = true ;
(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 :

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)