2
有没有扩展/修改/实现constexpr以返回多维C风格数组维度的std ::元组的方法?constexpr返回多维C风格数组的维数
#include <iostream>
#include <tuple>
template<typename T, std::size_t N>
auto arraysize(T (&arr)[N])
{
return std::make_tuple(N);
}
IOW,如何使数组大小适用于任何维数组?上述的 “作品”,但只返回一个维度:
int i[5];
std::cout << std::get<0>(arraysize(i)) << std::endl;
作品,并返回5。而且,
char c[3][4];
std::cout << std::get<0>(arraysize(c)) << std::endl;
作品,并返回3,但
std::cout << std::get<1>(arraysize(c)) << std::endl;
不编译是因为arraysize()没有正确编码。有没有办法将它编码为一个constexpr来处理任何维数组?尝试使用参数包,但没有成功。
为什么不用'std :: array'来返回? –
user2079303