格納場所を選択するオプションを含むコンテナを実装するクラス テンプレートを考えてみましょう。
template<class T>
class Container {
public:
enum StorageOption {A,B};
Container(StorageOption opt_): option(opt_) {}
private:
StorageOption option;
};
StorageOption
クラスでのみ使用されるため、ここがメンバーとして選択されました。
ここで、クラスをインスタンス化するには、次のようにテンプレート パラメーターを繰り返す必要があります。
{
Container<int> c( Container<int>::A );
}
パラメータを繰り返さないようにすると同時にStorageOption
メンバーになる方法はありますか、それともオプションを実装するより良い方法はありますか?