5#ifndef INCLUDE_GUARD_ARENE_BASE_ARENE_BASE_TYPE_TRAITS_IS_SWAPPABLE_HPP_
6#define INCLUDE_GUARD_ARENE_BASE_ARENE_BASE_TYPE_TRAITS_IS_SWAPPABLE_HPP_
11#include "arene/base/constraints/substitution_succeeds.hpp"
12#include "arene/base/stdlib_choice/declval.hpp"
13#include "arene/base/stdlib_choice/is_move_assignable.hpp"
14#include "arene/base/stdlib_choice/is_move_constructible.hpp"
15#include "arene/base/stdlib_choice/is_same.hpp"
16#include "arene/base/stdlib_choice/remove_reference.hpp"
21namespace swappable_detail {
29auto swap() ->
void =
delete;
33template <
typename T,
typename U>
34using use_adl_swap =
decltype(swap(std::declval<T>(), std::declval<U>()));
46template <
typename T,
typename U>
68template <
typename T,
typename U,
bool = is_adl_swappable_with_v<T, U>>
69extern constexpr bool is_nothrow_adl_swappable_with_v =
false;
71template <
typename T,
typename U>
72extern constexpr bool is_nothrow_adl_swappable_with_v<T, U,
true> =
81template <
typename T,
bool = is_adl_swappable_v<T>>
91extern constexpr bool is_default_swappable_v =
101extern constexpr bool is_nothrow_default_swappable_v =
113template <
typename T,
class U>
114extern constexpr bool is_swappable_with_v =
124extern constexpr bool is_swappable_v = is_swappable_with_v<T&, T&>;
135template <
typename T,
typename U>
136extern constexpr bool is_nothrow_swappable_with_v =
147extern constexpr bool is_nothrow_swappable_v = is_nothrow_swappable_with_v<T&, T&>;
Definition array_exceptions_disabled.cpp:11
Copyright 2026, Toyota Motor Corporation.
Definition array_exceptions_disabled.cpp:10