std::scoped_allocator_adaptor<OuterAlloc,InnerAlloc...>:: scoped_allocator_adaptor
来自cppreference.com
                    
                                        
                    < cpp | memory | scoped allocator adaptor
                    
                                                            
                    |   在标头  <scoped_allocator> 定义
  | 
||
|   scoped_allocator_adaptor();  | 
(1) | (C++11 起) | 
|   template< class OuterA2 > scoped_allocator_adaptor( OuterA2&& outerAlloc, const InnerAllocs&... innerAllocs) noexcept;  | 
(2) | (C++11 起) | 
|   scoped_allocator_adaptor( const scoped_allocator_adaptor& other ) noexcept;  | 
(3) | (C++11 起) | 
|   scoped_allocator_adaptor( scoped_allocator_adaptor&& other ) noexcept;  | 
(4) | (C++11 起) | 
|   template< class OuterA2 > scoped_allocator_adaptor( const scoped_allocator_adaptor<OuterA2, InnerAllocs...>& other ) noexcept;  | 
(5) | (C++11 起) | 
|   template< class OuterA2 > scoped_allocator_adaptor( scoped_allocator_adaptor<OuterA2, InnerAllocs...>&& other ) noexcept;  | 
(6) | (C++11 起) | 
1) 默认构造函数:值初始化 
OuterAlloc 基类及内层分配器成员对象,若为实现所使用。2) 从 std::forward<OuterA2>(outerAlloc) 构造基类 
OuterAlloc ,并用 innerAllocs... 构造内层分配器。此重载只有在 std::is_constructible<OuterAlloc, OuterA2>::value 为 true时才会参与重载决议。3) 复制构造函数:从 
other 的对应分配器初始化每个分配器4) 移动构造函数:从 
other 的对应分配器移动每个分配器到 *this 内5) 从 
other 的对应分配器初始化每个分配器。此重载只有在 std::is_constructible<OuterAlloc, const OuterA2&>::value 为 true 时才会参与重载决议。6) 用移动语义,从 
other 的对应分配器初始化每个分配器。此重载只有在 std::is_constructible<OuterAlloc, OuterA2>::value 为 true 时才会参与重载决议。参数
| outerAlloc | - | 外层分配器的构造函数参数 | 
| innerAllocs... | - | 内层分配其的构造函数参数 | 
| other | - |   另一 std::scoped_allocator_adaptor
 | 
缺陷报告
下列更改行为的缺陷报告追溯地应用于以前出版的 C++ 标准。
| 缺陷报告 | 应用于 | 出版时的行为 | 正确行为 | 
|---|---|---|---|
| LWG 2782 | C++11 |  接收 OuterA2 的构造函数未受制约,干扰到元编程
 | 
添加了制约 | 
参阅
|    用外层分配器分配未初始化存储  (公开成员函数)  | |
|    在分配的存储上构造一个对象,若适合则传递内存分配器至其构造函数  (公开成员函数)  |