12#pragma GCC diagnostic push
13#pragma GCC diagnostic ignored "-Wdangling-pointer"
15template<
typename T,
typename... Args>
16constexpr auto construct_at(T* location, Args&&... args) -> T* {
17 return ::new (
const_cast<void*
>(
static_cast<void const volatile*
>(location))) T(di::util::forward<Args>(args)...);
21#pragma GCC diagnostic pop
27 struct ConstructAtFunction {
28 template<
typename T,
typename... Args>
29 constexpr auto operator()(T* location, Args&&... args)
const -> T*
requires(
requires {
30 std::construct_at(location, util::forward<Args>(args)...);
31 }) {
return std::construct_at(location, util::forward<Args>(args)...); }
35constexpr inline auto construct_at = detail::ConstructAtFunction {};
constexpr auto construct_at
Definition construct_at.h:35
Definition any_storable.h:9
Definition enable_generate_structed_bindings.h:46