xref: /freebsd/contrib/llvm-project/libcxx/modules/std/future.inc (revision 5f757f3ff9144b609b3c433dfd370cc6bdc191ad)
1*5f757f3fSDimitry Andric// -*- C++ -*-
2*5f757f3fSDimitry Andric//===----------------------------------------------------------------------===//
3*5f757f3fSDimitry Andric//
4*5f757f3fSDimitry Andric// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
5*5f757f3fSDimitry Andric// See https://llvm.org/LICENSE.txt for license information.
6*5f757f3fSDimitry Andric// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7*5f757f3fSDimitry Andric//
8*5f757f3fSDimitry Andric//===----------------------------------------------------------------------===//
9*5f757f3fSDimitry Andric
10*5f757f3fSDimitry Andricexport namespace std {
11*5f757f3fSDimitry Andric#ifndef _LIBCPP_HAS_NO_THREADS
12*5f757f3fSDimitry Andric  using std::future_errc;
13*5f757f3fSDimitry Andric  using std::future_status;
14*5f757f3fSDimitry Andric  using std::launch;
15*5f757f3fSDimitry Andric
16*5f757f3fSDimitry Andric  // launch is a bitmask type.
17*5f757f3fSDimitry Andric  // [bitmask.types] specified operators
18*5f757f3fSDimitry Andric  using std::operator&;
19*5f757f3fSDimitry Andric  using std::operator&=;
20*5f757f3fSDimitry Andric  using std::operator^;
21*5f757f3fSDimitry Andric  using std::operator^=;
22*5f757f3fSDimitry Andric  using std::operator|;
23*5f757f3fSDimitry Andric  using std::operator|=;
24*5f757f3fSDimitry Andric  using std::operator~;
25*5f757f3fSDimitry Andric
26*5f757f3fSDimitry Andric  // [futures.errors], error handling
27*5f757f3fSDimitry Andric  using std::is_error_code_enum;
28*5f757f3fSDimitry Andric  using std::make_error_code;
29*5f757f3fSDimitry Andric  using std::make_error_condition;
30*5f757f3fSDimitry Andric
31*5f757f3fSDimitry Andric  using std::future_category;
32*5f757f3fSDimitry Andric
33*5f757f3fSDimitry Andric  // [futures.future.error], class future_error
34*5f757f3fSDimitry Andric  using std::future_error;
35*5f757f3fSDimitry Andric
36*5f757f3fSDimitry Andric  // [futures.promise], class template promise
37*5f757f3fSDimitry Andric  using std::promise;
38*5f757f3fSDimitry Andric
39*5f757f3fSDimitry Andric  using std::swap;
40*5f757f3fSDimitry Andric
41*5f757f3fSDimitry Andric  using std::uses_allocator;
42*5f757f3fSDimitry Andric
43*5f757f3fSDimitry Andric  // [futures.unique.future], class template future
44*5f757f3fSDimitry Andric  using std::future;
45*5f757f3fSDimitry Andric
46*5f757f3fSDimitry Andric  // [futures.shared.future], class template shared_future
47*5f757f3fSDimitry Andric  using std::shared_future;
48*5f757f3fSDimitry Andric
49*5f757f3fSDimitry Andric  // [futures.task], class template packaged_task
50*5f757f3fSDimitry Andric  using std::packaged_task;
51*5f757f3fSDimitry Andric
52*5f757f3fSDimitry Andric  // [futures.async], function template async
53*5f757f3fSDimitry Andric  using std::async;
54*5f757f3fSDimitry Andric#endif // _LIBCPP_HAS_NO_THREADS
55*5f757f3fSDimitry Andric} // namespace std
56