std::chrono::operator/ (calendar)
Definido en el archivo de encabezado <chrono> | ||
year_month | ||
constexprauto operator/(conststd::chrono::year& y, conststd::chrono::month& m )noexcept | (1) | (desde C++20) |
constexprauto operator/(conststd::chrono::year& y, int m )noexcept ->std::chrono::year_month; | (2) | (desde C++20) |
month_day | ||
constexprauto operator/(conststd::chrono::month& m, conststd::chrono::day& d )noexcept | (3) | (desde C++20) |
constexprauto operator/(conststd::chrono::month& m, int d )noexcept ->std::chrono::month_day; | (4) | (desde C++20) |
constexprauto operator/(int m, conststd::chrono::day& d )noexcept ->std::chrono::month_day; | (5) | (desde C++20) |
constexprauto operator/(conststd::chrono::day& d, conststd::chrono::month& m )noexcept | (6) | (desde C++20) |
constexprauto operator/(conststd::chrono::day& d, int m )noexcept ->std::chrono::month_day; | (7) | (desde C++20) |
month_day_last | ||
constexprauto operator/(conststd::chrono::month& m, std::chrono::last_spec)noexcept | (8) | (desde C++20) |
constexprauto operator/(int m, std::chrono::last_spec)noexcept ->std::chrono::month_day_last; | (9) | (desde C++20) |
constexprauto operator/(std::chrono::last_spec, conststd::chrono::month& m )noexcept | (10) | (desde C++20) |
constexprauto operator/(std::chrono::last_spec, int m )noexcept ->std::chrono::month_day_last; | (11) | (desde C++20) |
month_weekday | ||
constexprauto operator/(conststd::chrono::month& m, conststd::chrono::weekday_indexed& wdi )noexcept | (12) | (desde C++20) |
constexprauto operator/(int m, conststd::chrono::weekday_indexed& wdi )noexcept ->std::chrono::month_weekday; | (13) | (desde C++20) |
constexprauto operator/(conststd::chrono::weekday_indexed& wdi, conststd::chrono::month& m )noexcept | (14) | (desde C++20) |
constexprauto operator/(conststd::chrono::weekday_indexed& wdi, int m )noexcept ->std::chrono::month_weekday; | (15) | (desde C++20) |
month_weekday_last | ||
constexprauto operator/(conststd::chrono::month& m, conststd::chrono::weekday_last& wdl )noexcept | (16) | (desde C++20) |
constexprauto operator/(int m, conststd::chrono::weekday_last& wdl )noexcept ->std::chrono::month_weekday_last; | (17) | (desde C++20) |
constexprauto operator/(conststd::chrono::weekday_last& wdl, conststd::chrono::month& m )noexcept | (18) | (desde C++20) |
constexprauto operator/(conststd::chrono::weekday_last& wdl, int m )noexcept ->std::chrono::month_weekday_last; | (19) | (desde C++20) |
year_month_day | ||
constexprauto operator/(conststd::chrono::year_month& ym, conststd::chrono::day& d )noexcept | (20) | (desde C++20) |
constexprauto operator/(conststd::chrono::year_month& ym, int d )noexcept ->std::chrono::year_month_day; | (21) | (desde C++20) |
constexprauto operator/(conststd::chrono::year& y, conststd::chrono::month_day& md )noexcept | (22) | (desde C++20) |
constexprauto operator/(int y, conststd::chrono::month_day& md )noexcept ->std::chrono::year_month_day; | (23) | (desde C++20) |
constexprauto operator/(conststd::chrono::month_day& md, conststd::chrono::year& y )noexcept | (24) | (desde C++20) |
constexprauto operator/(conststd::chrono::month_day& md, int y )noexcept ->std::chrono::year_month_day; | (25) | (desde C++20) |
year_month_day_last | ||
constexprauto operator/(conststd::chrono::year_month& ym, std::chrono::last_spec)noexcept | (26) | (desde C++20) |
constexprauto operator/(conststd::chrono::year& y, conststd::chrono::month_day_last& mdl )noexcept | (27) | (desde C++20) |
constexprauto operator/(int y, conststd::chrono::month_day_last& mdl )noexcept ->std::chrono::year_month_day_last; | (28) | (desde C++20) |
constexprauto operator/(conststd::chrono::month_day_last& mdl, conststd::chrono::year& y )noexcept | (29) | (desde C++20) |
constexprauto operator/(conststd::chrono::month_day_last& mdl, int y )noexcept ->std::chrono::year_month_day_last; | (30) | (desde C++20) |
year_month_weekday | ||
constexprauto operator/(conststd::chrono::year_month& ym, conststd::chrono::weekday_indexed& wdi )noexcept | (31) | (desde C++20) |
constexprauto operator/(conststd::chrono::year& y, conststd::chrono::month_weekday& mwd )noexcept | (32) | (desde C++20) |
constexprauto operator/(int y, conststd::chrono::month_weekday& mwd )noexcept ->std::chrono::year_month_weekday; | (33) | (desde C++20) |
constexprauto operator/(conststd::chrono::month_weekday& mwd, conststd::chrono::year& y )noexcept | (34) | (desde C++20) |
constexprauto operator/(conststd::chrono::month_weekday& mwd, int y )noexcept ->std::chrono::year_month_weekday; | (35) | (desde C++20) |
year_month_weekday_last | ||
constexprauto operator/(conststd::chrono::year_month& ym, conststd::chrono::weekday_last& wdl )noexcept | (36) | (desde C++20) |
constexprauto operator/(conststd::chrono::year& y, conststd::chrono::month_weekday_last& mwdl )noexcept | (37) | (desde C++20) |
constexprauto operator/(int y, conststd::chrono::month_weekday_last& mwdl )noexcept ->std::chrono::year_month_weekday_last; | (38) | (desde C++20) |
constexprauto operator/(conststd::chrono::month_weekday_last& mwdl, conststd::chrono::year& y )noexcept | (39) | (desde C++20) |
constexprauto operator/(conststd::chrono::month_weekday_last& mwdl, int y )noexcept ->std::chrono::year_month_weekday_last; | (40) | (desde C++20) |
Estas sobrecargas de operator/ proporcionan una sintaxis convencional para la creación de fechas del Calendario gregoriano.
Para la creación de una fecha completa, se acepta cualquiera de los siguientes tres órdenes:
year/month/day
month/day/year
day/month/year
.
En cada caso, day
se puede reemplazar con uno de los siguientes:
- std::chrono::last, para el último día del mes;
weekday[i]
, para el i-ésimo día de la semana del mes;weekday[std::chrono::last]
, para el último día de la semana del mes.
Se acepta un entero simple si su significado es inequívoco de los tipos de otros operandos: se permite 2005y/4/5, pero no 5/April/2005.
Los tipos de fecha parcial (year_month, month_day, etc.) se pueden crear al no aplicar el segundo operator/ en ninguno de los tres órdenes.
[editar]Valor de retorno
[editar]Ejemplo
#include <iostream>#include <chrono>usingnamespace std::chrono; int main(){std::cout<<std::boolalpha; // El estándar proporciona 2021y como una opción para std::chrono::year(2021)// El estándar proporciona 15d como una opción para std::chrono::day(15) constexprauto ym {year(2021)/8};std::cout<<(ym == year_month(year(2021), August))<<' '; constexprauto md {9/day(15)};std::cout<<(md == month_day(September, day(15)))<<' '; constexprauto mdl {October/last};std::cout<<(mdl == month_day_last(month(10)))<<' '; constexprauto mw {11/Monday[3]};std::cout<<(mw == month_weekday(November, Monday[3]))<<' '; constexprauto mwdl {December/Sunday[last]};std::cout<<(mwdl == month_weekday_last(month(12), weekday_last(Sunday)))<<' '; // Esos tres órdenes año/mes/día que la gente actualmente usa en este planeta:constexprauto ymd {year(2021)/January/day(23)}; static_assert(ymd == month{1}/23/2021); static_assert(ymd == day{23}/1/2021);std::cout<<(ymd == year_month_day(2021y, month(January), 23d))<<'\n';}
Salida:
true true true true true true