名前空間
変種
操作

std::enable_nonlocking_formatter_optimization

From cppreference.com
< cpp‎ | utility‎ | format
 
 
 
 
ヘッダー <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 になることがあります。

目次

[編集] 基本的な標準特殊化

以下のリストでは、CharTchar または wchar_t のいずれかであり、ArithmeticTcharwchar_tchar8_tchar16_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)
引数の書式化された表現を用いて、stdoutまたはファイルストリームに出力する
(関数テンプレート) [編集]
(C++23)
std::printと同じだが、各出力の末尾に改行が追加される点が異なる
(関数テンプレート) [編集]
English 日本語 中文(简体) 中文(繁體)