Namespaces
Variants

std:: enable_nonlocking_formatter_optimization

From cppreference.net
定義済みヘッダー <format>
template < class T >
constexpr bool enable_nonlocking_formatter_optimization = false ;
(C++23以降)

このテンプレートは、実装が std::print および std::println の効率的な実装を可能にするために使用できます。

std::enable_nonlocking_formatter_optimization<T> true の場合、型 T の引数の出力はより効率的な方法で実行できます(詳細は std::print を参照)。 std::enable_nonlocking_formatter_optimization の特殊化は以下の場合に true となります:

目次

基本的な標準特殊化

以下のリストにおいて、 CharT char または wchar_t であり、 ArithmeticT char wchar_t char8_t char16_t char32_t 以外のCV修飾されない算術型です:

文字フォーマッタの非ロックフラグ
template <>
constexpr bool enable_nonlocking_formatter_optimization < CharT > = true ;
(1)
文字列フォーマッタの非ロックフラグ
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)
算術型フォーマッタの非ロックフラグ
template <>
constexpr bool enable_nonlocking_formatter_optimization < ArithmeticT > = true ;
(7)
ポインタフォーマッタの非ロックフラグ
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)

ライブラリ型の標準特殊化

以下の標準テンプレートのすべての特殊化に対する enable_nonlocking_formatter_optimization の特殊化は true として定義されます:

以下の標準テンプレートのすべての特殊化に対する enable_nonlocking_formatter_optimization の特殊化は、条件付きで true として定義されます:

enable_nonlocking_formatter_optimization のすべての フォーマット可能な範囲型 に対する特殊化は、範囲フォーマット種別が std :: range_format :: disabled でない場合、常に false として定義されます。

注記

機能テスト マクロ 標準 機能
__cpp_lib_print 202403L (C++26)
(DR23)
ストリームロック付き書式付き出力
202406L (C++26)
(DR23)
より多くの書式可能な型に対する非ロックフォーマッタ最適化の有効化

関連項目

(C++20)
指定された型のフォーマット規則を定義する
(クラステンプレート)
(C++23)
引数の フォーマット済み 表現を使用して 標準出力 またはファイルストリームに出力する
(関数テンプレート)
(C++23)
std::print と同じだが、各出力が追加の改行で終了する
(関数テンプレート)