18f1d8785SKonstantin Varlamov // -*- C++ -*- 28f1d8785SKonstantin Varlamov //===----------------------------------------------------------------------===// 38f1d8785SKonstantin Varlamov // 48f1d8785SKonstantin Varlamov // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 58f1d8785SKonstantin Varlamov // See https://llvm.org/LICENSE.txt for license information. 68f1d8785SKonstantin Varlamov // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 78f1d8785SKonstantin Varlamov // 88f1d8785SKonstantin Varlamov //===----------------------------------------------------------------------===// 98f1d8785SKonstantin Varlamov 108f1d8785SKonstantin Varlamov #ifndef _LIBCPP___ITERATOR_PERMUTABLE_H 118f1d8785SKonstantin Varlamov #define _LIBCPP___ITERATOR_PERMUTABLE_H 128f1d8785SKonstantin Varlamov 138f1d8785SKonstantin Varlamov #include <__config> 148f1d8785SKonstantin Varlamov #include <__iterator/concepts.h> 158f1d8785SKonstantin Varlamov #include <__iterator/iter_swap.h> 168f1d8785SKonstantin Varlamov 178f1d8785SKonstantin Varlamov #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) 188f1d8785SKonstantin Varlamov # pragma GCC system_header 198f1d8785SKonstantin Varlamov #endif 208f1d8785SKonstantin Varlamov 218f1d8785SKonstantin Varlamov _LIBCPP_BEGIN_NAMESPACE_STD 228f1d8785SKonstantin Varlamov 234f15267dSNikolas Klauser #if _LIBCPP_STD_VER >= 20 248f1d8785SKonstantin Varlamov 258f1d8785SKonstantin Varlamov template <class _Iterator> 268f1d8785SKonstantin Varlamov concept permutable = 27*9783f28cSLouis Dionne forward_iterator<_Iterator> && indirectly_movable_storable<_Iterator, _Iterator> && 288f1d8785SKonstantin Varlamov indirectly_swappable<_Iterator, _Iterator>; 298f1d8785SKonstantin Varlamov 304f15267dSNikolas Klauser #endif // _LIBCPP_STD_VER >= 20 318f1d8785SKonstantin Varlamov 328f1d8785SKonstantin Varlamov _LIBCPP_END_NAMESPACE_STD 338f1d8785SKonstantin Varlamov 348f1d8785SKonstantin Varlamov #endif // _LIBCPP___ITERATOR_PERMUTABLE_H 35