home | help
std::enable...optimization(3)  C++ Standard Libary std::enable...optimization(3)

NAME
     std::enable_nonlocking_formatter_optimization - std::enable_nonlocking_for-
     matter_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 imple-
     mentations 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  de-
     tails).
	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  stan-
     dard
	    specialization (see below).
	  *  A	program may specialize this template for any cv-unqualified pro-
     gram-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<Arith-
     meticT> =	(7)
	true;
	Nonlocking flag for pointer formatters
	template<>
	inline	   constexpr	 bool	   enable_nonlocking_formatter_optimiza-
     tion<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 representa-
     tion of the
	(C++23)   arguments
		  (function template)
	println   same as std::print except that each print is terminated by ad-
     ditional new
	(C++23)   line
		  (function template)

http://cppreference.com 	   2024.06.10	   std::enable...optimization(3)

home | help