Namensräume
Varianten
Aktionen

std::enable_nonlocking_formatter_optimization

Von cppreference.com
< cpp‎ | utility‎ | format
 
 
 
 
Definiert in Header <format>
template< class T >
constexpr bool enable_nonlocking_formatter_optimization = false;
(seit C++23)

Diese Vorlage kann von Implementierungen verwendet werden, um effiziente Implementierungen von std::print und std::println zu ermöglichen.

Wenn std::enable_nonlocking_formatter_optimization<T> true ist, kann das Drucken eines Arguments des Typs T effizienter durchgeführt werden (siehe std::print für Details). std::enable_nonlocking_formatter_optimization Spezialisierungen können in den folgenden Fällen true sein:

Inhalt

[edit] Grundlegende Standard-Spezialisierungen

In der folgenden Liste ist CharT entweder char oder wchar_t, ArithmeticT ist jeder cv-unqualifizierte arithmetische Typ außer char, wchar_t, char8_t, char16_t oder char32_t.

Nonlocking-Flag für Zeichenformatierer
template<>
constexpr bool enable_nonlocking_formatter_optimization<CharT> = true;
(1)
Nonlocking-Flag für Zeichenkettenformatierer
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)
Nonlocking-Flag für arithmetische Formatierer
template<>
constexpr bool enable_nonlocking_formatter_optimization<ArithmeticT> = true;
(7)
Nonlocking-Flag für Zeigerformatierer
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)

[edit] Standard-Spezialisierungen für Bibliothekstypen

Spezialisierungen von enable_nonlocking_formatter_optimization für alle Spezialisierungen der folgenden Standardvorlagen sind als true definiert.

Spezialisierungen von enable_nonlocking_formatter_optimization für alle Spezialisierungen der folgenden Standardvorlagen sind bedingt als true definiert.

Spezialisierung von enable_nonlocking_formatter_optimization für alle formattierbaren Bereichstypen sind immer als false definiert, für die die Bereichsformatart nicht std::range_format::disabled ist.

[edit] Anmerkungen

Feature-Test-Makro Wert Std Feature
__cpp_lib_print 202403L (C++26)
(DR23)
Formatierte Ausgabe mit Stream-Locking
202406L (C++26)
(DR23)
Aktivierung der Nonlocking-Formatter-Optimierung für weitere formattierbare Typen

[edit] Siehe auch

(C++20)
definiert Formatierungsregeln für einen gegebenen Typ
(Klassentemplate) [bearbeiten]
(C++23)
druckt nach stdout oder einem Dateistream unter Verwendung der formatierten Darstellung der Argumente
(Funktionstemplate) [bearbeiten]
(C++23)
dasselbe wie std::print, außer dass jeder Druck durch eine zusätzliche neue Zeile beendet wird
(Funktionstemplate) [bearbeiten]