用語

このセクションでは、インテル® TBB 特有の用語について説明します。

コンセプト

コンセプト (concept) は、型の要件のセットです。要件は、構文または意味を成します。例えば、ソート可能 (Sortable) のコンセプトは、配列のソートを可能にする要件のセットとして定義されます。T 型は、次の場合にソート可能です。

C++ でソート・テンプレート関数を記述して、ソート可能な任意の型の配列がソートできることを保証できます。

コンセプトを定義するための 2 つのアプローチは、有効式擬似署名 です。C++ 標準は、使用方法のパターンを示す有効式 アプローチに従っていますが、このアプローチには、重要な詳細表記が規則に影響される欠点があります。このドキュメントでは、簡潔で、最初の実装にカットアンドペーストできるため、擬似署名を使用しています。

下記の表は、ソート可能 (Sortable) コンセプトの T 型の擬似署名を示しています。

ソート可能コンセプト例の擬似署名

擬似署名

意味

bool operator<(const T& x, const T& y)

x と y を比較します。

void swap(T& x, T& y)

x と y を交換します。

実署名は、C++ で許可された暗黙的型変換による擬似署名とは異なります。例えば、C++ では int から bool への暗黙的型変換と U から (const U&) への暗黙的型変換を許可しているため、type U、上記の表の operator< を実装する実署名は、int operator<( U x, U y ) として表現できます。同様に、C++ では参照型への const 修飾子の暗黙的な追加を許可しているため、実署名 bool operator<( U& x, U& y ) は許容されます。

モデル

コンセプトの要件を満たす場合、型はコンセプトをモデル化 します。例えば、2 つの intxy を交換する関数 swap(x,y) が存在する場合、int 型は上記の表のソート可能コンセプトをモデル化します。ソートを可能とするほかの要件、特に x<y は、int 型のビルトイン operator< によってすでに満たされています。

コピーコンストラクト可能 (CopyConstructible)

まれに、型が ISO C++ 標準で定義され、型の作成と参照の基本操作を提供するコピーコンストラクト可能 (CopyConstructible) コンセプトのモデル化が必要になることもあります。下記の表は、擬似署名形式でコピーコンストラクト可能 (CopyConstructible) の要件を示しています。

コピーコンストラクト可能 (CopyConstructible) の要件

擬似署名

意味

T( const T& )

const T のコピーを構築します。

~T()

デストラクター。

T* operator&()

アドレスを取得します。

const T* operator&() const

const T のアドレスを取得します。