From Jason Turner

[container.adaptors.general]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmpfp2g_qei/{from.md → to.md} +17 -1
tmp/tmpfp2g_qei/{from.md → to.md} RENAMED
@@ -6,11 +6,27 @@ The headers `<queue>` and `<stack>` define the container adaptors
6
  The container adaptors each take a `Container` template parameter, and
7
  each constructor takes a `Container` reference argument. This container
8
  is copied into the `Container` member of each adaptor. If the container
9
  takes an allocator, then a compatible allocator may be passed in to the
10
  adaptor’s constructor. Otherwise, normal copy or move construction is
11
- used for the container argument.
 
 
12
 
13
  For container adaptors, no `swap` function throws an exception unless
14
  that exception is thrown by the swap of the adaptor’s `Container` or
15
  `Compare` object (if any).
16
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6
  The container adaptors each take a `Container` template parameter, and
7
  each constructor takes a `Container` reference argument. This container
8
  is copied into the `Container` member of each adaptor. If the container
9
  takes an allocator, then a compatible allocator may be passed in to the
10
  adaptor’s constructor. Otherwise, normal copy or move construction is
11
+ used for the container argument. The first template parameter `T` of the
12
+ container adaptors shall denote the same type as
13
+ `Container::value_type`.
14
 
15
  For container adaptors, no `swap` function throws an exception unless
16
  that exception is thrown by the swap of the adaptor’s `Container` or
17
  `Compare` object (if any).
18
 
19
+ A deduction guide for a container adaptor shall not participate in
20
+ overload resolution if any of the following are true:
21
+
22
+ - It has an `InputIterator` template parameter and a type that does not
23
+ qualify as an input iterator is deduced for that parameter.
24
+ - It has a `Compare` template parameter and a type that qualifies as an
25
+ allocator is deduced for that parameter.
26
+ - It has a `Container` template parameter and a type that qualifies as
27
+ an allocator is deduced for that parameter.
28
+ - It has an `Allocator` template parameter and a type that does not
29
+ qualify as an allocator is deduced for that parameter.
30
+ - It has both `Container` and `Allocator` template parameters, and
31
+ `uses_allocator_v<Container, Allocator>` is `false`.
32
+