gpt4 book ai didi

c++ - 如何将 vector 解析为模板函数的函数参数?

转载 作者:太空宇宙 更新时间:2023-11-03 10:20:29 28 4
gpt4 key购买 nike

我有一个辅助函数可以创建 Array_Ref对象。该函数有一个参数,vector<t> - 编译器提示。我正在使用 VS2010。

  • 我把函数放在 .h 中自己。
  • 我把函数放在 Array_Ref.h
  • 我把它放在 .cpp 中文件。
  • 我输入 typenamefront of vector<T>
  • 我输入 typedef typenamevector<T>

似乎没有任何效果。


#include <vector>
template<class T>
Array_Ref<T> make_ref(vector<T> &v, int s)
{
return (v.size()) ? Array_Ref<T>(v,s): Array_Ref<T>(0,0);
}

我得到:

error C2143: syntax error : missing ';' before '<'
error C4430: missing type specifier - int assumed.
error C2988: unrecognizable template declaration/definition
error C2059: syntax error : '<'

但是,将它放在与 Array_Ref.h 相同的头文件中工作得很好:

template<class T,int size>
Array_Ref<T> make_ref(T (&p)[size])
{
return (p) ? Array_Ref<T>(p,size): Array_Ref<T>(0,0);
}

最佳答案

std::vector,不是vector。此外,您似乎没有在任何地方定义 Array_Ref

关于c++ - 如何将 vector<T> 解析为模板函数的函数参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7311641/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com