我有一个类模板,它的一个成员是基于模板参数构建的简单数组。我需要能够在其中一个构造函数中初始化数组中的每个元素为单个值。不幸的是,这个构造函数必须是
相关部分如下:
constexpr
。相关部分如下:
template <typename T, size_t N>
class foo
{
T data[N];
constexpr foo(T val)
{
// initialize data with N copies of val
}
};
使用std::fill
或循环与constexpr
要求不兼容。使用: data{val}
进行初始化仅设置数组的第一个元素并将其余元素初始化为零。
如何实现?
我觉得可以使用可变参数模板和元组等方式解决...
constexpr
无关。 - Ben Voigt