记录:由于项目需要,在函数内另起线程进行参数的传递,编译时报错。
删去线程函数参数中的结构体引用部分,直接传参编译正常。
翻阅查找资料,对于结构体的描述,结构体作为函数的参数用法未见引用传参。引用的定义是某个已经存在的变量的别名;结构体的定义是用户自定义的可用的数据类型;
#include <thread>
#include <iostream>
#include <string>
using namespace std;
struct P{
int coord;
double position;
}pos;
/*错误版本
void thread_func(P &pos){
cout<<"参数="<<pos.coord<<endl;
}
*/
void thread_func(P pos){
cout<<"参数="<<pos.coord<<endl;
}
int main(){
pos.position = 1.10;
pos.coord = 1;
thread t1(thread_func,pos);
return 0;
}
错误的将结构体传参与引用传参混用,具体错误原因为什么仍有待解决学习。