【发布时间】:2023-06-29 23:21:01
【问题描述】:
我正在将一个 Windows 应用程序移植到 linx。 我正在尝试将 CArray MFC 方法移植到 linux。 要移植的CArray是
CArray<double,double> min;
我已经做了一个类似的...
#include <iostream>
#include <vector>
#include <list>
int main ()
{
struct values
{
double value1;
double value2;
};
typedef std::vector<values> CArray;
CArray min;
CArray max;
return 0;
}
但我遇到了类似的错误......
vec1.cpp: In function ‘int main()’:
vec1.cpp:12:29: error: template argument for ‘template<class _Alloc> class std::allocator’ uses local type ‘main()::values’
vec1.cpp:12:29: error: trying to instantiate ‘template<class _Alloc> class std::allocator’
vec1.cpp:12:29: error: template argument 2 is invalid
vec1.cpp:12:37: error: invalid type in declaration before ‘;’ token
如果有人从事将 CArray 移植到 linux 等价物的工作,请提供解决方案。
【问题讨论】:
-
我检查了这个链接*.com/questions/3097445/vector-of-double2-error 将这两个值放入结构中,然后在向量中使用。
-
您不需要 两个 值,MFC 中的
CArray类使用一个模板参数存储数据,另一个用于函数参数。如果您检查CArrayreference,您甚至会看到第二个模板参数默认为第一个。使用std::vector<double>就足够了。
标签: c++