From Jason Turner

[allocator.traits]

Diff to HTML by rtfpessoa

tmp/tmproddj_vr/{from.md → to.md} RENAMED
@@ -15,11 +15,11 @@ If a program declares an explicit or partial specialization of
15
  ``` cpp
16
  namespace std {
17
  template<class Alloc> struct allocator_traits {
18
  using allocator_type = Alloc;
19
 
20
- using value_type = typename Alloc::value_type;
21
 
22
  using pointer = see below;
23
  using const_pointer = see below;
24
  using void_pointer = see below;
25
  using const_void_pointer = see below;
@@ -33,14 +33,13 @@ namespace std {
33
  using is_always_equal = see below;
34
 
35
  template<class T> using rebind_alloc = see below;
36
  template<class T> using rebind_traits = allocator_traits<rebind_alloc<T>>;
37
 
38
- [[nodiscard]] static constexpr pointer allocate(Alloc& a, size_type n);
39
- [[nodiscard]] static constexpr pointer allocate(Alloc& a, size_type n,
40
- const_void_pointer hint);
41
- [[nodiscard]] static constexpr allocation_result<pointer, size_type>
42
  allocate_at_least(Alloc& a, size_type n);
43
 
44
  static constexpr void deallocate(Alloc& a, pointer p, size_type n);
45
 
46
  template<class T, class... Args>
@@ -148,25 +147,24 @@ of the form `Alloc<U, Args>`, where `Args` is zero or more type
148
  arguments; otherwise, the instantiation of `rebind_alloc` is ill-formed.
149
 
150
  #### Static member functions <a id="allocator.traits.members">[[allocator.traits.members]]</a>
151
 
152
  ``` cpp
153
- [[nodiscard]] static constexpr pointer allocate(Alloc& a, size_type n);
154
  ```
155
 
156
  *Returns:* `a.allocate(n)`.
157
 
158
  ``` cpp
159
- [[nodiscard]] static constexpr pointer allocate(Alloc& a, size_type n, const_void_pointer hint);
160
  ```
161
 
162
  *Returns:* `a.allocate(n, hint)` if that expression is well-formed;
163
  otherwise, `a.allocate(n)`.
164
 
165
  ``` cpp
166
- [[nodiscard]] static constexpr allocation_result<pointer, size_type>
167
- allocate_at_least(Alloc& a, size_type n);
168
  ```
169
 
170
  *Returns:* `a.allocate_at_least(n)` if that expression is well-formed;
171
  otherwise, `{a.allocate(n), n}`.
172
 
 
15
  ``` cpp
16
  namespace std {
17
  template<class Alloc> struct allocator_traits {
18
  using allocator_type = Alloc;
19
 
20
+ using value_type = Alloc::value_type;
21
 
22
  using pointer = see below;
23
  using const_pointer = see below;
24
  using void_pointer = see below;
25
  using const_void_pointer = see below;
 
33
  using is_always_equal = see below;
34
 
35
  template<class T> using rebind_alloc = see below;
36
  template<class T> using rebind_traits = allocator_traits<rebind_alloc<T>>;
37
 
38
+ static constexpr pointer allocate(Alloc& a, size_type n);
39
+ static constexpr pointer allocate(Alloc& a, size_type n, const_void_pointer hint);
40
+ static constexpr allocation_result<pointer, size_type>
 
41
  allocate_at_least(Alloc& a, size_type n);
42
 
43
  static constexpr void deallocate(Alloc& a, pointer p, size_type n);
44
 
45
  template<class T, class... Args>
 
147
  arguments; otherwise, the instantiation of `rebind_alloc` is ill-formed.
148
 
149
  #### Static member functions <a id="allocator.traits.members">[[allocator.traits.members]]</a>
150
 
151
  ``` cpp
152
+ static constexpr pointer allocate(Alloc& a, size_type n);
153
  ```
154
 
155
  *Returns:* `a.allocate(n)`.
156
 
157
  ``` cpp
158
+ static constexpr pointer allocate(Alloc& a, size_type n, const_void_pointer hint);
159
  ```
160
 
161
  *Returns:* `a.allocate(n, hint)` if that expression is well-formed;
162
  otherwise, `a.allocate(n)`.
163
 
164
  ``` cpp
165
+ static constexpr allocation_result<pointer, size_type> allocate_at_least(Alloc& a, size_type n);
 
166
  ```
167
 
168
  *Returns:* `a.allocate_at_least(n)` if that expression is well-formed;
169
  otherwise, `{a.allocate(n), n}`.
170