Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/132.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 从函数返回静态固定大小数组_C++_Arrays - Fatal编程技术网

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

C++ 从函数返回静态固定大小数组,c++,arrays,C++,Arrays,是否可以从函数返回静态固定大小数组?这个的语法是什么。我不是要std::array,也不是要T*,我是特别要T arr[N]形式的数组。例如,可以通过以下语法将此类数组作为函数中的参数: template<typename T, auto N> void func(T (&arr)[N]) { } 模板 无效函数(T&arr)[N]) { } 函数不能按值返回数组。您已经注意到,函数可以通过引用将数组作为参数;类似地,函数可以通过引用返回数组。为此,最简单的方法是使用尾部

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

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

}
模板
无效函数(T&arr)[N])
{
}

函数不能按值返回数组。您已经注意到,函数可以通过引用将数组作为参数;类似地,函数可以通过引用返回数组。为此,最简单的方法是使用尾部返回类型语法:

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

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

函数不能按值返回数组。您已经注意到,函数可以通过引用将数组作为参数;类似地,函数可以通过引用返回数组。为此,最简单的方法是使用尾部返回类型语法:

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

但是数组既不能通过值传递,也不能通过值返回。

不能完全确定您要问什么,但是如果数组在函数中的作用域内,如在
void func(){T arr[N];}
中,它在函数的末尾是死的。@user4581301我想将其视为一个对象并返回一个副本(可能带有副本省略)。这不可行吗?如果返回数组,它将衰减为指针并过期。得到一个数组的唯一方法是将它包装在一个类中,如果你要这样做,ta dah,可怜的人的
std::array
。不完全确定你在问什么,但数组是否在函数中,如
void func(){T arr[N];}
,范围内,它在函数的末尾是死的。@user4581301我想把它当作一个对象来处理,并返回一个副本(可能带有副本省略)。这不可行吗?如果返回数组,它将衰减为指针并过期。几乎唯一的方法就是把它包装在一个类中,如果你要这样做,塔达,可怜的男人的
std::array
。这充分回答了我的问题。为什么
T(&)[N]
不能直接位于返回类型的位置,而auto是必需的(我试过了,它不起作用)?@lightxbulb可以这样做,但大多数人的语法都错了。这充分回答了我的问题。为什么
T(&)[N]
不能直接位于返回类型的位置,而auto是必需的(我试过了,它不起作用)?@lightxbulb可以这样做,但大多数人的语法都错了。