# std::experimental::ranges::Swappable

From cppreference.com
< cpp‎ | experimental‎ | ranges

Defined in header `<experimental/ranges/concepts>` |  |
template <class T> concept bool Swappable() { return requires(T&& a, T&& b) { ranges::swap(std::forward<T>(a), std::forward<T>(b)); }; } | (1) | (ranges TS)
template <class T, class U> concept bool Swappable() { return ranges::Swappable<T>() && ranges::Swappable<U>() && ranges::CommonReference<const T&, const U&>() && requires(T&& t, U&& u) { ranges::swap(std::forward<T>(t), std::forward<U>(u)); ranges::swap(std::forward<U>(u), std::forward<T>(t)); }; } | (2) | (ranges TS)

| This section is incomplete Reason: add description and extra caveats

Retrieved from "http://en.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/concepts/Swappable&oldid=90585"
Category:

- Todo with reason