16adbc83eSChristopher Di Bella //===----------------------------------------------------------------------===// 26adbc83eSChristopher Di Bella // 36adbc83eSChristopher Di Bella // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 46adbc83eSChristopher Di Bella // See https://llvm.org/LICENSE.txt for license information. 56adbc83eSChristopher Di Bella // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 66adbc83eSChristopher Di Bella // 76adbc83eSChristopher Di Bella //===----------------------------------------------------------------------===// 86adbc83eSChristopher Di Bella 96adbc83eSChristopher Di Bella #ifndef _LIBCPP___ALGORITHM_ITER_SWAP_H 106adbc83eSChristopher Di Bella #define _LIBCPP___ALGORITHM_ITER_SWAP_H 116adbc83eSChristopher Di Bella 126adbc83eSChristopher Di Bella #include <__config> 136adbc83eSChristopher Di Bella #include <__utility/declval.h> 146adbc83eSChristopher Di Bella #include <__utility/swap.h> 156adbc83eSChristopher Di Bella 166adbc83eSChristopher Di Bella #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) 176adbc83eSChristopher Di Bella # pragma GCC system_header 186adbc83eSChristopher Di Bella #endif 196adbc83eSChristopher Di Bella 206adbc83eSChristopher Di Bella _LIBCPP_BEGIN_NAMESPACE_STD 216adbc83eSChristopher Di Bella 226adbc83eSChristopher Di Bella template <class _ForwardIterator1, class _ForwardIterator2> iter_swap(_ForwardIterator1 __a,_ForwardIterator2 __b)23*9783f28cSLouis Dionneinline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 void iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b) 246adbc83eSChristopher Di Bella // _NOEXCEPT_(_NOEXCEPT_(swap(*__a, *__b))) 2573e8e1baSNikolas Klauser _NOEXCEPT_(_NOEXCEPT_(swap(*std::declval<_ForwardIterator1>(), *std::declval<_ForwardIterator2>()))) { 266adbc83eSChristopher Di Bella swap(*__a, *__b); 276adbc83eSChristopher Di Bella } 286adbc83eSChristopher Di Bella 296adbc83eSChristopher Di Bella _LIBCPP_END_NAMESPACE_STD 306adbc83eSChristopher Di Bella 316adbc83eSChristopher Di Bella #endif // _LIBCPP___ALGORITHM_ITER_SWAP_H 32