// -*- C++ -*-
//===----------------------------------------------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
export namespace std {
// [concepts.lang], language-related concepts
// [concept.same], concept same_as
using std::same_as;
// [concept.derived], concept derived_from
using std::derived_from;
// [concept.convertible], concept convertible_to
using std::convertible_to;
// [concept.commonref], concept common_reference_with
using std::common_reference_with;
// [concept.common], concept common_with
using std::common_with;
// [concepts.arithmetic], arithmetic concepts
using std::floating_point;
using std::integral;
using std::signed_integral;
using std::unsigned_integral;
// [concept.assignable], concept assignable_from
using std::assignable_from;
// [concept.swappable], concept swappable
namespace ranges {
inline namespace __cpo {
using std::ranges::__cpo::swap;
}
} // namespace ranges
using std::swappable;
using std::swappable_with;
// [concept.destructible], concept destructible
using std::destructible;
// [concept.constructible], concept constructible_from
using std::constructible_from;
// [concept.default.init], concept default_initializable
using std::default_initializable;
// [concept.moveconstructible], concept move_constructible
using std::move_constructible;
// [concept.copyconstructible], concept copy_constructible
using std::copy_constructible;
// [concepts.compare], comparison concepts
// [concept.equalitycomparable], concept equality_comparable
using std::equality_comparable;
using std::equality_comparable_with;
// [concept.totallyordered], concept totally_ordered
using std::totally_ordered;
using std::totally_ordered_with;
// [concepts.object], object concepts
using std::copyable;
using std::movable;
using std::regular;
using std::semiregular;
// [concepts.callable], callable concepts
// [concept.invocable], concept invocable
using std::invocable;
// [concept.regularinvocable], concept regular_invocable
using std::regular_invocable;
// [concept.predicate], concept predicate
using std::predicate;
// [concept.relation], concept relation
using std::relation;
// [concept.equiv], concept equivalence_relation
using std::equivalence_relation;
// [concept.strictweakorder], concept strict_weak_order
using std::strict_weak_order;
} // namespace std