- Tumbleweed 2024.07.05-1.3
- Leap-16.0
std::enable_nonlocking_formatter_optimization(3) | C++ Standard Libary | std::enable_nonlocking_formatter_optimization(3) |
NAME¶
std::enable_nonlocking_formatter_optimization - std::enable_nonlocking_formatter_optimization
Synopsis¶
Defined in header <format>
template< class T > (since C++23)
constexpr bool enable_nonlocking_formatter_optimization = false;
This template can be used by implementations to enable efficient
implementations of
std::print and std::println.
If std::enable_nonlocking_formatter_optimization<T> is true, printing
an argument of
type T can be performed in a more efficient way (see std::print for details).
std::enable_nonlocking_formatter_optimization specializations can be true in
the
following cases:
* T is one of the types where std::format<T, CharT> is a basic standard
specialization (see below).
* A program may specialize this template for any cv-unqualified
program-defined
type T. Such specializations must be usable in constant expressions and have
type const bool.
Basic standard specializations
In the following list, CharT is either char or wchar_t, ArithmeticT is any
cv-unqualified arithmetic type other than char, wchar_t, char8_t, char16_t,
or
char32_t:
Nonlocking flag for character formatters
template<> (1)
inline constexpr bool enable_nonlocking_formatter_optimization<CharT> =
true;
Nonlocking flag for string formatters
template<> (2)
inline constexpr bool enable_nonlocking_formatter_optimization<CharT*>
= true;
template<>
inline constexpr bool enable_nonlocking_formatter_optimization<const
CharT*> = (3)
true;
template< std::size_t N >
inline constexpr bool
enable_nonlocking_formatter_optimization<CharT[N]> = (4)
true;
template< class Traits, class Alloc >
inline constexpr bool enable_nonlocking_formatter_optimization (5)
<std::basic_string<CharT, Traits, Alloc>> = true;
template< class Traits >
inline constexpr bool enable_nonlocking_formatter_optimization (6)
<std::basic_string_view<CharT, Traits>> = true;
Nonlocking flag for arithmetic formatters
template<>
inline constexpr bool
enable_nonlocking_formatter_optimization<ArithmeticT> = (7)
true;
Nonlocking flag for pointer formatters
template<>
inline constexpr bool
enable_nonlocking_formatter_optimization<std::nullptr_t> (8)
= true;
template<> (9)
inline constexpr bool enable_nonlocking_formatter_optimization<void*> =
true;
template<>
inline constexpr bool enable_nonlocking_formatter_optimization<const
void*> = (10)
true;
See also¶
formatter defines formatting rules for a given type
(C++20) (class template)
print prints to stdout or a file stream using formatted representation of the
(C++23) arguments
(function template)
println same as std::print except that each print is terminated by additional
new
(C++23) line
(function template)
2024.06.10 | http://cppreference.com |