【发布时间】:2018-12-04 06:26:42
【问题描述】:
我想将一个动态大小标准和 typename 类型的数组传递给一个函数。
我不知道该怎么做。为什么我不能只接受对对象数组的引用?
我试过的代码:
#include <iostream>
#include <array>
using namespace std;
template <typename T>
void showArrays(void *myArrayPointer, int size, T type) {
array<T, size> myArray = myArrayPointer;
for (int i = 0; i < size; i++) {
cout << myArray.at(i) << " \n";
}
}
int main()
{
array<int,6> myArray = { 1,2,3,4,5,6 };
cout << "The array is \n";
showArrays(&myArray,6,0);
return 0;
}
但我仍然得到了 Size 的预期编译时常量表达式。 我的函数头也不是很漂亮。但是如果不传递通用指针或创建大小是属性的类数组的模板,我无法找到一种动态大小的方法。
【问题讨论】: