函数
<future>

std::make_error_condition (future_errc)

error_code make_error_condition (future_errc e) noexcept;
创建错误条件
future_errc 枚举值 e (属于 future_category) 创建一个 error_condition 对象。

它返回的结果与
1
error_condition(static_cast<int>(e),future_category());

error_condition 的构造函数接收 future_errc 类型参数时,会调用此重载。

参数

e
future_errc 类型的枚举值。

返回值

代表枚举值 eerror_condition 对象。

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// std::future_errc example:
#include <iostream>     // std::cerr
#include <future>       // std::promise, std::future_error, std::future_errc

int main ()
{
  std::promise<int> prom;

  try {
    prom.get_future();
    prom.get_future();   // throws std::future_error with future_already_retrieved
  }
  catch (std::future_error& e) {
    if (e.code() == std::make_error_condition(std::future_errc::future_already_retrieved))
    std::cerr << "[future already retrieved]\n";
    else std::cerr << "[unknown exception]\n";
  }

  return 0;
}

输出 (stderr)

[future already retrieved]


异常安全

无异常保证:此函数从不抛出异常。

另见