分割可能コンセプト

概要

そのインスタンスが 2 つに分割可能な型の要件。

要件

次の表は、インスタンス x を含む分割可能な型 X の要件を示しています。

分割可能コンセプト

擬似署名

意味

X::X(X& x, split)

xx と新しく構築されるオブジェクトに分割します。

説明

インスタンスを 2 つの部分に分割できるコンストラクター がある場合、型は分割可能です。分割コンストラクターの引数は、オリジナル・オブジェクトへの参照と、ライブラリーによって定義される型 split の仮引数です。この仮引数によって、分割コンストラクターとコピー・コンストラクターが区別されます。コンストラクターを実行した後、x および新しく構築されるオブジェクトは、オリジナルの x の 2 つのピースに相当します。ライブラリーは 2 つのコンテキストで分割コンストラクターを使用します。

Range クラスは、proportional_split 型の引数でオプションの比例分割コンストラクター を追加で定義します。詳細は、「proportional_split クラス」および「blocked_range テンプレート・クラス」セクションを参照してください。

以下のモデル型の例が提供されています。

モデル型

blocked_range および blocked_range2d は分割可能な範囲を表します。どちらの場合も、範囲を 2 つのサブ範囲へ分割します。blocked_range の分割コンストラクターについては、「blocked_range テンプレート・クラス」セクションの例を参照してください。

parallel_reduceparallel_scan のボディーは分割可能でなければなりません。どの場合も、同時に実行できる 2 つのボディーを生成します。

関連情報