我正在尝试编写一个可以在可变大小的std :: array上工作的函数,例如:
std::array a<int,5>={1,2,3,4,5};
std::array b<int,3>={6,7,8};
myFunc(a);
myFunc(b);
void myFunc(std::array &p)
{
cout << "array contains " << p.size() << "elements";
}
Run Code Online (Sandbox Code Playgroud)
但是,除非我指定大小,否则它不起作用,但我希望函数从数组中获取大小.我真的不想要矢量使用的复制和动态分配,我想使用std :: array()分配的空间,并且不希望编译器为每个可能的数组大小创建函数的副本.
我想过创建一个像数组一样工作的模板,但是它会指向现有数据,而不是自己分配,但不想重新发明轮子.
这有可能吗?