为什么std :: future模板参数类型是引用类型?

时间:2017-06-14 20:44:59

标签: c++ c++11 c++14

我正在查看http://en.cppreference.com/w/cpp/thread/future

上的std::future文档

我不明白为什么模板参数类型(2)是reference

template< class T > class future<T&>; (2) (since C++11)

1 个答案:

答案 0 :(得分:1)

这是std::future的参考专业化,它考虑了返回值为参考类型的情况。

检查以下示例代码:

// future example
#include <iostream>       // std::cout
#include <future>         // std::async, std::future


int counter = 0;

int& increment_counter()
{
    return ++counter;
}

int main ()
{
    std::future<int&> fut = std::async(increment_counter); 

    int &counterRef = fut.get();

    std::cout << "value:" << counterRef << std::endl;

    return 0;
}