我有一个包含一些枚举的模板化结构,为了方便起见,我想制作一个包含枚举的 std::array。有没有办法做到以下几点?
template< typename A >
struct someClass{
enum class State{
sA,
sB,
sC
}
static const std::array<State,4> the_states = {{
State::sA,
State::sB,
State::sC
}};
};
最佳答案
没有。在一个类中只能初始化 static const 整型数据成员。
但是,你可以这样做......
template< typename A >
struct someClass
{
enum State
{
sA,
sB,
sC
};
static const std::array<const State,4> the_states;
};
template<typename A>
const std::array<const someClass::State,4> someClass<A>::the_states =
{
someClass::State::sA,
someClass::State::sB,
someClass::State::sC
};
关于c++ - 类中的 static const std::array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7779899/