我想创建一个对象,std::array<T, N>
但问题是我只能使用返回constexpr
类型的函数,否则编译器会抱怨。这里的问题是我需要根据另一个数组的大小来计算这个数组的长度,可能是这样的:
template <typename T>
struct DataLength
{
template <typename iter>
size_t maxPossibleLength(iter begin, iter end)
{
size_t m_size = 0;
while (begin != end) {
m_size = m_size << 8 | std::numeric_limits<T>::max(); /* 0xff for uchar*/
begin++;
}
return m_size;
}
}
我怎样才能转换这个函数的输出,以便我可以使用它来代替N
?