【问题标题】:'future' is not a member of 'std'“未来”不是“标准”的成员
【发布时间】:2014-04-16 08:09:46
【问题描述】:

我想知道为什么我的编译器在测试以下代码时会报错:

int main(int argc, char**) {    
...
std::future<int> result( std::async([](int m, int n) { return m + n;} , 2, 4));
...
return 0;
}

它给出:错误:‘future’不是‘std’的成员

我有 gcc (Ubuntu/Linaro 4.7.3-2ubuntu1~12.04) 4.7.3。

谢谢!

【问题讨论】:

    标签: c++ gcc c++11 compiler-construction g++


    【解决方案1】:

    您需要包含 &lt;future&gt; 标头并使用编译器标志 -std=c++11 打开 C++11 支持。

    【讨论】:

    • 太惊奇了,这样的知识! :) 上船!
    • 谢谢!我正在使用 CMAKE,并且在 CMakeLists.txt 文件中添加了 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") 和 add_definitions("-std=c++11")它说:“找不到 Boost”,后来又说:“CMake 错误:无法打开检查缓存文件以进行写入。/home/cpp-driver-master/CMakeFiles/cmake.check_cache”。
    • @user3532527 不知道。这与您发布的问题完全无关。
    • 对不起,我没有提到我正在使用 CMAKE 工具!我必须按照你的建议将标志设置为 c++11,然后错误就出现了!
    • @user3532527 不过,这是一个单独的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-08
    • 1970-01-01
    • 1970-01-01
    • 2013-11-21
    • 2022-10-21
    • 2011-08-12
    • 1970-01-01
    相关资源
    最近更新 更多