我在MyStruct
中有一个模板结构Template.h
。
我想将MyStruct
作为参数传递给另一个头文件header.h
中的函数。有点像这样:
//Template.h
template <class T1, class T2>
struct MyStruct{
int myInt;
unordered_map<pair<T1, T1>, T2>;
};
现在我想将这个结构放在我的类中的一个函数中:
//header.h
#include "template.h"
class MyClass {
public:
MyClass();
virtual ~MyClass();
void myFunction(int, MyStruct myStruct);
private:
int myValue;
};
我还想在第三个文件myFunction
中调用myCpp.cpp
,其头文件myCpp.h
有一个名为std::shared_ptr<MyClass> sharedPtr;
的共享指针
在myCpp.cpp
,我致电:
sharedPtr->myFunction(int, myStruct);
上面的函数返回myStruct
。
所以,我的问题是,如何使这项工作?我试图在header.h
中再次添加定义结构,但它显示:原型for ...与类中的任何内容都不匹配。
答案 0 :(得分:0)
使您的成员函数class MyClass {
public:
MyClass();
virtual ~MyClass();
template <class T1, class T2>
void myFunction(int, MyStruct<T1, T2> myStruct);
private:
int myValue;
};
成为模板成员函数:
pcl::PointCloud<pcl::PointXYZL>
答案 1 :(得分:0)
您忘记在MyStruct参数中添加模板参数。
请改为MyStruct<type1 type2>
myStruct。你很高兴。