我怎么在这里滥用C承诺和期货?

这是我的代码main.cpp:

#include <string>
#include <iostream>
#include <future>

int main() {
  using namespace std;

  auto p = promise<string>();

  p.set_value("Hello, world. ");

  auto f = p.get_future();

  cout << f.get() << endl;

  return 0;
}

这是错误:

./a.out    
terminate called after throwing an instance of 'std::system_error'              
  what():     
    Unknown error -1  [1]  

15195 abort (core dumped)  ./a.out

我的编译器版本:

$clang++ --version 
clang version 7.0.0-3 (tags/RELEASE_700/final)  
Target: x86_64-pc-linux-gnu 
Thread model: posix InstalledDir: /usr/bin

我的编译命令:

$clang++ ./main.cpp && ./a.out

解决方法:

std :: promise是C线程支持的一部分,即使您以非线程方式使用它.

所以你必须使用编译器选项-pthread:

clang++ -pthread main.cpp

相关文章

最后的控制台返回空数组.控制台在ids.map函数完成之前运行va...
我正在尝试将rxJava与我已经知道的内容联系起来,特别是来自J...
config.jsconstconfig={base_url_api:"https://douban....
我正在阅读MDN中的javascript,并且遇到了这个谈论承诺并且不...
config.jsconstconfig={base_url_api:"https://douban....
这是我的代码main.cpp:#include<string>#include<...