【发布时间】:2013-03-01 14:51:27
【问题描述】:
考虑一个实现容器的类模板,该容器包括一个用于选择其存储位置的选项。
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 的想法怎么可能奏效。
-
你试过这个'using type= Container
::StorageOption'吗? -
有一个丑陋的解决方案,您可以将枚举从类中取出并将其命名为
ContainerStorageOption。