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

FreeBSD Manual Pages

  
 
  

home | help
deductionguidesforstd::set(3) C++ Standard Libarydeductionguidesforstd::set(3)

NAME
       deductionguidesforstd::set - deductionguidesforstd::set

Synopsis
	  Defined in header <set>
	  template<

	      class InputIt,
	      class Comp = std::less<typename
	  std::iterator_traits<InputIt>::value_type>,
	      class	     Alloc	    =	       std::allocator<typename
       (1) (since C++17)
	  std::iterator_traits<InputIt>::value_type>>
	  set( InputIt,	InputIt, Comp =	Comp(),	Alloc =	Alloc()	)

	      -> set<typename std::iterator_traits<InputIt>::value_type,
	  Comp,	Alloc>;
	  template<

	      class Key, class Comp = std::less<Key>,
	      class	   Alloc	=	 std::allocator<Key>	     >
       (2) (since C++17)
	  set( std::initializer_list<Key>, Comp	= Comp(), Alloc	= Alloc() )

	      -> set<Key, Comp,	Alloc>;
	  template< class InputIt, class Alloc >

	  set( InputIt,	InputIt, Alloc )
	      ->    set<typename    std::iterator_traits<InputIt>::value_type,
       (3) (since C++17)

		     std::less<typename
	  std::iterator_traits<InputIt>::value_type>, Alloc>;
	  template< class Key, class Alloc >

	  set(		std::initializer_list<Key>,	     Alloc	     )
       (4) (since C++17)

	      -> set<Key, std::less<Key>, Alloc>;
	  template< ranges::input_range	R, class Compare =
	  less<ranges::range_value_t<R>>,

		    class  Alloc  = std::allocator<ranges::range_value_t<R>> >
       (5) (since C++23)
	  set( std::from_range_t, R&&, Compare = Compare(), Alloc = Alloc()
	  )

	      -> set<ranges::range_value_t<R>, Compare,	Alloc>;
	  template< ranges::input_range	R, class Alloc >

	  set(	       std::from_range_t,	  R&&,	       Alloc	     )
       (6) (since C++23)

	      -> set<ranges::range_value_t<R>,
	  std::less<ranges::range_value_t<R>>, Alloc>;

	  1-4)	These deduction	guides are provided for	set to allow deduction
       from an iterator
	  range	(overloads (1,3)) and std::initializer_list (overloads (2,4)).
	  5,6) These deduction guides are provided for set to allow  deduction
       from a
	  std::from_range_t tag	and an input_range.

	  These	 overloads  participate	in overload resolution only if InputIt
       satisfies
	  LegacyInputIterator, Alloc satisfies Allocator, and  Comp  does  not
       satisfy Allocator.

	  Note:	 the  extent  to which the library determines that a type does
       not satisfy
	  LegacyInputIterator is unspecified, except that as a	minimum	 inte-
       gral types do not
	  qualify  as input iterators. Likewise, the extent to which it	deter-
       mines that a type
	  does not satisfy Allocator is	unspecified, except that as a  minimum
       the member type
	  Alloc::value_type must exist and the expression
	  std::declval<Alloc&>().allocate(std::size_t{})  must	be well-formed
       when treated as
	  an unevaluated operand.

Notes
	      Feature-test macro       Value	Std		      Feature
	  __cpp_lib_containers_ranges 202202L (C++23)  Ranges-aware  construc-
       tion and	insertion;
						      overload (5,6)

Example
       // Run this code

	#include <set>

	int main()
	{
	    // guide #2	deduces	std::set<int>
	    std::set s = {1, 2,	3, 4};

	    // guide #1	deduces	std::set<int>
	    std::set s2(s.begin(), s.end());
	}

http://cppreference.com		  2024.06.10	 deductionguidesforstd::set(3)

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

home | help