Range-v3 Range algorithms, views, and actions for the Standard Library |

Classes | Namespaces | Functions | Variables
swap.hpp File Reference

## Classes
struct | ranges::v3::is_indirectly_swappable< T, U >
struct | ranges::v3::is_indirectly_swappable< T, U >
struct | ranges::v3::is_nothrow_indirectly_swappable< T, U >
struct | ranges::v3::is_nothrow_indirectly_swappable< T, U >
struct | ranges::v3::is_nothrow_swappable< T >
struct | ranges::v3::is_nothrow_swappable< T >
struct | ranges::v3::is_nothrow_swappable_with< T, U >
struct | ranges::v3::is_nothrow_swappable_with< T, U >
struct | ranges::v3::is_swappable< T >
struct | ranges::v3::is_swappable< T >
struct | ranges::v3::is_swappable_with< T, U >
struct | ranges::v3::is_swappable_with< T, U >

## Namespaces
| ranges
| unstable_remove have O(1) complexity for each element remove, unlike remove O(n) [for worst case] Each erased element overwritten (moved in) with last one.
| ranges::v3::CPOs

## Functions
template<typename T , typename U = T>
meta::if_c< std::is_move_constructible< T >::value &&std::is_assignable< T &, U >::value, T > | ranges::v3::exchange (T &t, U &&u) noexcept(std::is_nothrow_move_constructible< T >::value &&std::is_nothrow_assignable< T &, U >::value)

## Variables
constexpr adl_swap_detail::iter_swap_fn | iter_swap {}
constexpr adl_swap_detail::swap_fn | swap {}