|
3765 | 3765 | deque(InputIterator first, InputIterator last, const Allocator& = Allocator());
|
3766 | 3766 | deque(const deque& x);
|
3767 | 3767 | deque(deque&&);
|
3768 |
| - deque(const deque&, const Allocator&); |
3769 |
| - deque(deque&&, const Allocator&); |
| 3768 | + deque(const deque&, const type_identity_t<Allocator>&); |
| 3769 | + deque(deque&&, const type_identity_t<Allocator>&); |
3770 | 3770 | deque(initializer_list<T>, const Allocator& = Allocator());
|
3771 | 3771 |
|
3772 | 3772 | ~deque();
|
|
4190 | 4190 | forward_list(InputIterator first, InputIterator last, const Allocator& = Allocator());
|
4191 | 4191 | forward_list(const forward_list& x);
|
4192 | 4192 | forward_list(forward_list&& x);
|
4193 |
| - forward_list(const forward_list& x, const Allocator&); |
4194 |
| - forward_list(forward_list&& x, const Allocator&); |
| 4193 | + forward_list(const forward_list& x, const type_identity_t<Allocator>&); |
| 4194 | + forward_list(forward_list&& x, const type_identity_t<Allocator>&); |
4195 | 4195 | forward_list(initializer_list<T>, const Allocator& = Allocator());
|
4196 | 4196 | ~forward_list();
|
4197 | 4197 | forward_list& operator=(const forward_list& x);
|
|
4993 | 4993 | list(InputIterator first, InputIterator last, const Allocator& = Allocator());
|
4994 | 4994 | list(const list& x);
|
4995 | 4995 | list(list&& x);
|
4996 |
| - list(const list&, const Allocator&); |
4997 |
| - list(list&&, const Allocator&); |
| 4996 | + list(const list&, const type_identity_t<Allocator>&); |
| 4997 | + list(list&&, const type_identity_t<Allocator>&); |
4998 | 4998 | list(initializer_list<T>, const Allocator& = Allocator());
|
4999 | 4999 | ~list();
|
5000 | 5000 | list& operator=(const list& x);
|
|
5701 | 5701 | constexpr vector(InputIterator first, InputIterator last, const Allocator& = Allocator());
|
5702 | 5702 | constexpr vector(const vector& x);
|
5703 | 5703 | constexpr vector(vector&&) noexcept;
|
5704 |
| - constexpr vector(const vector&, const Allocator&); |
5705 |
| - constexpr vector(vector&&, const Allocator&); |
| 5704 | + constexpr vector(const vector&, const type_identity_t<Allocator>&); |
| 5705 | + constexpr vector(vector&&, const type_identity_t<Allocator>&); |
5706 | 5706 | constexpr vector(initializer_list<T>, const Allocator& = Allocator());
|
5707 | 5707 | constexpr ~vector();
|
5708 | 5708 | constexpr vector& operator=(const vector& x);
|
|
6245 | 6245 | constexpr vector(InputIterator first, InputIterator last, const Allocator& = Allocator());
|
6246 | 6246 | constexpr vector(const vector& x);
|
6247 | 6247 | constexpr vector(vector&& x);
|
6248 |
| - constexpr vector(const vector&, const Allocator&); |
6249 |
| - constexpr vector(vector&&, const Allocator&); |
| 6248 | + constexpr vector(const vector&, const type_identity_t<Allocator>&); |
| 6249 | + constexpr vector(vector&&, const type_identity_t<Allocator>&); |
6250 | 6250 | constexpr vector(initializer_list<bool>, const Allocator& = Allocator());
|
6251 | 6251 | constexpr ~vector();
|
6252 | 6252 | constexpr vector& operator=(const vector& x);
|
|
6612 | 6612 | map(const map& x);
|
6613 | 6613 | map(map&& x);
|
6614 | 6614 | explicit map(const Allocator&);
|
6615 |
| - map(const map&, const Allocator&); |
6616 |
| - map(map&&, const Allocator&); |
| 6615 | + map(const map&, const type_identity_t<Allocator>&); |
| 6616 | + map(map&&, const type_identity_t<Allocator>&); |
6617 | 6617 | map(initializer_list<value_type>,
|
6618 | 6618 | const Compare& = Compare(),
|
6619 | 6619 | const Allocator& = Allocator());
|
|
7158 | 7158 | multimap(const multimap& x);
|
7159 | 7159 | multimap(multimap&& x);
|
7160 | 7160 | explicit multimap(const Allocator&);
|
7161 |
| - multimap(const multimap&, const Allocator&); |
7162 |
| - multimap(multimap&&, const Allocator&); |
| 7161 | + multimap(const multimap&, const type_identity_t<Allocator>&); |
| 7162 | + multimap(multimap&&, const type_identity_t<Allocator>&); |
7163 | 7163 | multimap(initializer_list<value_type>,
|
7164 | 7164 | const Compare& = Compare(),
|
7165 | 7165 | const Allocator& = Allocator());
|
|
7461 | 7461 | set(const set& x);
|
7462 | 7462 | set(set&& x);
|
7463 | 7463 | explicit set(const Allocator&);
|
7464 |
| - set(const set&, const Allocator&); |
7465 |
| - set(set&&, const Allocator&); |
| 7464 | + set(const set&, const type_identity_t<Allocator>&); |
| 7465 | + set(set&&, const type_identity_t<Allocator>&); |
7466 | 7466 | set(initializer_list<value_type>, const Compare& = Compare(),
|
7467 | 7467 | const Allocator& = Allocator());
|
7468 | 7468 | template<class InputIterator>
|
|
7735 | 7735 | multiset(const multiset& x);
|
7736 | 7736 | multiset(multiset&& x);
|
7737 | 7737 | explicit multiset(const Allocator&);
|
7738 |
| - multiset(const multiset&, const Allocator&); |
7739 |
| - multiset(multiset&&, const Allocator&); |
| 7738 | + multiset(const multiset&, const type_identity_t<Allocator>&); |
| 7739 | + multiset(multiset&&, const type_identity_t<Allocator>&); |
7740 | 7740 | multiset(initializer_list<value_type>, const Compare& = Compare(),
|
7741 | 7741 | const Allocator& = Allocator());
|
7742 | 7742 | template<class InputIterator>
|
|
8156 | 8156 | unordered_map(const unordered_map&);
|
8157 | 8157 | unordered_map(unordered_map&&);
|
8158 | 8158 | explicit unordered_map(const Allocator&);
|
8159 |
| - unordered_map(const unordered_map&, const Allocator&); |
8160 |
| - unordered_map(unordered_map&&, const Allocator&); |
| 8159 | + unordered_map(const unordered_map&, const type_identity_t<Allocator>&); |
| 8160 | + unordered_map(unordered_map&&, const type_identity_t<Allocator>&); |
8161 | 8161 | unordered_map(initializer_list<value_type> il,
|
8162 | 8162 | size_type n = @\seebelow@,
|
8163 | 8163 | const hasher& hf = hasher(),
|
|
8751 | 8751 | unordered_multimap(const unordered_multimap&);
|
8752 | 8752 | unordered_multimap(unordered_multimap&&);
|
8753 | 8753 | explicit unordered_multimap(const Allocator&);
|
8754 |
| - unordered_multimap(const unordered_multimap&, const Allocator&); |
8755 |
| - unordered_multimap(unordered_multimap&&, const Allocator&); |
| 8754 | + unordered_multimap(const unordered_multimap&, const type_identity_t<Allocator>&); |
| 8755 | + unordered_multimap(unordered_multimap&&, const type_identity_t<Allocator>&); |
8756 | 8756 | unordered_multimap(initializer_list<value_type> il,
|
8757 | 8757 | size_type n = @\seebelow@,
|
8758 | 8758 | const hasher& hf = hasher(),
|
|
9118 | 9118 | unordered_set(const unordered_set&);
|
9119 | 9119 | unordered_set(unordered_set&&);
|
9120 | 9120 | explicit unordered_set(const Allocator&);
|
9121 |
| - unordered_set(const unordered_set&, const Allocator&); |
9122 |
| - unordered_set(unordered_set&&, const Allocator&); |
| 9121 | + unordered_set(const unordered_set&, const type_identity_t<Allocator>&); |
| 9122 | + unordered_set(unordered_set&&, const type_identity_t<Allocator>&); |
9123 | 9123 | unordered_set(initializer_list<value_type> il,
|
9124 | 9124 | size_type n = @\seebelow@,
|
9125 | 9125 | const hasher& hf = hasher(),
|
|
9443 | 9443 | unordered_multiset(const unordered_multiset&);
|
9444 | 9444 | unordered_multiset(unordered_multiset&&);
|
9445 | 9445 | explicit unordered_multiset(const Allocator&);
|
9446 |
| - unordered_multiset(const unordered_multiset&, const Allocator&); |
9447 |
| - unordered_multiset(unordered_multiset&&, const Allocator&); |
| 9446 | + unordered_multiset(const unordered_multiset&, const type_identity_t<Allocator>&); |
| 9447 | + unordered_multiset(unordered_multiset&&, const type_identity_t<Allocator>&); |
9448 | 9448 | unordered_multiset(initializer_list<value_type> il,
|
9449 | 9449 | size_type n = @\seebelow@,
|
9450 | 9450 | const hasher& hf = hasher(),
|
|
9729 | 9729 | \item It has an \tcode{InputIterator} template parameter and a type that does not qualify as an input iterator is deduced for that parameter.
|
9730 | 9730 | \item It has a \tcode{Compare} template parameter and a type that qualifies as an allocator is deduced for that parameter.
|
9731 | 9731 | \item It has a \tcode{Container} template parameter and a type that qualifies as an allocator is deduced for that parameter.
|
9732 |
| -\item It has an \tcode{Allocator} template parameter and a type that does not qualify as an allocator is deduced for that parameter. |
| 9732 | +\item It has no \tcode{Container} template parameter, and it has an \tcode{Allocator} template parameter, and a type that does not qualify as an allocator is deduced for that parameter. |
9733 | 9733 | \item It has both \tcode{Container} and \tcode{Allocator} template parameters, and \tcode{uses_allocator_v<Container, Allocator>} is \tcode{false}.
|
9734 | 9734 | \end{itemize}
|
9735 | 9735 |
|
|
0 commit comments