Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/124.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Can';t将参数传递给线程函数 >我想在C++中运行一个线程,运行函数 StutePosie();代码>该函数将九个参数作为双参数。每次我尝试创建线程时,它都会抱怨参数。我将在下面发布我的代码。我不知道为什么这行不通。提前谢谢_C++_Multithreading_Visual Studio 2012 - Fatal编程技术网

Can';t将参数传递给线程函数 >我想在C++中运行一个线程,运行函数 StutePosie();代码>该函数将九个参数作为双参数。每次我尝试创建线程时,它都会抱怨参数。我将在下面发布我的代码。我不知道为什么这行不通。提前谢谢

Can';t将参数传递给线程函数 >我想在C++中运行一个线程,运行函数 StutePosie();代码>该函数将九个参数作为双参数。每次我尝试创建线程时,它都会抱怨参数。我将在下面发布我的代码。我不知道为什么这行不通。提前谢谢,c++,multithreading,visual-studio-2012,C++,Multithreading,Visual Studio 2012,代码: std::thread t(storePose,x_position, y_position, z_position, azimuth, att_pitch, att_roll, yaw, cam_pitch, cam_roll); t.detach(); 12 IntelliSense: no instance of constructor "std::thread::thread" matches the argument list argumen

代码:

std::thread t(storePose,x_position, y_position, z_position, azimuth, att_pitch, att_roll, yaw, cam_pitch, cam_roll);
    t.detach();
    12  IntelliSense: no instance of constructor "std::thread::thread" matches the argument list
        argument types are: (<unknown-type>, double, double, double, double, double, double, double, double, double)
给出错误:

std::thread t(storePose,x_position, y_position, z_position, azimuth, att_pitch, att_roll, yaw, cam_pitch, cam_roll);
    t.detach();
    12  IntelliSense: no instance of constructor "std::thread::thread" matches the argument list
        argument types are: (<unknown-type>, double, double, double, double, double, double, double, double, double)
12 IntelliSense:构造函数“std::thread::thread”的实例与参数列表不匹配
参数类型为:(,double,double,double,double,double,double,double,double)
编辑:
对不起,我忘了提到我使用Visual Studio 2012

< P>参数太多,把它们放在一个结构中,并把这个结构交给线程函数,并处理结构中的ARG。

< P>微软Visual C++(2012)对可变模板没有支持。它们有一种叫做伪变量的东西,可以通过宏消除重载。问题是,可以传递给可变模板的参数数量有一个限制,默认情况下限制为5。您可以通过将
\u VARIADIC\u MAX
定义为一个较大的数字来调整限制(例如,对于设置为10的限制
/D\u VARIADIC\u MAX=10


请参阅和。

我将尝试此操作,但我确实尝试将参数放入向量中,只是重载了函数,但它仍然给了我一个非常类似的错误storePos函数的签名是否与给定的参数匹配?是的,函数在我的标题中声明为:
void storePose(双横、双纵、双纵、双纵、双横、双纵、双横、双横、双横、双横、双横);
它是
无效的存储姿势(矢量参数)
当我尝试这样做时,谢谢,这可能会帮助我,我应该把它放在哪里设置?对不起,我是这种编程的新手。在解决方案资源管理器中右键单击您的项目。选择属性…并导航到C/C++->预处理器,然后将add _VARIADIC_MAX=10设置为“预处理器定义”。确保对项目的所有配置(调试、发布等)都这样做非常感谢。我已经花了几个小时来处理这个问题,这对我来说有点太高了!再次非常感谢,我不知道如果我能得到一个好的答案,为什么它会被否决两次!谢谢!如果你不介意看我的新版本,我在切换到Boost线程后再次出现这个错误。'Intellisense'什么?请您至少指定您的实际IDE好吗?对不起,是Visual Studio 2012