diff options
| author | Andrey Khalyavin <[email protected]> | 2022-02-10 16:46:30 +0300 | 
|---|---|---|
| committer | Daniil Cherednik <[email protected]> | 2022-02-10 16:46:30 +0300 | 
| commit | 4b839d0704ee9be1dabb0310a1f03af24963637b (patch) | |
| tree | 1a2c5ffcf89eb53ecd79dbc9bc0a195c27404d0c /contrib/libs/cxxsupp/libcxx/include/__concepts/totally_ordered.h | |
| parent | f773626848a7c7456803654292e716b83d69cc12 (diff) | |
Restoring authorship annotation for Andrey Khalyavin <[email protected]>. Commit 2 of 2.
Diffstat (limited to 'contrib/libs/cxxsupp/libcxx/include/__concepts/totally_ordered.h')
| -rw-r--r-- | contrib/libs/cxxsupp/libcxx/include/__concepts/totally_ordered.h | 114 | 
1 files changed, 57 insertions, 57 deletions
diff --git a/contrib/libs/cxxsupp/libcxx/include/__concepts/totally_ordered.h b/contrib/libs/cxxsupp/libcxx/include/__concepts/totally_ordered.h index 1bd1c9f2b08..d8dd4a4944d 100644 --- a/contrib/libs/cxxsupp/libcxx/include/__concepts/totally_ordered.h +++ b/contrib/libs/cxxsupp/libcxx/include/__concepts/totally_ordered.h @@ -1,57 +1,57 @@ -//===----------------------------------------------------------------------===//  -//  -// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.  -// See https://llvm.org/LICENSE.txt for license information.  -// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception  -//  -//===----------------------------------------------------------------------===//  -  -#ifndef _LIBCPP___CONCEPTS_TOTALLY_ORDERED_H  -#define _LIBCPP___CONCEPTS_TOTALLY_ORDERED_H  -  -#include <__concepts/boolean_testable.h>  -#include <__concepts/equality_comparable.h>  -#include <__config>  -#include <type_traits>  -  -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)  -#pragma GCC system_header  -#endif  -  -_LIBCPP_BEGIN_NAMESPACE_STD  -  -#if _LIBCPP_STD_VER > 17 && !defined(_LIBCPP_HAS_NO_CONCEPTS)  -  -// [concept.totallyordered]  -  -template<class _Tp, class _Up>  -concept __partially_ordered_with =  -  requires(__make_const_lvalue_ref<_Tp> __t, __make_const_lvalue_ref<_Up> __u) {  -    { __t <  __u } -> __boolean_testable;  -    { __t >  __u } -> __boolean_testable;  -    { __t <= __u } -> __boolean_testable;  -    { __t >= __u } -> __boolean_testable;  -    { __u <  __t } -> __boolean_testable;  -    { __u >  __t } -> __boolean_testable;  -    { __u <= __t } -> __boolean_testable;  -    { __u >= __t } -> __boolean_testable;  -  };  -  -template<class _Tp>  -concept totally_ordered = equality_comparable<_Tp> && __partially_ordered_with<_Tp, _Tp>;  -  -template<class _Tp, class _Up>  -concept totally_ordered_with =  -  totally_ordered<_Tp> && totally_ordered<_Up> &&  -  equality_comparable_with<_Tp, _Up> &&  -  totally_ordered<  -    common_reference_t<  -      __make_const_lvalue_ref<_Tp>,  -      __make_const_lvalue_ref<_Up>>> &&  -  __partially_ordered_with<_Tp, _Up>;  -  -#endif // _LIBCPP_STD_VER > 17 && !defined(_LIBCPP_HAS_NO_CONCEPTS)  -  -_LIBCPP_END_NAMESPACE_STD  -  -#endif // _LIBCPP___CONCEPTS_TOTALLY_ORDERED_H  +//===----------------------------------------------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef _LIBCPP___CONCEPTS_TOTALLY_ORDERED_H +#define _LIBCPP___CONCEPTS_TOTALLY_ORDERED_H + +#include <__concepts/boolean_testable.h> +#include <__concepts/equality_comparable.h> +#include <__config> +#include <type_traits> + +#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) +#pragma GCC system_header +#endif + +_LIBCPP_BEGIN_NAMESPACE_STD + +#if _LIBCPP_STD_VER > 17 && !defined(_LIBCPP_HAS_NO_CONCEPTS) + +// [concept.totallyordered] + +template<class _Tp, class _Up> +concept __partially_ordered_with = +  requires(__make_const_lvalue_ref<_Tp> __t, __make_const_lvalue_ref<_Up> __u) { +    { __t <  __u } -> __boolean_testable; +    { __t >  __u } -> __boolean_testable; +    { __t <= __u } -> __boolean_testable; +    { __t >= __u } -> __boolean_testable; +    { __u <  __t } -> __boolean_testable; +    { __u >  __t } -> __boolean_testable; +    { __u <= __t } -> __boolean_testable; +    { __u >= __t } -> __boolean_testable; +  }; + +template<class _Tp> +concept totally_ordered = equality_comparable<_Tp> && __partially_ordered_with<_Tp, _Tp>; + +template<class _Tp, class _Up> +concept totally_ordered_with = +  totally_ordered<_Tp> && totally_ordered<_Up> && +  equality_comparable_with<_Tp, _Up> && +  totally_ordered< +    common_reference_t< +      __make_const_lvalue_ref<_Tp>, +      __make_const_lvalue_ref<_Up>>> && +  __partially_ordered_with<_Tp, _Up>; + +#endif // _LIBCPP_STD_VER > 17 && !defined(_LIBCPP_HAS_NO_CONCEPTS) + +_LIBCPP_END_NAMESPACE_STD + +#endif // _LIBCPP___CONCEPTS_TOTALLY_ORDERED_H  | 
