Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/139.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
C++ 异步函数调用的参数生存期_C++_Asynchronous_Argument Passing_Lifetime - Fatal编程技术网

C++ 异步函数调用的参数生存期

C++ 异步函数调用的参数生存期,c++,asynchronous,argument-passing,lifetime,C++,Asynchronous,Argument Passing,Lifetime,美国的赫伯·萨特” 由于结构化的生命周期,被调用函数的生命周期是调用函数调用表达式的严格子集。” 这是否适用于异步函数调用 void myFunc(Bar * arg); ... auto bar = new Bar; std::thread t1(myFunc,bar); delete bar; join t1; 我假设,在这种情况下,删除bar可能会使传递到线程t1上myFunc的参数无效。1)这里,您将指针传递到t1的ctor,因此所有结构化lieftime相关语句只应用于指针,而不是它

美国的赫伯·萨特” 由于结构化的生命周期,被调用函数的生命周期是调用函数调用表达式的严格子集。” 这是否适用于异步函数调用

void myFunc(Bar * arg);
...
auto bar = new Bar;
std::thread t1(myFunc,bar);
delete bar;
join t1;
我假设,在这种情况下,删除bar可能会使传递到线程t1上myFunc的参数无效。

1)这里,您将指针传递到
t1
的ctor,因此所有结构化lieftime相关语句只应用于指针,而不是它指向的对象


2)这里没有异步函数调用——您调用的是“代码> STD::线程cTor和所有结构化的生存期声明”,而不是它的副作用,最终会调用MyFunc。

C++中没有异步函数调用。线程不是函数,而是对象。