1 //===----------------------------------------------------------------------===//
3 // The LLVM Compiler Infrastructure
5 // This file is dual licensed under the MIT and the University of Illinois Open
6 // Source Licenses. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 // UNSUPPORTED: libcpp-has-no-threads
15 // future_error(error_code __ec); // exposition only
16 // explicit future_error(future_errc _Ev) : __ec_(make_error_code(_Ev)) {} // C++17
18 // const error_code& code() const throw();
23 #include "test_macros.h"
28 std::error_code ec = std::make_error_code(std::future_errc::broken_promise);
29 std::future_error f(ec);
30 assert(f.code() == ec);
33 std::error_code ec = std::make_error_code(std::future_errc::future_already_retrieved);
34 std::future_error f(ec);
35 assert(f.code() == ec);
38 std::error_code ec = std::make_error_code(std::future_errc::promise_already_satisfied);
39 std::future_error f(ec);
40 assert(f.code() == ec);
43 std::error_code ec = std::make_error_code(std::future_errc::no_state);
44 std::future_error f(ec);
45 assert(f.code() == ec);
49 std::future_error f(std::future_errc::broken_promise);
50 assert(f.code() == std::make_error_code(std::future_errc::broken_promise));
53 std::future_error f(std::future_errc::no_state);
54 assert(f.code() == std::make_error_code(std::future_errc::no_state));