我想定义属于该类中某个类的枚举。这清楚表明它们属于同一类,并有助于防止名称空间污染:
class Bar
{
public:
enum class Foo
{
something,
somethingElse
};
Bar(Foo foo);
//etc...
};
出于好奇,我想知道是否可以对枚举类做同样的事情,该枚举类用作其定义的类的模板参数:
template <Bar::Foo foo>
class Bar
{
public:
enum class Foo
{
something,
somethingElse
};
};
很显然,这不会编译,因为在我们尝试将Bar
用作模板参数类型时,尚未声明Bar::Foo
。我想看看是否有人可以提出一些创造性的解决方法。