codekingpro/portable-devtools
114k
1// -*- C++ -*-2//===----------------------------------------------------------------------===//3//4// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.5// See https://llvm.org/LICENSE.txt for license information.6// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception7//8//===----------------------------------------------------------------------===//9 10#ifndef _LIBCUDACXX___ALGORITHM_SWAP_RANGES_H11#define _LIBCUDACXX___ALGORITHM_SWAP_RANGES_H12 13#ifndef __cuda_std__14#include <__config>15#endif // __cuda_std__16 17#include "../__utility/swap.h"18 19#if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC)20# pragma GCC system_header21#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_CLANG)22# pragma clang system_header23#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_MSVC)24# pragma system_header25#endif // no system header26 27_LIBCUDACXX_BEGIN_NAMESPACE_STD28 29template <class _ForwardIterator1, class _ForwardIterator2>30inline _LIBCUDACXX_INLINE_VISIBILITY _LIBCUDACXX_CONSTEXPR_AFTER_CXX1731_ForwardIterator2 swap_ranges(_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2)32{33 for(; __first1 != __last1; ++__first1, (void) ++__first2)34 swap(*__first1, *__first2);35 return __first2;36}37 38_LIBCUDACXX_END_NAMESPACE_STD39 40#endif // _LIBCUDACXX___ALGORITHM_SWAP_RANGES_H41 