[NFC][analyzer][docs] Crosslink MallocChecker's ownership attributes (#121939)
[llvm-project.git] / libcxx / modules / std / chrono.inc
blobdf21d1fbac58523b40720a1435afe10fb96e49c6
1 // -*- C++ -*-
2 //===----------------------------------------------------------------------===//
3 //
4 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
5 // See https://llvm.org/LICENSE.txt for license information.
6 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //
8 //===----------------------------------------------------------------------===//
10 export namespace std {
12   namespace chrono {
13     using std::chrono::duration;
14     using std::chrono::time_point;
16   } // namespace chrono
18   using std::common_type;
20   namespace chrono {
22     // [time.traits], customization traits
23     using std::chrono::treat_as_floating_point;
24     using std::chrono::treat_as_floating_point_v;
26     using std::chrono::duration_values;
28     // using std::chrono::is_clock;
29     // using std::chrono::is_clock_v;
31     // [time.duration.nonmember], duration arithmetic
32     using std::chrono::operator+;
33     using std::chrono::operator-;
34     using std::chrono::operator*;
35     using std::chrono::operator/;
36     using std::chrono::operator%;
38     // [time.duration.comparisons], duration comparisons
39     using std::chrono::operator==;
40     using std::chrono::operator<;
41     using std::chrono::operator>;
42     using std::chrono::operator<=;
43     using std::chrono::operator>=;
44     using std::chrono::operator<=>;
46     // [time.duration.cast], conversions
47     using std::chrono::ceil;
48     using std::chrono::duration_cast;
49     using std::chrono::floor;
50     using std::chrono::round;
52     // [time.duration.io], duration I/O
53 #if _LIBCPP_HAS_LOCALIZATION
54     using std::chrono::operator<<;
55 #endif
56     // using std::chrono::from_stream;
58     // convenience typedefs
59     using std::chrono::days;
60     using std::chrono::hours;
61     using std::chrono::microseconds;
62     using std::chrono::milliseconds;
63     using std::chrono::minutes;
64     using std::chrono::months;
65     using std::chrono::nanoseconds;
66     using std::chrono::seconds;
67     using std::chrono::weeks;
68     using std::chrono::years;
70     // [time.point.nonmember], time_point arithmetic
72     // [time.point.comparisons], time_point comparisons
74     // [time.point.cast], conversions
75     using std::chrono::time_point_cast;
77     // [time.duration.alg], specialized algorithms
78     using std::chrono::abs;
80     // [time.clock.system], class system_clock
81     using std::chrono::system_clock;
83     using std::chrono::sys_days;
84     using std::chrono::sys_seconds;
85     using std::chrono::sys_time;
87 #if 0
88     // [time.clock.utc], class utc_clock
89     using std::chrono::utc_clock;
91     using std::chrono::utc_seconds;
92     using std::chrono::utc_time;
94     using std::chrono::leap_second_info;
96     using std::chrono::get_leap_second_info;
97     // [time.clock.tai], class tai_clock
98     using std::chrono::tai_clock;
100     using std::chrono::tai_seconds;
101     using std::chrono::tai_time;
103     // [time.clock.gps], class gps_clock
104     using std::chrono::gps_clock;
106     using std::chrono::gps_seconds;
107     using std::chrono::gps_time;
108 #endif
109     // [time.clock.file], type file_clock
110     using std::chrono::file_clock;
112     using std::chrono::file_time;
114 #if _LIBCPP_HAS_MONOTONIC_CLOCK
115     // [time.clock.steady], class steady_clock
116     using std::chrono::steady_clock;
117 #endif
119     // [time.clock.hires], class high_resolution_clock
120     using std::chrono::high_resolution_clock;
122     // [time.clock.local], local time
123     using std::chrono::local_days;
124     using std::chrono::local_seconds;
125     using std::chrono::local_t;
126     using std::chrono::local_time;
128     // [time.clock.cast], time_point conversions
129     // using std::chrono::clock_time_conversion;
131     // using std::chrono::clock_cast;
133     // [time.cal.last], class last_spec
134     using std::chrono::last_spec;
136     // [time.cal.day], class day
137     using std::chrono::day;
139     // [time.cal.month], class month
140     using std::chrono::month;
142     // [time.cal.year], class year
143     using std::chrono::year;
145     // [time.cal.wd], class weekday
146     using std::chrono::weekday;
148     // [time.cal.wdidx], class weekday_indexed
149     using std::chrono::weekday_indexed;
151     // [time.cal.wdlast], class weekday_last
152     using std::chrono::weekday_last;
154     // [time.cal.md], class month_day
155     using std::chrono::month_day;
157     // [time.cal.mdlast], class month_day_last
158     using std::chrono::month_day_last;
160     // [time.cal.mwd], class month_weekday
161     using std::chrono::month_weekday;
163     // [time.cal.mwdlast], class month_weekday_last
164     using std::chrono::month_weekday_last;
166     // [time.cal.ym], class year_month
167     using std::chrono::year_month;
169     // [time.cal.ymd], class year_month_day
170     using std::chrono::year_month_day;
172     // [time.cal.ymdlast], class year_month_day_last
173     using std::chrono::year_month_day_last;
175     // [time.cal.ymwd], class year_month_weekday
176     using std::chrono::year_month_weekday;
178     // [time.cal.ymwdlast], class year_month_weekday_last
179     using std::chrono::year_month_weekday_last;
181     // [time.cal.operators], civil calendar conventional syntax operators
183     // [time.hms], class template hh_mm_ss
184     using std::chrono::hh_mm_ss;
186     // [time.12], 12/24 hour functions
187     using std::chrono::is_am;
188     using std::chrono::is_pm;
189     using std::chrono::make12;
190     using std::chrono::make24;
192 #ifdef _LIBCPP_ENABLE_EXPERIMENTAL
194 #  if _LIBCPP_HAS_TIME_ZONE_DATABASE && _LIBCPP_HAS_FILESYSTEM && _LIBCPP_HAS_LOCALIZATION
196     // [time.zone.db], time zone database
197     using std::chrono::tzdb;
198     using std::chrono::tzdb_list;
200     // [time.zone.db.access], time zone database access
201     using std::chrono::current_zone;
202     using std::chrono::get_tzdb;
203     using std::chrono::get_tzdb_list;
204     using std::chrono::locate_zone;
206     // [time.zone.db.remote], remote time zone database support
207     using std::chrono::reload_tzdb;
208     using std::chrono::remote_version;
210 #  endif //  _LIBCPP_HAS_TIME_ZONE_DATABASE && _LIBCPP_HAS_FILESYSTEM && _LIBCPP_HAS_LOCALIZATION
212     // [time.zone.exception], exception classes
213     using std::chrono::ambiguous_local_time;
214     using std::chrono::nonexistent_local_time;
216     // [time.zone.info], information classes
217     using std::chrono::local_info;
218     using std::chrono::sys_info;
220 #  if _LIBCPP_HAS_TIME_ZONE_DATABASE && _LIBCPP_HAS_FILESYSTEM && _LIBCPP_HAS_LOCALIZATION
222     // [time.zone.timezone], class time_zone
223     using std::chrono::choose;
224     using std::chrono::time_zone;
226     // [time.zone.zonedtraits], class template zoned_traits
227     using std::chrono::zoned_traits;
229     // [time.zone.zonedtime], class template zoned_time
230     using std::chrono::zoned_time;
232     using std::chrono::zoned_seconds;
234     // [time.zone.leap], leap second support
235     using std::chrono::leap_second;
237     // [time.zone.link], class time_zone_link
238     using std::chrono::time_zone_link;
240 #    if 0
241     // [time.format], formatting
242     using std::chrono::local_time_format;
243 #    endif
244 #  endif //  _LIBCPP_HAS_TIME_ZONE_DATABASE && _LIBCPP_HAS_FILESYSTEM && _LIBCPP_HAS_LOCALIZATION
245 #endif   // _LIBCPP_ENABLE_EXPERIMENTAL
247   } // namespace chrono
249 #if _LIBCPP_HAS_LOCALIZATION
250   using std::formatter;
251 #endif
253   namespace chrono {
254     // using std::chrono::parse;
256     // calendrical constants
257     using std::chrono::last;
259     using std::chrono::Friday;
260     using std::chrono::Monday;
261     using std::chrono::Saturday;
262     using std::chrono::Sunday;
263     using std::chrono::Thursday;
264     using std::chrono::Tuesday;
265     using std::chrono::Wednesday;
267     using std::chrono::April;
268     using std::chrono::August;
269     using std::chrono::December;
270     using std::chrono::February;
271     using std::chrono::January;
272     using std::chrono::July;
273     using std::chrono::June;
274     using std::chrono::March;
275     using std::chrono::May;
276     using std::chrono::November;
277     using std::chrono::October;
278     using std::chrono::September;
280   } // namespace chrono
282 } // namespace std
283 export namespace std::inline literals::inline chrono_literals {
284   // [time.duration.literals], suffixes for duration literals
285   using std::literals::chrono_literals::operator""h;
286   using std::literals::chrono_literals::operator""min;
287   using std::literals::chrono_literals::operator""s;
288   using std::literals::chrono_literals::operator""ms;
289   using std::literals::chrono_literals::operator""us;
290   using std::literals::chrono_literals::operator""ns;
292   // [using std::literals::chrono_literals::.cal.day.nonmembers], non-member functions
293   using std::literals::chrono_literals::operator""d;
295   // [using std::literals::chrono_literals::.cal.year.nonmembers], non-member functions
296   using std::literals::chrono_literals::operator""y;
297 } // namespace std::inline literals::inline chrono_literals