Files
clang-p2996/libcxx/modules/std/chrono.cppm
Mark de Wever c40595f2ce [libc++][modules] Adds std module cppm files.
This adds the cppm files of D144994. These files by themselves will do
nothing. The goal is to reduce the size of D144994 and making it easier
to review the real changes of the patch.

Implements parts of
- P2465R3 Standard Library Modules std and std.compat

Reviewed By: ldionne, ChuanqiXu, aaronmondal, #libc

Differential Revision: https://reviews.llvm.org/D151030
2023-05-23 18:51:27 +02:00

287 lines
8.0 KiB
C++

// -*- 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