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

FreeBSD Manual Pages

  
 
  

home | help
deductiongu...rstd::deque(3)  C++ Standard Libary deductiongu...rstd::deque(3)

NAME
       deductionguidesforstd::deque - deductionguidesforstd::deque

Synopsis
	  Defined in header <deque>
	  template< class InputIt,

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

	      -> deque<typename	std::iterator_traits<InputIt>::value_type,
	  Alloc>;
	  template< ranges::input_range	R,

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

	      -> deque<ranges::range_value_t<R>, Alloc>;

	  1) This deduction guide is provided for  deque  to  allow  deduction
       from an iterator
	  range. This overload participates in overload	resolution only	if In-
       putIt satisfies
	  LegacyInputIterator and Alloc	satisfies Allocator.
	  2)  This  deduction  guide  is provided for deque to allow deduction
       from a
	  std::from_range_t tag	and an input_range.

	  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 (2)

Example
       // Run this code

	#include <deque>
	#include <vector>

	int main()
	{
	    std::vector<int> v = {1, 2,	3, 4};

	    // uses explicit deduction guide to	deduce std::deque<int>
	    std::deque x(v.begin(), v.end());

	    // deduces std::deque<std::vector<int>::iterator>
	    // first phase of overload resolution for list-initialization  se-
       lects the candidate
	    // synthesized from	the initializer-list constructor; second phase
       is not performed
	    // and deduction guide has no effect
	    std::deque y{v.begin(), v.end()};
	}

http://cppreference.com		  2024.06.10	  deductiongu...rstd::deque(3)

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

home | help