| // -*- C++ -*- |
| //===----------------------------------------------------------------------===// |
| // |
| // 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 |
| // |
| //===----------------------------------------------------------------------===// |
| |
| module; |
| #include <chrono> |
| |
| export module std:chrono; |
| export namespace std { |
| |
| namespace chrono { |
| using std::chrono::duration; |
| using std::chrono::time_point; |
| |
| } // namespace chrono |
| |
| using std::common_type; |
| |
| namespace chrono { |
| |
| // [time.traits], customization traits |
| using std::chrono::treat_as_floating_point; |
| using std::chrono::treat_as_floating_point_v; |
| |
| using std::chrono::duration_values; |
| |
| // using std::chrono::is_clock; |
| // using std::chrono::is_clock_v; |
| |
| // [time.duration.nonmember], duration arithmetic |
| using std::chrono::operator+; |
| using std::chrono::operator-; |
| using std::chrono::operator*; |
| using std::chrono::operator/; |
| using std::chrono::operator%; |
| |
| // [time.duration.comparisons], duration comparisons |
| using std::chrono::operator==; |
| using std::chrono::operator!=; |
| using std::chrono::operator<; |
| using std::chrono::operator>; |
| using std::chrono::operator<=; |
| using std::chrono::operator>=; |
| using std::chrono::operator<=>; |
| |
| // [time.duration.cast], conversions |
| using std::chrono::ceil; |
| using std::chrono::duration_cast; |
| using std::chrono::floor; |
| using std::chrono::round; |
| |
| // [time.duration.io], duration I/O |
| #if !defined(_LIBCPP_HAS_NO_INCOMPLETE_FORMAT) && !defined(_LIBCPP_HAS_NO_LOCALIZATION) |
| using std::chrono::operator<<; |
| #endif |
| // using std::chrono::from_stream; |
| |
| // convenience typedefs |
| using std::chrono::days; |
| using std::chrono::hours; |
| using std::chrono::microseconds; |
| using std::chrono::milliseconds; |
| using std::chrono::minutes; |
| using std::chrono::months; |
| using std::chrono::nanoseconds; |
| using std::chrono::seconds; |
| using std::chrono::weeks; |
| using std::chrono::years; |
| |
| // [time.point.nonmember], time_point arithmetic |
| |
| // [time.point.comparisons], time_point comparisons |
| |
| // [time.point.cast], conversions |
| using std::chrono::time_point_cast; |
| |
| // [time.duration.alg], specialized algorithms |
| using std::chrono::abs; |
| |
| // [time.clock.system], class system_clock |
| using std::chrono::system_clock; |
| |
| using std::chrono::sys_days; |
| using std::chrono::sys_seconds; |
| using std::chrono::sys_time; |
| |
| #if 0 |
| // [time.clock.utc], class utc_clock |
| using std::chrono::utc_clock; |
| |
| using std::chrono::utc_seconds; |
| using std::chrono::utc_time; |
| |
| using std::chrono::leap_second_info; |
| |
| using std::chrono::get_leap_second_info; |
| // [time.clock.tai], class tai_clock |
| using std::chrono::tai_clock; |
| |
| using std::chrono::tai_seconds; |
| using std::chrono::tai_time; |
| |
| // [time.clock.gps], class gps_clock |
| using std::chrono::gps_clock; |
| |
| using std::chrono::gps_seconds; |
| using std::chrono::gps_time; |
| #endif |
| // [time.clock.file], type file_clock |
| using std::chrono::file_clock; |
| |
| using std::chrono::file_time; |
| |
| // [time.clock.steady], class steady_clock |
| using std::chrono::steady_clock; |
| |
| // [time.clock.hires], class high_resolution_clock |
| using std::chrono::high_resolution_clock; |
| |
| // [time.clock.local], local time |
| using std::chrono::local_days; |
| using std::chrono::local_seconds; |
| using std::chrono::local_t; |
| using std::chrono::local_time; |
| |
| // [time.clock.cast], time_point conversions |
| // using std::chrono::clock_time_conversion; |
| |
| // using std::chrono::clock_cast; |
| |
| // [time.cal.last], class last_spec |
| using std::chrono::last_spec; |
| |
| // [time.cal.day], class day |
| using std::chrono::day; |
| |
| // [time.cal.month], class month |
| using std::chrono::month; |
| |
| // [time.cal.year], class year |
| using std::chrono::year; |
| |
| // [time.cal.wd], class weekday |
| using std::chrono::weekday; |
| |
| // [time.cal.wdidx], class weekday_indexed |
| using std::chrono::weekday_indexed; |
| |
| // [time.cal.wdlast], class weekday_last |
| using std::chrono::weekday_last; |
| |
| // [time.cal.md], class month_day |
| using std::chrono::month_day; |
| |
| // [time.cal.mdlast], class month_day_last |
| using std::chrono::month_day_last; |
| |
| // [time.cal.mwd], class month_weekday |
| using std::chrono::month_weekday; |
| |
| // [time.cal.mwdlast], class month_weekday_last |
| using std::chrono::month_weekday_last; |
| |
| // [time.cal.ym], class year_month |
| using std::chrono::year_month; |
| |
| // [time.cal.ymd], class year_month_day |
| using std::chrono::year_month_day; |
| |
| // [time.cal.ymdlast], class year_month_day_last |
| using std::chrono::year_month_day_last; |
| |
| // [time.cal.ymwd], class year_month_weekday |
| using std::chrono::year_month_weekday; |
| |
| // [time.cal.ymwdlast], class year_month_weekday_last |
| using std::chrono::year_month_weekday_last; |
| |
| // [time.cal.operators], civil calendar conventional syntax operators |
| |
| // [time.hms], class template hh_mm_ss |
| using std::chrono::hh_mm_ss; |
| |
| // [time.12], 12/24 hour functions |
| using std::chrono::is_am; |
| using std::chrono::is_pm; |
| using std::chrono::make12; |
| using std::chrono::make24; |
| |
| #if 0 |
| // [time.zone.db], time zone database |
| using std::chrono::tzdb; |
| using std::chrono::tzdb_list; |
| |
| // [time.zone.db.access], time zone database access |
| using std::chrono::current_zone; |
| using std::chrono::get_tzdb; |
| using std::chrono::get_tzdb_list; |
| using std::chrono::locate_zone; |
| |
| // [time.zone.db.remote], remote time zone database support |
| using std::chrono::reload_tzdb; |
| using std::chrono::remote_version; |
| |
| // [time.zone.exception], exception classes |
| using std::chrono::ambiguous_local_time; |
| using std::chrono::nonexistent_local_time; |
| |
| // [time.zone.info], information classes |
| using std::chrono::sys_info; |
| |
| // [time.zone.timezone], class time_zone |
| using std::chrono::choose; |
| using std::chrono::time_zone; |
| |
| // [time.zone.zonedtraits], class template zoned_traits |
| using std::chrono::zoned_traits; |
| |
| // [time.zone.zonedtime], class template zoned_time |
| using std::chrono::zoned_time; |
| |
| using std::chrono::zoned_seconds; |
| |
| // [time.zone.leap], leap second support |
| using std::chrono::leap_second; |
| |
| // [time.zone.link], class time_zone_link |
| using std::chrono::time_zone_link; |
| |
| // [time.format], formatting |
| using std::chrono::local_time_format; |
| #endif |
| } // namespace chrono |
| |
| using std::formatter; |
| |
| namespace chrono { |
| // using std::chrono::parse; |
| |
| // calendrical constants |
| using std::chrono::last; |
| |
| using std::chrono::Friday; |
| using std::chrono::Monday; |
| using std::chrono::Saturday; |
| using std::chrono::Sunday; |
| using std::chrono::Thursday; |
| using std::chrono::Tuesday; |
| using std::chrono::Wednesday; |
| |
| using std::chrono::April; |
| using std::chrono::August; |
| using std::chrono::December; |
| using std::chrono::February; |
| using std::chrono::January; |
| using std::chrono::July; |
| using std::chrono::June; |
| using std::chrono::March; |
| using std::chrono::May; |
| using std::chrono::November; |
| using std::chrono::October; |
| using std::chrono::September; |
| |
| } // namespace chrono |
| |
| } // namespace std |
| export namespace std::inline literals::inline chrono_literals { |
| // [time.duration.literals], suffixes for duration literals |
| using std::literals::chrono_literals::operator""h; |
| using std::literals::chrono_literals::operator""min; |
| using std::literals::chrono_literals::operator""s; |
| using std::literals::chrono_literals::operator""ms; |
| using std::literals::chrono_literals::operator""us; |
| using std::literals::chrono_literals::operator""ns; |
| |
| // [using std::literals::chrono_literals::.cal.day.nonmembers], non-member functions |
| using std::literals::chrono_literals::operator""d; |
| |
| // [using std::literals::chrono_literals::.cal.year.nonmembers], non-member functions |
| using std::literals::chrono_literals::operator""y; |
| } // namespace std::inline literals::inline chrono_literals |