反復子ポリシーの実装が満たすべき要件について述べる。
ポリシーは、2相テンプレートとステートレスポリシーで構成される。フロントエンドのクラス名をpolicy_sample、バックエンド導出のために与えられた反復子の型をITとすると、バックエンドのクラスは
typenamepolicy_sample::templatebind<IT>::type
という記述で得られる。以降、バックエンドのクラス名をbackend、与えられた反復子の型をbase_iteratorと表記する。
backendは次のpublicなメンバ型を持つ。
iterator
変換後の反復子の型。
backendは次のpublicな静的メンバ関数を持つ。
base_iterator base(iterator p)
変換後の反復子から変換前の反復子を得る。