名稱空間
變體
操作

std::enable_nonlocking_formatter_optimization

來自 cppreference.com
< cpp‎ | utility‎ | format
 
 
 
 
定義於標頭檔案 <format>
template< class T >
constexpr bool enable_nonlocking_formatter_optimization = false;
(C++23 起)

此模板可用於實現 std::printstd::println 的高效實現。

如果 std::enable_nonlocking_formatter_optimization<T>true,則可以以更高效的方式列印型別為 T 的引數(詳見 std::print)。在以下情況下,std::enable_nonlocking_formatter_optimization 的特化可以是 true

目錄

[編輯] 基本標準特化

在以下列表中,CharTcharwchar_tArithmeticT 是除 charwchar_tchar8_tchar16_tchar32_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 的特化始終被定義為 false,其範圍格式種類不是 std::range_format::disabled

[編輯] 注意

特性測試 標準 特性
__cpp_lib_print 202403L (C++26)
(DR23)
帶流鎖的格式化輸出
202406L (C++26)
(DR23)
為更多可格式化型別啟用非鎖定格式化程式最佳化

[編輯] 另請參閱

(C++20)
定義給定型別的格式化規則
(類模板) [編輯]
(C++23)
使用引數的格式化表示列印到 stdout 或檔案流
(函式模板) [編輯]
(C++23)
std::print 相同,但每次列印都以額外的換行符終止
(函式模板) [編輯]