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