6.5.1. 要件

スカラーストレージポリシーの実装が満たすべき要件について述べる。

ポリシーは、2相テンプレートと状態を持ち得るポリシークラスで構成される。フロントエンドのクラス名をpolicy_sample、バックエンド導出のために与えられた要素の型をTとすると、バックエンドのクラスは

typename policy_sample::template bind<T>::type

という記述で得られる。以降、バックエンドのクラス名をbackendと表記する。

backendは次のpublicなメンバ型を持つ。

backendは次のprotectedなメンバ関数を持つ。

ポリシークラスが通常満たすべき例外安全性と計算量の条件は次の通り。

表 6.5. スカラーストレージポリシーの例外安全性と計算量

操作例外安全性計算量
すべてのコンストラクタstrong定数
デストラクタnothrow定数
代入strong定数
swapnothrow定数
invariantnothrow定数
get_initializerstrong定数
valuenothrow定数