C++ 参考手册
- C++11
 - C++14
 - C++17
 - C++20
 - C++ 编译器支持情况表
 - 独立与宿主实现
 - C++ 语言
 - C++ 关键词
 - 预处理器
 - C++ 标准库头文件
 - 具名要求
 - 功能特性测试 (C++20)
 - 工具库
 - 类型支持(基本类型、RTTI、类型特性)
 - 概念库 (C++20)
 - 错误处理
 - 动态内存管理
 - std::addressof
 - std::allocator_traits
 - std::default_delete
 - std::allocator_arg_t
 - std::allocator_arg
 - std::weak_ptr
 - std::enable_shared_from_this
 - std::bad_weak_ptr
 - std::unique_ptr
 - std::scoped_allocator_adaptor
 - std::auto_ptr
 - std::destroy_at
 - std::destroy
 - std::destroy_n
 - std::uninitialized_move
 - std::uninitialized_value_construct
 - std::owner_less
 - std::shared_ptr
 - std::to_address
 - std::assume_aligned
 - std::make_obj_using_allocator
 - C 内存管理库
 - 低层内存管理
 - std::pmr::memory_resource
 - std::allocator
 - std::pointer_traits
 - std::uses_allocator
 - std::uses_allocator_construction_args
 - std::uninitialized_construct_using_allocator
 - std::pmr::polymorphic_allocator
 - std::pmr::get_default_resource
 - std::pmr::set_default_resource
 - std::pmr::new_delete_resource
 - std::pmr::null_memory_resource
 - std::pmr::synchronized_pool_resource
 - std::pmr::unsynchronized_pool_resource
 - std::pmr::monotonic_buffer_resource
 - std::pmr::pool_options
 - std::raw_storage_iterator
 - std::get_temporary_buffer
 - std::return_temporary_buffer
 - std::uninitialized_copy
 - std::uninitialized_fill
 - std::uninitialized_default_construct
 - std::uninitialized_copy_n
 - std::uninitialized_fill_n
 - std::uninitialized_move_n
 - std::uninitialized_default_construct_n
 - std::uninitialized_value_construct_n
 - std::construct_at
 - std::align
 - 注释
 - 日期和时间工具
 - 字符串库
 - 容器库
 - 迭代器库
 - 范围库 (C++20)
 - 算法库
 - 数值库
 - 输入/输出库
 - 文件系统库
 - 本地化库
 - 正则表达式库
 - 原子操作库
 - 线程支持库
 - 实验性 C++ 特性
 - 有用的资源
 - 索引
 - std 符号索引
 - 协程支持 (C++20)
 - C++ 关键词
 
std::construct_at
|   定义于头文件  <memory>
  | 
||
|   template<class T, class... Args> constexpr T* construct_at( T* p, Args&&... args );  | 
(C++20 起) | |
在给定地址 p 创建以参数 args... 初始化的 T 对象。此重载仅若 ::new(std::declval<void*>()) T(std::declval<Args>()...) 在不求值语境中为良构才参与重载决议。
等价于
return ::new (const_cast<void*>(static_cast<const volatile void*>(p))) T(std::forward<Args>(args)...);
除了 construct_at 可用于常量表达式的求值。
在某常量表达式 e 的求值中调用 construct_at 时,参数 p 必须指向用 std::allocator<T>::allocate 获得的存储或生存期始于 e 的求值内的对象。
参数
| p | - |   指向将在其上构造 T 对象的未初始化存储的指针
 | 
| args... | - | 用于初始化的参数 | 
返回值
p
示例
| 本节未完成 原因:暂无示例  | 
参阅
|    [静态]  | 
   在分配的存储构造对象  (函数模板)  | 
|    (C++17)  | 
   销毁在给定地址的对象   (函数模板)  |