我有以下功能:
... getX()
{
static int x[] = {1, 2, 3};
return x;
}
int(&)[3]
但不要明确指定大小 (3)。int(&x)[N]
的模板函数作为参数(并且我不想将大小显式传递给该模板函数),所以我不知道返回一对的解决方案如何工作......
在 C++14 中:
auto& getX()
{
static int x[] = {1, 2, 3};
return x;
}
std::array
而不是 C 风格的数组。#include <type_traits>
#define ITEMS 1, 2, 3
auto getX() -> decltype((int[]){ITEMS})
{
static int x[] = {ITEMS};
return x;
}
#undef ITEMS
int main()
{
static_assert(std::is_same<decltype(getX()), int(&)[3]>{});
}
关于c++ - 返回对特定大小数组的引用,而不明确说明返回类型中的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46222699/
欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) | Powered by Discuz! X3.4 |