从函数返回静态的固定大小数组

时间:2019-07-06 00:53:00

标签: c++ arrays

是否可以从函数返回固定大小的静态数组?这个的语法是什么。我既不要求std::array,也不要求T*,我特别要求的是T arr[N]形式的数组。例如,可以通过以下语法将这样的数组作为函数中的参数:

template<typename T, auto N>
void func(T (&arr)[N])
{

}

1 个答案:

答案 0 :(得分:2)

函数无法按值返回数组。您已经观察到函数可以通过引用将数组作为参数 ;类似地,函数可以通过引用返回数组 。为此,使用尾随返回类型语法最简单:

auto func() -> T (&)[N];

但是数组既不能传递也不能按值返回。