Namespaces
Variants

std:: enable_nonlocking_formatter_optimization

From cppreference.net
Défini dans l'en-tête <format>
template < class T >
constexpr bool enable_nonlocking_formatter_optimization = false ;
(depuis C++23)

Ce modèle peut être utilisé par les implémentations pour permettre des implémentations efficaces de std::print et std::println .

Si std::enable_nonlocking_formatter_optimization<T> est true , l'affichage d'un argument de type T peut être réalisé de manière plus efficace (voir std::print pour plus de détails). Les spécialisations de std::enable_nonlocking_formatter_optimization peuvent être true dans les cas suivants :

Table des matières

Spécialisations standard de base

Dans la liste suivante, CharT est soit char soit wchar_t , ArithmeticT est tout type arithmétique non qualifié cv autre que char , wchar_t , char8_t , char16_t , ou char32_t :

Drapeau de non-verrouillage pour les formateurs de caractères
template <>
constexpr bool enable_nonlocking_formatter_optimization < CharT > = true ;
(1)
Drapeau de non-verrouillage pour les formateurs de chaînes
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)
Drapeau de non-verrouillage pour les formateurs arithmétiques
template <>
constexpr bool enable_nonlocking_formatter_optimization < ArithmeticT > = true ;
(7)
Drapeau de non-verrouillage pour les formateurs de pointeurs
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)

Spécialisations standards pour les types de bibliothèque

Les spécialisations de enable_nonlocking_formatter_optimization pour toutes les spécialisations des modèles standards suivants sont définies comme true :

Les spécialisations de enable_nonlocking_formatter_optimization pour toutes les spécialisations des modèles standards suivants sont définies comme conditionnellement true :

Spécialisation de enable_nonlocking_formatter_optimization pour tous les types de plages formatables est toujours définie comme false pour lesquels le type de formatage de plage n'est pas std :: range_format :: disabled .

Notes

Macro de test de fonctionnalité Valeur Std Fonctionnalité
__cpp_lib_print 202403L (C++26)
(DR23)
Sortie formatée avec verrouillage de flux
202406L (C++26)
(DR23)
Activation de l'optimisation de formateur sans verrouillage pour plus de types formatables

Voir aussi

(C++20)
définit les règles de formatage pour un type donné
(modèle de classe)
(C++23)
imprime vers stdout ou un flux de fichier en utilisant la représentation formatée des arguments
(modèle de fonction)
(C++23)
identique à std::print sauf que chaque impression est terminée par un saut de ligne supplémentaire
(modèle de fonction)