繁体   English   中英

C++; 将 std::array 作为 Function 参数传递

[英]C++; Pass std::array as a Function Parameter

我知道这是一个常见问题,但如何将std::array作为 function 参数传递? 我在这里查看了其他问题的答案,询问同样的事情,我发现最好的“解决方案”是使用模板将size_t设置为SIZE之类的关键字。 我试过了,但它仍然给我两个编译时错误:

Error   C2065   'SIZE': undeclared identifier
Error   C2975   '_Size': invalid template argument for 'std::array', expected compile-time constant expression

这两个错误都在我有void function 定义的那一行。

据我所知,我正是按照解决方案的输入方式来做的。 我知道我可以改为通过std::vector ,但我很固执,想学习这个。

这是我的相关代码:

#include <iostream>
#include <array>
using namespace std;

template<size_t SIZE>
void QuickSort(array<unsigned, SIZE>& arrayName);

int main()
{
    // main function.
}

void QuickSort(array<unsigned, SIZE>& arrayName)
{
    // whatever the function does.
}

如果能帮我弄清楚我做错了什么,我将不胜感激。

编辑:我忘了取出第二个 function 参数。 我这样做了,但仍然是同样的问题。

您的 function 定义仍然需要模板参数,因为编译器无法知道SIZE是什么

template<size_t SIZE>
// ^^^^^^^^^^^^^^^^^^
void QuickSort(array<unsigned, SIZE>& arrayName)
{
/// whatever the function does.
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM