c++ - 为什么在GCC上调用std::package_task失败

标签 c++ c++11 gcc packaged-task

以下代码在 Microsoft 和 Clang 编译器上正常,但在 GCC 上失败。它抛出 std::system_error 和消息 -1。这是已知问题吗?

#include <future>

int main() 
{
    std::packaged_task<void()> task([](){});
    task();
}

GCC

Clang

Visual C++

最佳答案

您需要与-lpthread链接,否则C++运行时库无法使用线程支持。这已被报告为 GCC 错误:

我同意这里的可用性相当差。还有一个previous discussion .

关于c++ - 为什么在GCC上调用std::package_task失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45166084/

相关文章:

c++ - muQueue.front()给出const实例,即使我没有将其标记为const

C++ 在编译时检查继承

python - 如何在 Python 进程中访问由 C++ 进程创建的互斥体?

C++ 拆分字符串反馈

c - 简单的 shellcode 不起作用

c++ - 用一个字母的浮点值来比较?

c++ - 如何用仿函数向量化循环?

C++ 错误 LNK2019

c++ - 多线程中是否需要原子类型? (OS X, clang, c++11)

linux - Windows 上的 gcc 编译器