1d7862497SMark de Wever // -*- C++ -*- 2d7862497SMark de Wever //===----------------------------------------------------------------------===// 3d7862497SMark de Wever // 4d7862497SMark de Wever // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 5d7862497SMark de Wever // See https://llvm.org/LICENSE.txt for license information. 6d7862497SMark de Wever // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 7d7862497SMark de Wever // 8d7862497SMark de Wever //===----------------------------------------------------------------------===// 9d7862497SMark de Wever 10d7862497SMark de Wever #ifndef _LIBCPP___CHRONO_LITERALS_H 11d7862497SMark de Wever #define _LIBCPP___CHRONO_LITERALS_H 12d7862497SMark de Wever 13d7862497SMark de Wever #include <__chrono/day.h> 14d7862497SMark de Wever #include <__chrono/year.h> 15d7862497SMark de Wever #include <__config> 16d7862497SMark de Wever 17d7862497SMark de Wever #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) 18d7862497SMark de Wever # pragma GCC system_header 19d7862497SMark de Wever #endif 20d7862497SMark de Wever 214f15267dSNikolas Klauser #if _LIBCPP_STD_VER >= 20 22d7862497SMark de Wever 23d7862497SMark de Wever _LIBCPP_BEGIN_NAMESPACE_STD 24d7862497SMark de Wever 25*9783f28cSLouis Dionne inline namespace literals { 26*9783f28cSLouis Dionne inline namespace chrono_literals { 27*9783f28cSLouis Dionne _LIBCPP_HIDE_FROM_ABI constexpr chrono::day operator""d(unsigned long long __d) noexcept { 28d7862497SMark de Wever return chrono::day(static_cast<unsigned>(__d)); 29d7862497SMark de Wever } 30d7862497SMark de Wever 31*9783f28cSLouis Dionne _LIBCPP_HIDE_FROM_ABI constexpr chrono::year operator""y(unsigned long long __y) noexcept { 32d7862497SMark de Wever return chrono::year(static_cast<int>(__y)); 33d7862497SMark de Wever } 34d7862497SMark de Wever } // namespace chrono_literals 35d7862497SMark de Wever } // namespace literals 36d7862497SMark de Wever 37d7862497SMark de Wever namespace chrono { // hoist the literals into namespace std::chrono 38d7862497SMark de Wever using namespace literals::chrono_literals; 39d7862497SMark de Wever } // namespace chrono 40d7862497SMark de Wever 41d7862497SMark de Wever _LIBCPP_END_NAMESPACE_STD 42d7862497SMark de Wever 434f15267dSNikolas Klauser #endif // _LIBCPP_STD_VER >= 20 44d7862497SMark de Wever 45d7862497SMark de Wever #endif // _LIBCPP___CHRONO_LITERALS_H 46