From 51b3ccd8976c03463e59f4cf05c6b8fb04bc543b Mon Sep 17 00:00:00 2001 From: Jens Maurer Date: Wed, 9 Jun 2021 14:13:06 +0200 Subject: [PATCH] P1518R2 Stop overconstraining allocators in container deduction guides --- source/containers.tex | 54 +++++++++++++++++++++---------------------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/source/containers.tex b/source/containers.tex index cd238c55fd..a935de023b 100644 --- a/source/containers.tex +++ b/source/containers.tex @@ -3765,8 +3765,8 @@ deque(InputIterator first, InputIterator last, const Allocator& = Allocator()); deque(const deque& x); deque(deque&&); - deque(const deque&, const Allocator&); - deque(deque&&, const Allocator&); + deque(const deque&, const type_identity_t&); + deque(deque&&, const type_identity_t&); deque(initializer_list, const Allocator& = Allocator()); ~deque(); @@ -4190,8 +4190,8 @@ forward_list(InputIterator first, InputIterator last, const Allocator& = Allocator()); forward_list(const forward_list& x); forward_list(forward_list&& x); - forward_list(const forward_list& x, const Allocator&); - forward_list(forward_list&& x, const Allocator&); + forward_list(const forward_list& x, const type_identity_t&); + forward_list(forward_list&& x, const type_identity_t&); forward_list(initializer_list, const Allocator& = Allocator()); ~forward_list(); forward_list& operator=(const forward_list& x); @@ -4993,8 +4993,8 @@ list(InputIterator first, InputIterator last, const Allocator& = Allocator()); list(const list& x); list(list&& x); - list(const list&, const Allocator&); - list(list&&, const Allocator&); + list(const list&, const type_identity_t&); + list(list&&, const type_identity_t&); list(initializer_list, const Allocator& = Allocator()); ~list(); list& operator=(const list& x); @@ -5701,8 +5701,8 @@ constexpr vector(InputIterator first, InputIterator last, const Allocator& = Allocator()); constexpr vector(const vector& x); constexpr vector(vector&&) noexcept; - constexpr vector(const vector&, const Allocator&); - constexpr vector(vector&&, const Allocator&); + constexpr vector(const vector&, const type_identity_t&); + constexpr vector(vector&&, const type_identity_t&); constexpr vector(initializer_list, const Allocator& = Allocator()); constexpr ~vector(); constexpr vector& operator=(const vector& x); @@ -6245,8 +6245,8 @@ constexpr vector(InputIterator first, InputIterator last, const Allocator& = Allocator()); constexpr vector(const vector& x); constexpr vector(vector&& x); - constexpr vector(const vector&, const Allocator&); - constexpr vector(vector&&, const Allocator&); + constexpr vector(const vector&, const type_identity_t&); + constexpr vector(vector&&, const type_identity_t&); constexpr vector(initializer_list, const Allocator& = Allocator()); constexpr ~vector(); constexpr vector& operator=(const vector& x); @@ -6612,8 +6612,8 @@ map(const map& x); map(map&& x); explicit map(const Allocator&); - map(const map&, const Allocator&); - map(map&&, const Allocator&); + map(const map&, const type_identity_t&); + map(map&&, const type_identity_t&); map(initializer_list, const Compare& = Compare(), const Allocator& = Allocator()); @@ -7158,8 +7158,8 @@ multimap(const multimap& x); multimap(multimap&& x); explicit multimap(const Allocator&); - multimap(const multimap&, const Allocator&); - multimap(multimap&&, const Allocator&); + multimap(const multimap&, const type_identity_t&); + multimap(multimap&&, const type_identity_t&); multimap(initializer_list, const Compare& = Compare(), const Allocator& = Allocator()); @@ -7461,8 +7461,8 @@ set(const set& x); set(set&& x); explicit set(const Allocator&); - set(const set&, const Allocator&); - set(set&&, const Allocator&); + set(const set&, const type_identity_t&); + set(set&&, const type_identity_t&); set(initializer_list, const Compare& = Compare(), const Allocator& = Allocator()); template @@ -7735,8 +7735,8 @@ multiset(const multiset& x); multiset(multiset&& x); explicit multiset(const Allocator&); - multiset(const multiset&, const Allocator&); - multiset(multiset&&, const Allocator&); + multiset(const multiset&, const type_identity_t&); + multiset(multiset&&, const type_identity_t&); multiset(initializer_list, const Compare& = Compare(), const Allocator& = Allocator()); template @@ -8156,8 +8156,8 @@ unordered_map(const unordered_map&); unordered_map(unordered_map&&); explicit unordered_map(const Allocator&); - unordered_map(const unordered_map&, const Allocator&); - unordered_map(unordered_map&&, const Allocator&); + unordered_map(const unordered_map&, const type_identity_t&); + unordered_map(unordered_map&&, const type_identity_t&); unordered_map(initializer_list il, size_type n = @\seebelow@, const hasher& hf = hasher(), @@ -8751,8 +8751,8 @@ unordered_multimap(const unordered_multimap&); unordered_multimap(unordered_multimap&&); explicit unordered_multimap(const Allocator&); - unordered_multimap(const unordered_multimap&, const Allocator&); - unordered_multimap(unordered_multimap&&, const Allocator&); + unordered_multimap(const unordered_multimap&, const type_identity_t&); + unordered_multimap(unordered_multimap&&, const type_identity_t&); unordered_multimap(initializer_list il, size_type n = @\seebelow@, const hasher& hf = hasher(), @@ -9118,8 +9118,8 @@ unordered_set(const unordered_set&); unordered_set(unordered_set&&); explicit unordered_set(const Allocator&); - unordered_set(const unordered_set&, const Allocator&); - unordered_set(unordered_set&&, const Allocator&); + unordered_set(const unordered_set&, const type_identity_t&); + unordered_set(unordered_set&&, const type_identity_t&); unordered_set(initializer_list il, size_type n = @\seebelow@, const hasher& hf = hasher(), @@ -9443,8 +9443,8 @@ unordered_multiset(const unordered_multiset&); unordered_multiset(unordered_multiset&&); explicit unordered_multiset(const Allocator&); - unordered_multiset(const unordered_multiset&, const Allocator&); - unordered_multiset(unordered_multiset&&, const Allocator&); + unordered_multiset(const unordered_multiset&, const type_identity_t&); + unordered_multiset(unordered_multiset&&, const type_identity_t&); unordered_multiset(initializer_list il, size_type n = @\seebelow@, const hasher& hf = hasher(), @@ -9729,7 +9729,7 @@ \item It has an \tcode{InputIterator} template parameter and a type that does not qualify as an input iterator is deduced for that parameter. \item It has a \tcode{Compare} template parameter and a type that qualifies as an allocator is deduced for that parameter. \item It has a \tcode{Container} template parameter and a type that qualifies as an allocator is deduced for that parameter. -\item It has an \tcode{Allocator} template parameter and a type that does not qualify as an allocator is deduced for that parameter. +\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. \item It has both \tcode{Container} and \tcode{Allocator} template parameters, and \tcode{uses_allocator_v} is \tcode{false}. \end{itemize}