Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

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

NAME
       std::range_formatter - std::range_formatter

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

	      requires	    std::same_as<std::remove_cvref_t<T>,     T>	    &&
       (since C++23)
	  std::formattable<T, CharT>

	  class	range_formatter;

	  The std::range_formatter is a	helper class template for implementing
       std::formatter
	  specializations for range types.

Member objects
	  Member name		     Definition
	  underlying_  (private)       the  underlying	 formatter   of	  type
       std::formatter<T, CharT>
				     (exposition-only member object*)
				     a	string	representing  the separator of
       the range
	  separator_ (private)	     formatted result. The  default  separator
       is ", ".
				     (exposition-only member object*)
				     a string representing the opening bracket
       of the range
	  opening-bracket_  (private)  formatted  result.  The default opening
       bracket is "[".
				     (exposition-only member object*)
				     a string representing the closing bracket
       of the range
	  closing-bracket_ (private) formatted	result.	 The  default  closing
       bracket is "]".
				     (exposition-only member object*)

Member functions
	  set_separator	sets a specified separator for the range formatted re-
       sult
			(public	member function)
			sets  a	specified opening and closing brackets for the
       range formatted
	  set_brackets	result
			(public	member function)
	  underlying	returns	the underlying formatter
			(public	member function)
	  parse		parses the format specifier as specified by range-for-
       mat-spec
			(public	member function)
	  format	writes the range  formatted  output  as	 specified  by
       range-format-spec
			(public	member function)

       std::range_formatter::set_separator

	  constexpr  void  set_separator(  std::basic_string_view<CharT> sep )
       noexcept;

	  Assigns sep to separator_.

       std::range_formatter::set_brackets

	  constexpr void set_brackets( std::basic_string_view<CharT> opening,
				       std::basic_string_view<CharT> closing )
       noexcept;

	  Assigns  opening  and	 closing  to  opening-bracket_	and   closing-
       bracket_, respectively.

       std::range_formatter::underlying

	  constexpr std::formatter<T, CharT>& underlying();		(1)
	  constexpr const std::formatter<T, CharT>& underlying() const;	(2)

	  Returns underlying_ (the underlying formatter).

       std::range_formatter::parse

	  template< class ParseContext >
	  constexpr auto parse(	ParseContext& ctx ) -> ParseContext::iterator;

	  Parses  the  format specifiers as a range-format-spec	and stores the
       parsed specifiers
	  in the current object.

	  Calls	underlying_.parse(ctx) to parse	format-spec  in	 range-format-
       spec or,	if the
	  latter is not	present, an empty format-spec.

	  If  range-type  or  the  n option is present,	the values of opening-
       bracket_,
	  closing-bracket_, and	separator_ are modified	as required.

	  It calls underlying_.set_debug_format() if:

	    * the range-type is	neither	s nor ?s,
	    * underlying_.set_debug_format() is	a valid	expression, and
	    * there is no range-underlying-spec.

	  Returns an iterator past the end of the range-format-spec.

       std::range_formatter::format

	  template< ranges::input_range	R, class FormatContext >

	    requires std::formattable<ranges::range_reference_t<R>, CharT> &&
		     std::same_as<std::remove_cvref_t<ranges::range_refer-
       ence_t<R>>, T>

	  auto format( R&& r, FormatContext& ctx ) const -> FormatContext::it-
       erator;

	  If the range-type was	either s or ?s,	it writes the formatted
	  std::basic_string<CharT>(std::from_range, r) as a string or  an  es-
       caped string,
	  respectively,	into ctx.out().

	  Otherwise,  it  writes  the following	into ctx.out() as specified by
       range-format-spec,
	  in order:

	    * opening-bracket_,
	    * for each formattable element e of	the range r:

	    * the result of writing e via underlying_, and
	    * separator_, unless e is the last element of r, and
	    * closing-bracket_.

	  Returns an iterator past the end of the output range.

	  Defect reports

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

	     DR	      Applied	 to		   Behavior    as    published
       Correct behavior
	  LWG  3892  C++23	 the formatting	of nested ranges was incorrect
       corrected

See also
	  formatter defines formatting rules for a given type
	  (C++20)   (class template)

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

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::range_formatter&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help