12 template<
typename T,
typename U>
14 constexpr void operator()(T&& a, U&& b)
const {
18 template<
typename T,
typename U>
19 requires(
requires(T& a, T& b) { a.swap(b); })
20 constexpr void operator()(T& a, T& b) {
24 template<
typename T,
typename U>
27 constexpr void operator()(T& a, U& b)
const {
28 auto temp =
auto(util::forward<T>(a));
29 a = util::forward<U>(b);
30 b = util::forward<T>(temp);
39template<
typename T,
typename U>
Definition operations.h:11
Definition operations.h:49
Definition tag_invoke.h:33
Definition any_storable.h:9
constexpr tag_invoke_detail::TagInvokeFn tag_invoke
Definition tag_invoke.h:22
constexpr struct di::util::SwapFunction swap
Definition any_storable.h:9
constexpr struct di::util::SwapFunction swap