xref: /llvm-project/libcxx/include/__chrono/concepts.h (revision 2c1d79596fe7d0f5fc71abb76a74c8a603fc8a21)
17f5d130aSMark de Wever // -*- C++ -*-
27f5d130aSMark de Wever //===----------------------------------------------------------------------===//
37f5d130aSMark de Wever //
47f5d130aSMark de Wever // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
57f5d130aSMark de Wever // See https://llvm.org/LICENSE.txt for license information.
67f5d130aSMark de Wever // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
77f5d130aSMark de Wever //
87f5d130aSMark de Wever //===----------------------------------------------------------------------===//
97f5d130aSMark de Wever 
107f5d130aSMark de Wever #ifndef _LIBCPP___CHRONO_CONCEPTS_H
117f5d130aSMark de Wever #define _LIBCPP___CHRONO_CONCEPTS_H
127f5d130aSMark de Wever 
137f5d130aSMark de Wever #include <__chrono/hh_mm_ss.h>
14*2c1d7959SMark de Wever #include <__chrono/time_point.h>
157f5d130aSMark de Wever #include <__config>
167f5d130aSMark de Wever #include <__type_traits/is_specialization.h>
177f5d130aSMark de Wever 
187f5d130aSMark de Wever #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
197f5d130aSMark de Wever #  pragma GCC system_header
207f5d130aSMark de Wever #endif
217f5d130aSMark de Wever 
227f5d130aSMark de Wever _LIBCPP_BEGIN_NAMESPACE_STD
237f5d130aSMark de Wever 
2407efa283SNikolas Klauser #if _LIBCPP_STD_VER >= 20
257f5d130aSMark de Wever 
267f5d130aSMark de Wever template <class _Tp>
277f5d130aSMark de Wever concept __is_hh_mm_ss = __is_specialization_v<_Tp, chrono::hh_mm_ss>;
287f5d130aSMark de Wever 
29*2c1d7959SMark de Wever template <class _Tp>
30*2c1d7959SMark de Wever concept __is_time_point = __is_specialization_v<_Tp, chrono::time_point>;
31*2c1d7959SMark de Wever 
3207efa283SNikolas Klauser #endif // _LIBCPP_STD_VER >= 20
337f5d130aSMark de Wever 
347f5d130aSMark de Wever _LIBCPP_END_NAMESPACE_STD
357f5d130aSMark de Wever 
367f5d130aSMark de Wever #endif // _LIBCPP___CHRONO_CONCEPTS_H
37