我知道如果你想通过引用传递一个已知大小的数组,你可以使用
void add(char (&arr)[60])
但我只知道数组的大小介于1到60之间。有什么办法吗?
答案 0 :(得分:3)
您可以使用模板匹配任何类型和任何大小,并使用static_assert
来检查在编译时传递的数组的大小:
template<typename T, std::size_t N>
void add(T (&arr)[N])
{
static_assert(N <= 60, "wrong size");
// ...
}
<强> Demo 强>
答案 1 :(得分:0)
其他选项,不使用模板:
void add(char* arr , int size);
请记住,ad-hoc数组名称“衰减”为指向第一个元素的指针,因此一维数组可以作为指针传递。