Files
2025-10-25 03:02:53 +03:00

1.4 KiB
Raw Permalink Blame History

[specialized.construct]

26 Algorithms library [algorithms]

26.11 Specialized algorithms [specialized.algorithms]

26.11.8 construct_at [specialized.construct]

🔗

`template<class T, class... Args> constexpr T* construct_at(T* location, Args&&... args);

namespace ranges { template<class T, class... Args> constexpr T* construct_at(T* location, Args&&... args); } `

1

#

Constraints: is_unbounded_array_v is false.

The expression ::new (declval<void*>()) T(declval()...) is well-formed when treated as an unevaluated operand ([expr.context]).

2

#

Mandates: If is_array_v is true, sizeof...(Args) is zero.

3

#

Effects: Equivalent to:if constexpr (is_array_v)return ::new (voidify(*location)) T1;elsereturn ::new (voidify(*location)) T(std::forward(args)...);