名前空間
変種
操作

std::scoped_allocator_adaptor<OuterAlloc,InnerAlloc...>::scoped_allocator_adaptor

提供: cppreference.com
 
 
動的メモリ管理
スマートポインタ
(C++11)
(C++11)
(C++11)
(C++17未満)
(C++11)
アロケータ
メモリリソース
未初期化記憶域
(C++17)
ガベージコレクションサポート
その他
(C++20)
(C++11)
(C++11)
C のライブラリ
低水準のメモリ管理
 
 
ヘッダ <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>::valuetrue である場合にのみ、オーバーロード解決に参加します。

3) コピーコンストラクタ。 それぞれのアロケータを other の対応するアロケータから初期化します。

4) ムーブコンストラクタ。 それぞれのアロケータを other の対応するアロケータから *this にムーブします。

5) それぞれのアロケータを other の対応するアロケータから初期化します。 このオーバーロードは、 std::is_constructible<OuterAlloc, const OuterA2&>::valuetrue である場合にのみ、オーバーロード解決に参加します。

6) ムーブセマンティクスを用いてそれぞれのアロケータを other の対応するアロケータから初期化します。 このオーバーロードは、 std::is_constructible<OuterAlloc, OuterA2>::valuetrue である場合にのみ、オーバーロード解決に参加します。

[編集] 引数

outerAlloc - 外側のアロケータのためのコンストラクタ引数
innerAllocs... - 内側のアロケータのためのコンストラクタ引数
other - 別の std::scoped_allocator_adaptor

[編集] 欠陥報告

以下の動作変更欠陥報告は以前に発行された C++ 標準に遡って適用されました。

DR 適用先 発行時の動作 正しい動作
LWG 2782 C++11 constructors taking OuterA2 weren't constrained, interfering with metaprogramming constraint added

[編集] 関連項目

外側のアロケータを使用して未初期化記憶域を確保します
(パブリックメンバ関数) [edit]
適切であればコンストラクタに内側のアロケータを渡して、確保された記憶域内にオブジェクトを構築します
(パブリックメンバ関数) [edit]