格納場所を選択するオプションを含むコンテナを実装するクラステンプレートを考えてみましょう。それは唯一のクラスで使用されているのでここでクラステンプレートの列挙型にアクセスするためのテンプレートパラメータの繰り返しを避ける
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
を持っているか、そこにありますオプションを実装するより良い方法は?
hmjdのアイデアがうまくいくかどうかわかりません。 –
これは 'type = Container :: StorageOption'を使って試しましたか? –
クラスから列挙型を取り出し、それを 'ContainerStorageOption'という名前の醜い解決策があります。 –