我想实现这样的目标:
#include <string>
#include <array>
enum class MyEnum{
A,
B,
C
};
template<MyEnum... Args>
class MyClass{
public:
MyClass()
{
}
private:
std::array<MyEnum, sizeof...(Args)> array;
};
现在我有一个数组,它可以保存所有传递给模板的值。但是我怎样才能用模板参数填充这个数组呢?
最佳答案
如果您想要将所有 MyEnum
值放入 array
,那么您可以将它们解压到一个初始化列表中并初始化 用直接初始化来初始化它:array
用它
MyClass() : array {{ Args... }} { }
但是,您需要一个相当新的编译器才能使用此语法。
感谢 Xeo 更正我的答案。
关于c++ - 从可变参数模板创建 std::array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10364874/