tmp/tmpygj6or_s/{from.md → to.md}
RENAMED
|
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
### `construct_at` <a id="specialized.construct">[[specialized.construct]]</a>
|
| 2 |
+
|
| 3 |
+
``` cpp
|
| 4 |
+
template<class T, class... Args>
|
| 5 |
+
constexpr T* construct_at(T* location, Args&&... args);
|
| 6 |
+
|
| 7 |
+
namespace ranges {
|
| 8 |
+
template<class T, class... Args>
|
| 9 |
+
constexpr T* construct_at(T* location, Args&&... args);
|
| 10 |
+
}
|
| 11 |
+
```
|
| 12 |
+
|
| 13 |
+
*Constraints:* The expression
|
| 14 |
+
`::new (declval<void*>()) T(declval<Args>()...)` is well-formed when
|
| 15 |
+
treated as an unevaluated operand.
|
| 16 |
+
|
| 17 |
+
*Effects:* Equivalent to:
|
| 18 |
+
|
| 19 |
+
``` cpp
|
| 20 |
+
return ::new (voidify(*location)) T(std::forward<Args>(args)...);
|
| 21 |
+
```
|
| 22 |
+
|