|
template<class T > |
tag | swap (T &, T &) |
|
template<class T , std::size_t N> |
tag | swap (T(&a)[N], T(&b)[N]) |
|
template<class , class > |
std::false_type | can_swap (...) noexcept(false) |
|
template<class T , class U , class = decltype(swap(std::declval<T &>(), std::declval<U &>()))> |
std::true_type | can_swap (int) noexcept(noexcept(swap(std::declval< T & >(), std::declval< U & >()))) |
|
template<class , class > |
std::false_type | uses_std (...) |
|
template<class T , class U > |
std::is_same< decltype(swap(std::declval< T & >(), std::declval< U & >())), tag > | uses_std (int) |
|