std:: enable_nonlocking_formatter_optimization
|
定義済みヘッダー
<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
となります:
-
Tは、 std::formatter < T, CharT > が 基本標準特殊化 または ライブラリ型に対する標準特殊化 である型の一つです(下記参照)。 -
プログラムは、任意のCV修飾されていない
プログラム定義型
Tに対してこのテンプレートを特殊化できます。そのような特殊化は 定数式で使用可能 でなければならず、型 const bool を持たなければなりません。
目次 |
基本的な標準特殊化
以下のリストにおいて、
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
|
(5) | |
|
template
<
class
Traits
>
constexpr
bool
enable_nonlocking_formatter_optimization
|
(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
として定義されます:
-
std::chrono::zoned_time
そのテンプレートパラメータ型
TimeZonePtrが const std:: chrono :: time_zone * の場合
以下の標準テンプレートのすべての特殊化に対する
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
と同じだが、各出力が追加の改行で終了する
(関数テンプレート) |