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 =
|
| 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 |
-
|
| 39 |
-
|
| 40 |
-
|
| 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 |
-
|
| 154 |
```
|
| 155 |
|
| 156 |
*Returns:* `a.allocate(n)`.
|
| 157 |
|
| 158 |
``` cpp
|
| 159 |
-
|
| 160 |
```
|
| 161 |
|
| 162 |
*Returns:* `a.allocate(n, hint)` if that expression is well-formed;
|
| 163 |
otherwise, `a.allocate(n)`.
|
| 164 |
|
| 165 |
``` cpp
|
| 166 |
-
|
| 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 |
|