#include <di/util/swap.h>
|
template<typename T, typename U>
requires (concepts::TagInvocable<SwapFunction, T, U>) |
constexpr void | operator() (T &&a, U &&b) const |
|
template<typename T, typename U>
requires (requires(T& a, T& b) { a.swap(b); }) |
constexpr void | operator() (T &a, T &b) |
|
template<typename T, typename U>
requires (!concepts::TagInvocable<SwapFunction, T&, U&> && concepts::Movable<T> && concepts::Movable<U> && concepts::ConstructibleFrom<T, U> && concepts::ConstructibleFrom<U, T>) |
constexpr void | operator() (T &a, U &b) const |
|
◆ operator()() [1/3]
template<typename T, typename U>
requires (concepts::TagInvocable<
SwapFunction, T, U>)
void di::util::SwapFunction::operator() |
( |
T && | a, |
|
|
U && | b ) const |
|
inlineconstexpr |
◆ operator()() [2/3]
template<typename T, typename U>
requires (requires(T& a, T& b) { a.swap(b); })
void di::util::SwapFunction::operator() |
( |
T & | a, |
|
|
T & | b ) |
|
inlineconstexpr |
◆ operator()() [3/3]
template<typename T, typename U>
requires (!concepts::TagInvocable<
SwapFunction, T&, U&> && concepts::Movable<T> && concepts::Movable<U> && concepts::ConstructibleFrom<T, U> && concepts::ConstructibleFrom<U, T>)
void di::util::SwapFunction::operator() |
( |
T & | a, |
|
|
U & | b ) const |
|
inlineconstexpr |
The documentation for this struct was generated from the following file: