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>;

	  These	deduction guides are provided for set to allow deduction  from
       an iterator
	  range	(overloads (1,3)) and std::initializer_list (overloads (2,4)).
       These overloads
	  participate in overload resolution only if InputIt satisfies Legacy-
       InputIterator,
	  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.

Example
       // Run this code

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

http://cppreference.com		  2022.07.31	 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.0>

home | help