|
9852 | 9852 | queue() : queue(Container()) {}
|
9853 | 9853 | explicit queue(const Container&);
|
9854 | 9854 | explicit queue(Container&&);
|
| 9855 | + template<class InputIterator> queue(InputIterator first, InputIterator last); |
9855 | 9856 | template<class Alloc> explicit queue(const Alloc&);
|
9856 | 9857 | template<class Alloc> queue(const Container&, const Alloc&);
|
9857 | 9858 | template<class Alloc> queue(Container&&, const Alloc&);
|
9858 | 9859 | template<class Alloc> queue(const queue&, const Alloc&);
|
9859 | 9860 | template<class Alloc> queue(queue&&, const Alloc&);
|
| 9861 | + template<class InputIterator, class Alloc> |
| 9862 | + queue(InputIterator first, InputIterator last, const Alloc&); |
9860 | 9863 |
|
9861 | 9864 | [[nodiscard]] bool empty() const { return c.empty(); }
|
9862 | 9865 | size_type size() const { return c.size(); }
|
|
9877 | 9880 | template<class Container>
|
9878 | 9881 | queue(Container) -> queue<typename Container::value_type, Container>;
|
9879 | 9882 |
|
| 9883 | + template<class InputIterator> |
| 9884 | + queue(InputIterator, InputIterator) -> queue<@\exposid{iter-value-type}@<InputIterator>>; |
| 9885 | + |
9880 | 9886 | template<class Container, class Allocator>
|
9881 | 9887 | queue(Container, Allocator) -> queue<typename Container::value_type, Container>;
|
9882 | 9888 |
|
| 9889 | + template<class InputIterator, class Allocator> |
| 9890 | + queue(InputIterator, InputIterator, Allocator) |
| 9891 | + -> queue<@\exposid{iter-value-type}@<InputIterator>, deque<@\exposid{iter-value-type}@<InputIterator>, |
| 9892 | + Allocator>>; |
| 9893 | + |
9883 | 9894 | template<class T, class Container, class Alloc>
|
9884 | 9895 | struct uses_allocator<queue<T, Container>, Alloc>
|
9885 | 9896 | : uses_allocator<Container, Alloc>::type { };
|
|
9888 | 9899 |
|
9889 | 9900 | \rSec3[queue.cons]{Constructors}
|
9890 | 9901 |
|
| 9902 | +\indexlibraryctor{queue}% |
9891 | 9903 | \begin{itemdecl}
|
9892 | 9904 | explicit queue(const Container& cont);
|
9893 | 9905 | \end{itemdecl}
|
|
9898 | 9910 | Initializes \tcode{c} with \tcode{cont}.
|
9899 | 9911 | \end{itemdescr}
|
9900 | 9912 |
|
| 9913 | +\indexlibraryctor{queue}% |
9901 | 9914 | \begin{itemdecl}
|
9902 | 9915 | explicit queue(Container&& cont);
|
9903 | 9916 | \end{itemdecl}
|
|
9908 | 9921 | Initializes \tcode{c} with \tcode{std::move(cont)}.
|
9909 | 9922 | \end{itemdescr}
|
9910 | 9923 |
|
| 9924 | +\indexlibraryctor{queue}% |
| 9925 | +\begin{itemdecl} |
| 9926 | +template<class InputIterator> |
| 9927 | + queue(InputIterator first, InputIterator last); |
| 9928 | +\end{itemdecl} |
| 9929 | + |
| 9930 | +\begin{itemdescr} |
| 9931 | +\pnum |
| 9932 | +\effects |
| 9933 | +Initializes \tcode{c} with |
| 9934 | +\tcode{first} as the first argument and \tcode{last} as the second argument. |
| 9935 | +\end{itemdescr} |
| 9936 | + |
9911 | 9937 | \rSec3[queue.cons.alloc]{Constructors with allocators}
|
9912 | 9938 |
|
9913 | 9939 | \pnum
|
9914 | 9940 | If \tcode{uses_allocator_v<container_type, Alloc>} is \tcode{false}
|
9915 | 9941 | the constructors in this subclause shall not participate in overload resolution.
|
9916 | 9942 |
|
| 9943 | +\indexlibraryctor{queue}% |
9917 | 9944 | \begin{itemdecl}
|
9918 | 9945 | template<class Alloc> explicit queue(const Alloc& a);
|
9919 | 9946 | \end{itemdecl}
|
|
9924 | 9951 | Initializes \tcode{c} with \tcode{a}.
|
9925 | 9952 | \end{itemdescr}
|
9926 | 9953 |
|
| 9954 | +\indexlibraryctor{queue}% |
9927 | 9955 | \begin{itemdecl}
|
9928 | 9956 | template<class Alloc> queue(const container_type& cont, const Alloc& a);
|
9929 | 9957 | \end{itemdecl}
|
|
9935 | 9963 | as the second argument.
|
9936 | 9964 | \end{itemdescr}
|
9937 | 9965 |
|
| 9966 | +\indexlibraryctor{queue}% |
9938 | 9967 | \begin{itemdecl}
|
9939 | 9968 | template<class Alloc> queue(container_type&& cont, const Alloc& a);
|
9940 | 9969 | \end{itemdecl}
|
|
9946 | 9975 | as the second argument.
|
9947 | 9976 | \end{itemdescr}
|
9948 | 9977 |
|
| 9978 | +\indexlibraryctor{queue}% |
9949 | 9979 | \begin{itemdecl}
|
9950 | 9980 | template<class Alloc> queue(const queue& q, const Alloc& a);
|
9951 | 9981 | \end{itemdecl}
|
|
9957 | 9987 | second argument.
|
9958 | 9988 | \end{itemdescr}
|
9959 | 9989 |
|
| 9990 | +\indexlibraryctor{queue}% |
9960 | 9991 | \begin{itemdecl}
|
9961 | 9992 | template<class Alloc> queue(queue&& q, const Alloc& a);
|
9962 | 9993 | \end{itemdecl}
|
|
9968 | 9999 | as the second argument.
|
9969 | 10000 | \end{itemdescr}
|
9970 | 10001 |
|
| 10002 | +\indexlibraryctor{queue}% |
| 10003 | +\begin{itemdecl} |
| 10004 | +template<class InputIterator, class Alloc> |
| 10005 | + queue(InputIterator first, InputIterator last, const Alloc& alloc); |
| 10006 | +\end{itemdecl} |
| 10007 | + |
| 10008 | +\begin{itemdescr} |
| 10009 | +\pnum |
| 10010 | +\effects |
| 10011 | +Initializes \tcode{c} with |
| 10012 | +\tcode{first} as the first argument, |
| 10013 | +\tcode{last} as the second argument, and |
| 10014 | +\tcode{alloc} as the third argument. |
| 10015 | +\end{itemdescr} |
| 10016 | + |
9971 | 10017 | \rSec3[queue.ops]{Operators}
|
9972 | 10018 |
|
9973 | 10019 | \indexlibrarymember{operator==}{queue}%
|
@@ -10535,11 +10581,14 @@
|
10535 | 10581 | stack() : stack(Container()) {}
|
10536 | 10582 | explicit stack(const Container&);
|
10537 | 10583 | explicit stack(Container&&);
|
| 10584 | + template<class InputIterator> stack(InputIterator first, InputIterator last); |
10538 | 10585 | template<class Alloc> explicit stack(const Alloc&);
|
10539 | 10586 | template<class Alloc> stack(const Container&, const Alloc&);
|
10540 | 10587 | template<class Alloc> stack(Container&&, const Alloc&);
|
10541 | 10588 | template<class Alloc> stack(const stack&, const Alloc&);
|
10542 | 10589 | template<class Alloc> stack(stack&&, const Alloc&);
|
| 10590 | + template<class InputIterator, class Alloc> |
| 10591 | + stack(InputIterator first, InputIterator last, const Alloc&); |
10543 | 10592 |
|
10544 | 10593 | [[nodiscard]] bool empty() const { return c.empty(); }
|
10545 | 10594 | size_type size() const { return c.size(); }
|
|
10558 | 10607 | template<class Container>
|
10559 | 10608 | stack(Container) -> stack<typename Container::value_type, Container>;
|
10560 | 10609 |
|
| 10610 | + template<class InputIterator> |
| 10611 | + stack(InputIterator, InputIterator) -> stack<@\exposid{iter-value-type}@<InputIterator>>; |
| 10612 | + |
10561 | 10613 | template<class Container, class Allocator>
|
10562 | 10614 | stack(Container, Allocator) -> stack<typename Container::value_type, Container>;
|
10563 | 10615 |
|
| 10616 | + template<class InputIterator, class Allocator> |
| 10617 | + stack(InputIterator, InputIterator, Allocator) |
| 10618 | + -> stack<@\exposid{iter-value-type}@<InputIterator>, deque<@\exposid{iter-value-type}@<InputIterator>, |
| 10619 | + Allocator>>; |
| 10620 | + |
10564 | 10621 | template<class T, class Container, class Alloc>
|
10565 | 10622 | struct uses_allocator<stack<T, Container>, Alloc>
|
10566 | 10623 | : uses_allocator<Container, Alloc>::type { };
|
|
10591 | 10648 | Initializes \tcode{c} with \tcode{std::move(cont)}.
|
10592 | 10649 | \end{itemdescr}
|
10593 | 10650 |
|
| 10651 | +\indexlibraryctor{stack}% |
| 10652 | +\begin{itemdecl} |
| 10653 | +template<class InputIterator> |
| 10654 | + stack(InputIterator first, InputIterator last); |
| 10655 | +\end{itemdecl} |
| 10656 | + |
| 10657 | +\begin{itemdescr} |
| 10658 | +\pnum |
| 10659 | +\effects |
| 10660 | +Initializes \tcode{c} with |
| 10661 | +\tcode{first} as the first argument and \tcode{last} as the second argument. |
| 10662 | +\end{itemdescr} |
| 10663 | + |
10594 | 10664 | \rSec3[stack.cons.alloc]{Constructors with allocators}
|
10595 | 10665 |
|
10596 | 10666 | \pnum
|
|
10656 | 10726 | as the second argument.
|
10657 | 10727 | \end{itemdescr}
|
10658 | 10728 |
|
| 10729 | +\indexlibraryctor{stack}% |
| 10730 | +\begin{itemdecl} |
| 10731 | +template<class InputIterator, class Alloc> |
| 10732 | + stack(InputIterator first, InputIterator last, const Alloc& alloc); |
| 10733 | +\end{itemdecl} |
| 10734 | + |
| 10735 | +\begin{itemdescr} |
| 10736 | +\pnum |
| 10737 | +\effects |
| 10738 | +Initializes \tcode{c} with |
| 10739 | +\tcode{first} as the first argument, |
| 10740 | +\tcode{last} as the second argument, and |
| 10741 | +\tcode{alloc} as the third argument. |
| 10742 | +\end{itemdescr} |
| 10743 | + |
10659 | 10744 | \rSec3[stack.ops]{Operators}
|
10660 | 10745 |
|
10661 | 10746 | \indexlibrarymember{operator==}{stack}%
|
|
0 commit comments