home | help
std::formattable(3)	       C++ Standard Libary	     std::formattable(3)

NAME
     std::formattable - std::formattable

Synopsis
	Defined in header <format>
	template< class T, class CharT >

	concept formattable = /* formattable_with */<
	  std::remove_reference_t<T>,				      (1) (since
     C++23)
	  std::basic_format_context</* fmt_iter_for */<CharT>, CharT>

	>;
	Helper templates
	template< class CharT > 				      (2) (expo-
     sition only*)
	using /* fmt_iter_for */ = /* unspecified */;
	template< class T, class Context,

		  class Formatter =
		      typename Context::template
			  formatter_type<std::remove_const_t<T>> >
	concept /* formattable_with */ =
	  std::semiregular<Formatter> &&
	  requires (Formatter& f, const Formatter& cf, T&& t, Context
	fc,							      (3) (expo-
     sition only*)
		    std::basic_format_parse_context<
			typename Context::char_type
		    > pc) {
	    { f.parse(pc) } -> std::same_as<typename
	decltype(pc)::iterator>;
	    { cf.format(t, fc) } -> std::same_as<typename
	Context::iterator>;

	  };

	The   concept	formattable   specifies   that	 std::formatter<std::re-
     move_cvref_t<T>, CharT>
	meets the requirements of BasicFormatter and Formatter (if
	std::remove_reference_t<T> is const-qualified).

	The exposition-only alias template /* fmt_iter_for */ yields an unspeci-
     fied type
	that satisfies std::output_iterator<const CharT&>.

	Defect reports

	The following behavior-changing defect	reports  were  applied	retroac-
     tively to
	previously published C++ standards.

	   DR	 Applied to		 Behavior as published		    Cor-
     rect behavior
	LWG 3925 C++23	    the second template argument of		    pro-
     vided
			    std::basic_format_context was not provided

See also
	formatter      defines formatting rules for a given type
	(C++20)        (class template)
	BasicFormatter	abstracts  formatting  operations for a given formatting
     argument type
	(C++20)        and character type
		       (named requirement)
	Formatter      defines functions used by the formatting library
	(C++20)        (named requirement)

http://cppreference.com 	   2024.06.10		     std::formattable(3)

home | help