Scarab  v2.4.2
Project 8 C++ Utility Library
Classes | Namespaces | Macros | Typedefs | Enumerations | Functions | Variables
date.h File Reference
#include <cassert>
#include <algorithm>
#include <cctype>
#include <chrono>
#include <climits>
#include <cmath>
#include <cstddef>
#include <cstdint>
#include <cstdlib>
#include <ctime>
#include <ios>
#include <istream>
#include <iterator>
#include <limits>
#include <locale>
#include <memory>
#include <ostream>
#include <ratio>
#include <sstream>
#include <stdexcept>
#include <string>
#include <utility>
#include <type_traits>
Include dependency graph for date.h:

Go to the source code of this file.

Classes

struct  local_t
 
struct  last_spec
 
class  day
 
class  month
 
class  year
 
class  weekday
 
class  weekday_indexed
 
class  weekday_last
 
class  year_month
 
class  month_day
 
class  month_day_last
 
class  month_weekday
 
class  month_weekday_last
 
class  year_month_day
 
class  year_month_day_last
 
class  year_month_weekday
 
class  year_month_weekday_last
 
class  save_stream< CharT, Traits >
 
struct  choose_trunc_type< T >
 
struct  static_gcd< Xp, Yp >
 
struct  static_gcd< Xp, 0 >
 
struct  static_gcd< 0, 0 >
 
struct  no_overflow< R1, R2 >
 
struct  no_overflow< R1, R2 >::mul< Xp, Yp, overflow >
 
struct  no_overflow< R1, R2 >::mul< Xp, Yp, true >
 
struct  fields< Duration >
 
struct  width< n, d, w, should_continue >
 
struct  width< n, d, w, false >
 
struct  static_pow10< exp >
 
struct  static_pow10< 0 >
 
struct  make_precision< Rep, w, in_range >
 
struct  make_precision< Rep, w, false >
 
class  decimal_format_seconds< Duration, w >
 
class  decimal_format_seconds< Duration, 0 >
 
struct  classify_duration< Duration >
 
class  time_of_day_base
 
class  time_of_day_storage< Duration, classify >
 
class  time_of_day_storage< std::chrono::duration< Rep, Period >, detail::classify::hour >
 
class  time_of_day_storage< std::chrono::duration< Rep, Period >, detail::classify::minute >
 
class  time_of_day_storage< std::chrono::duration< Rep, Period >, detail::classify::second >
 
class  time_of_day_storage< std::chrono::duration< Rep, Period >, detail::classify::subsecond >
 
class  time_of_day< Duration >
 
struct  fields< Duration >
 
struct  rs
 
struct  ru
 
struct  rld
 
struct  parse_manip< Parsable, CharT, Traits, Alloc >
 
struct  make_string< CharT, Traits >
 
struct  make_string< char >
 
struct  make_string< char, Traits >
 
struct  make_string< wchar_t >
 
struct  make_string< wchar_t, Traits >
 

Namespaces

 date
 
 date::literals
 
 date::detail
 

Macros

#define HAS_STRING_VIEW   0
 
#define ONLY_C_LOCALE   0
 
#define CONSTDATA   constexpr const
 
#define CONSTCD11   constexpr
 
#define CONSTCD14
 
#define NOEXCEPT   noexcept
 
#define HAS_VOID_T   0
 
#define HAS_CHRONO_ROUNDING   0
 

Typedefs

using days = std::chrono::duration< int, std::ratio_multiply< std::ratio< 24 >, std::chrono::hours::period > >
 
using weeks = std::chrono::duration< int, std::ratio_multiply< std::ratio< 7 >, days::period > >
 
using years = std::chrono::duration< int, std::ratio_multiply< std::ratio< 146097, 400 >, days::period > >
 
using months = std::chrono::duration< int, std::ratio_divide< years::period, std::ratio< 12 > >>
 
template<class Duration >
using sys_time = std::chrono::time_point< std::chrono::system_clock, Duration >
 
using sys_days = sys_time< days >
 
using sys_seconds = sys_time< std::chrono::seconds >
 
template<class Duration >
using local_time = std::chrono::time_point< local_t, Duration >
 
using local_seconds = local_time< std::chrono::seconds >
 
using local_days = local_time< days >
 

Enumerations

enum  { am = 1, pm }
 
enum  classify {
  not_valid, hour, minute, second,
  subsecond
}
 

Functions

constexpr year_month operator/ (const year &y, const month &m) noexcept
 
constexpr year_month operator/ (const year &y, int m) noexcept
 
constexpr month_day operator/ (const day &d, const month &m) noexcept
 
constexpr month_day operator/ (const day &d, int m) noexcept
 
constexpr month_day operator/ (const month &m, const day &d) noexcept
 
constexpr month_day operator/ (const month &m, int d) noexcept
 
constexpr month_day operator/ (int m, const day &d) noexcept
 
constexpr month_day_last operator/ (const month &m, last_spec) noexcept
 
constexpr month_day_last operator/ (int m, last_spec) noexcept
 
constexpr month_day_last operator/ (last_spec, const month &m) noexcept
 
constexpr month_day_last operator/ (last_spec, int m) noexcept
 
constexpr month_weekday operator/ (const month &m, const weekday_indexed &wdi) noexcept
 
constexpr month_weekday operator/ (int m, const weekday_indexed &wdi) noexcept
 
constexpr month_weekday operator/ (const weekday_indexed &wdi, const month &m) noexcept
 
constexpr month_weekday operator/ (const weekday_indexed &wdi, int m) noexcept
 
constexpr month_weekday_last operator/ (const month &m, const weekday_last &wdl) noexcept
 
constexpr month_weekday_last operator/ (int m, const weekday_last &wdl) noexcept
 
constexpr month_weekday_last operator/ (const weekday_last &wdl, const month &m) noexcept
 
constexpr month_weekday_last operator/ (const weekday_last &wdl, int m) noexcept
 
constexpr year_month_day operator/ (const year_month &ym, const day &d) noexcept
 
constexpr year_month_day operator/ (const year_month &ym, int d) noexcept
 
constexpr year_month_day operator/ (const year &y, const month_day &md) noexcept
 
constexpr year_month_day operator/ (int y, const month_day &md) noexcept
 
constexpr year_month_day operator/ (const month_day &md, const year &y) noexcept
 
constexpr year_month_day operator/ (const month_day &md, int y) noexcept
 
constexpr year_month_day_last operator/ (const year_month &ym, last_spec) noexcept
 
constexpr year_month_day_last operator/ (const year &y, const month_day_last &mdl) noexcept
 
constexpr year_month_day_last operator/ (int y, const month_day_last &mdl) noexcept
 
constexpr year_month_day_last operator/ (const month_day_last &mdl, const year &y) noexcept
 
constexpr year_month_day_last operator/ (const month_day_last &mdl, int y) noexcept
 
constexpr year_month_weekday operator/ (const year_month &ym, const weekday_indexed &wdi) noexcept
 
constexpr year_month_weekday operator/ (const year &y, const month_weekday &mwd) noexcept
 
constexpr year_month_weekday operator/ (int y, const month_weekday &mwd) noexcept
 
constexpr year_month_weekday operator/ (const month_weekday &mwd, const year &y) noexcept
 
constexpr year_month_weekday operator/ (const month_weekday &mwd, int y) noexcept
 
constexpr year_month_weekday_last operator/ (const year_month &ym, const weekday_last &wdl) noexcept
 
constexpr year_month_weekday_last operator/ (const year &y, const month_weekday_last &mwdl) noexcept
 
constexpr year_month_weekday_last operator/ (int y, const month_weekday_last &mwdl) noexcept
 
constexpr year_month_weekday_last operator/ (const month_weekday_last &mwdl, const year &y) noexcept
 
constexpr year_month_weekday_last operator/ (const month_weekday_last &mwdl, int y) noexcept
 
constexpr bool operator== (const day &x, const day &y) noexcept
 
constexpr bool operator!= (const day &x, const day &y) noexcept
 
constexpr bool operator< (const day &x, const day &y) noexcept
 
constexpr bool operator> (const day &x, const day &y) noexcept
 
constexpr bool operator<= (const day &x, const day &y) noexcept
 
constexpr bool operator>= (const day &x, const day &y) noexcept
 
constexpr day operator+ (const day &x, const days &y) noexcept
 
constexpr day operator+ (const days &x, const day &y) noexcept
 
constexpr day operator- (const day &x, const days &y) noexcept
 
constexpr days operator- (const day &x, const day &y) noexcept
 
template<class CharT , class Traits >
std::basic_ostream< CharT, Traits > & operator<< (std::basic_ostream< CharT, Traits > &os, const day &d)
 
constexpr bool operator== (const month &x, const month &y) noexcept
 
constexpr bool operator!= (const month &x, const month &y) noexcept
 
constexpr bool operator< (const month &x, const month &y) noexcept
 
constexpr bool operator> (const month &x, const month &y) noexcept
 
constexpr bool operator<= (const month &x, const month &y) noexcept
 
constexpr bool operator>= (const month &x, const month &y) noexcept
 
month operator+ (const month &x, const months &y) noexcept
 
month operator+ (const months &x, const month &y) noexcept
 
month operator- (const month &x, const months &y) noexcept
 
months operator- (const month &x, const month &y) noexcept
 
template<class CharT , class Traits >
std::basic_ostream< CharT, Traits > & operator<< (std::basic_ostream< CharT, Traits > &os, const month &m)
 
constexpr bool operator== (const year &x, const year &y) noexcept
 
constexpr bool operator!= (const year &x, const year &y) noexcept
 
constexpr bool operator< (const year &x, const year &y) noexcept
 
constexpr bool operator> (const year &x, const year &y) noexcept
 
constexpr bool operator<= (const year &x, const year &y) noexcept
 
constexpr bool operator>= (const year &x, const year &y) noexcept
 
constexpr year operator+ (const year &x, const years &y) noexcept
 
constexpr year operator+ (const years &x, const year &y) noexcept
 
constexpr year operator- (const year &x, const years &y) noexcept
 
constexpr years operator- (const year &x, const year &y) noexcept
 
template<class CharT , class Traits >
std::basic_ostream< CharT, Traits > & operator<< (std::basic_ostream< CharT, Traits > &os, const year &y)
 
constexpr bool operator== (const weekday &x, const weekday &y) noexcept
 
constexpr bool operator!= (const weekday &x, const weekday &y) noexcept
 
weekday operator+ (const weekday &x, const days &y) noexcept
 
weekday operator+ (const days &x, const weekday &y) noexcept
 
weekday operator- (const weekday &x, const days &y) noexcept
 
days operator- (const weekday &x, const weekday &y) noexcept
 
template<class CharT , class Traits >
std::basic_ostream< CharT, Traits > & operator<< (std::basic_ostream< CharT, Traits > &os, const weekday &wd)
 
constexpr bool operator== (const weekday_indexed &x, const weekday_indexed &y) noexcept
 
constexpr bool operator!= (const weekday_indexed &x, const weekday_indexed &y) noexcept
 
template<class CharT , class Traits >
std::basic_ostream< CharT, Traits > & operator<< (std::basic_ostream< CharT, Traits > &os, const weekday_indexed &wdi)
 
constexpr bool operator== (const weekday_last &x, const weekday_last &y) noexcept
 
constexpr bool operator!= (const weekday_last &x, const weekday_last &y) noexcept
 
template<class CharT , class Traits >
std::basic_ostream< CharT, Traits > & operator<< (std::basic_ostream< CharT, Traits > &os, const weekday_last &wdl)
 
constexpr bool operator== (const year_month &x, const year_month &y) noexcept
 
constexpr bool operator!= (const year_month &x, const year_month &y) noexcept
 
constexpr bool operator< (const year_month &x, const year_month &y) noexcept
 
constexpr bool operator> (const year_month &x, const year_month &y) noexcept
 
constexpr bool operator<= (const year_month &x, const year_month &y) noexcept
 
constexpr bool operator>= (const year_month &x, const year_month &y) noexcept
 
year_month operator+ (const year_month &ym, const months &dm) noexcept
 
year_month operator+ (const months &dm, const year_month &ym) noexcept
 
year_month operator- (const year_month &ym, const months &dm) noexcept
 
constexpr months operator- (const year_month &x, const year_month &y) noexcept
 
constexpr year_month operator+ (const year_month &ym, const years &dy) noexcept
 
constexpr year_month operator+ (const years &dy, const year_month &ym) noexcept
 
constexpr year_month operator- (const year_month &ym, const years &dy) noexcept
 
template<class CharT , class Traits >
std::basic_ostream< CharT, Traits > & operator<< (std::basic_ostream< CharT, Traits > &os, const year_month &ym)
 
constexpr bool operator== (const month_day &x, const month_day &y) noexcept
 
constexpr bool operator!= (const month_day &x, const month_day &y) noexcept
 
constexpr bool operator< (const month_day &x, const month_day &y) noexcept
 
constexpr bool operator> (const month_day &x, const month_day &y) noexcept
 
constexpr bool operator<= (const month_day &x, const month_day &y) noexcept
 
constexpr bool operator>= (const month_day &x, const month_day &y) noexcept
 
template<class CharT , class Traits >
std::basic_ostream< CharT, Traits > & operator<< (std::basic_ostream< CharT, Traits > &os, const month_day &md)
 
constexpr bool operator== (const month_day_last &x, const month_day_last &y) noexcept
 
constexpr bool operator!= (const month_day_last &x, const month_day_last &y) noexcept
 
constexpr bool operator< (const month_day_last &x, const month_day_last &y) noexcept
 
constexpr bool operator> (const month_day_last &x, const month_day_last &y) noexcept
 
constexpr bool operator<= (const month_day_last &x, const month_day_last &y) noexcept
 
constexpr bool operator>= (const month_day_last &x, const month_day_last &y) noexcept
 
template<class CharT , class Traits >
std::basic_ostream< CharT, Traits > & operator<< (std::basic_ostream< CharT, Traits > &os, const month_day_last &mdl)
 
constexpr bool operator== (const month_weekday &x, const month_weekday &y) noexcept
 
constexpr bool operator!= (const month_weekday &x, const month_weekday &y) noexcept
 
template<class CharT , class Traits >
std::basic_ostream< CharT, Traits > & operator<< (std::basic_ostream< CharT, Traits > &os, const month_weekday &mwd)
 
constexpr bool operator== (const month_weekday_last &x, const month_weekday_last &y) noexcept
 
constexpr bool operator!= (const month_weekday_last &x, const month_weekday_last &y) noexcept
 
template<class CharT , class Traits >
std::basic_ostream< CharT, Traits > & operator<< (std::basic_ostream< CharT, Traits > &os, const month_weekday_last &mwdl)
 
constexpr bool operator== (const year_month_day &x, const year_month_day &y) noexcept
 
constexpr bool operator!= (const year_month_day &x, const year_month_day &y) noexcept
 
constexpr bool operator< (const year_month_day &x, const year_month_day &y) noexcept
 
constexpr bool operator> (const year_month_day &x, const year_month_day &y) noexcept
 
constexpr bool operator<= (const year_month_day &x, const year_month_day &y) noexcept
 
constexpr bool operator>= (const year_month_day &x, const year_month_day &y) noexcept
 
year_month_day operator+ (const year_month_day &ymd, const months &dm) noexcept
 
year_month_day operator+ (const months &dm, const year_month_day &ymd) noexcept
 
year_month_day operator- (const year_month_day &ymd, const months &dm) noexcept
 
constexpr year_month_day operator+ (const year_month_day &ymd, const years &dy) noexcept
 
constexpr year_month_day operator+ (const years &dy, const year_month_day &ymd) noexcept
 
constexpr year_month_day operator- (const year_month_day &ymd, const years &dy) noexcept
 
template<class CharT , class Traits >
std::basic_ostream< CharT, Traits > & operator<< (std::basic_ostream< CharT, Traits > &os, const year_month_day &ymd)
 
constexpr bool operator== (const year_month_day_last &x, const year_month_day_last &y) noexcept
 
constexpr bool operator!= (const year_month_day_last &x, const year_month_day_last &y) noexcept
 
constexpr bool operator< (const year_month_day_last &x, const year_month_day_last &y) noexcept
 
constexpr bool operator> (const year_month_day_last &x, const year_month_day_last &y) noexcept
 
constexpr bool operator<= (const year_month_day_last &x, const year_month_day_last &y) noexcept
 
constexpr bool operator>= (const year_month_day_last &x, const year_month_day_last &y) noexcept
 
year_month_day_last operator+ (const year_month_day_last &ymdl, const months &dm) noexcept
 
year_month_day_last operator+ (const months &dm, const year_month_day_last &ymdl) noexcept
 
constexpr year_month_day_last operator+ (const year_month_day_last &ymdl, const years &dy) noexcept
 
constexpr year_month_day_last operator+ (const years &dy, const year_month_day_last &ymdl) noexcept
 
year_month_day_last operator- (const year_month_day_last &ymdl, const months &dm) noexcept
 
constexpr year_month_day_last operator- (const year_month_day_last &ymdl, const years &dy) noexcept
 
template<class CharT , class Traits >
std::basic_ostream< CharT, Traits > & operator<< (std::basic_ostream< CharT, Traits > &os, const year_month_day_last &ymdl)
 
constexpr bool operator== (const year_month_weekday &x, const year_month_weekday &y) noexcept
 
constexpr bool operator!= (const year_month_weekday &x, const year_month_weekday &y) noexcept
 
year_month_weekday operator+ (const year_month_weekday &ymwd, const months &dm) noexcept
 
year_month_weekday operator+ (const months &dm, const year_month_weekday &ymwd) noexcept
 
constexpr year_month_weekday operator+ (const year_month_weekday &ymwd, const years &dy) noexcept
 
constexpr year_month_weekday operator+ (const years &dy, const year_month_weekday &ymwd) noexcept
 
year_month_weekday operator- (const year_month_weekday &ymwd, const months &dm) noexcept
 
constexpr year_month_weekday operator- (const year_month_weekday &ymwd, const years &dy) noexcept
 
template<class CharT , class Traits >
std::basic_ostream< CharT, Traits > & operator<< (std::basic_ostream< CharT, Traits > &os, const year_month_weekday &ymwdi)
 
constexpr bool operator== (const year_month_weekday_last &x, const year_month_weekday_last &y) noexcept
 
constexpr bool operator!= (const year_month_weekday_last &x, const year_month_weekday_last &y) noexcept
 
year_month_weekday_last operator+ (const year_month_weekday_last &ymwdl, const months &dm) noexcept
 
year_month_weekday_last operator+ (const months &dm, const year_month_weekday_last &ymwdl) noexcept
 
constexpr year_month_weekday_last operator+ (const year_month_weekday_last &ymwdl, const years &dy) noexcept
 
constexpr year_month_weekday_last operator+ (const years &dy, const year_month_weekday_last &ymwdl) noexcept
 
year_month_weekday_last operator- (const year_month_weekday_last &ymwdl, const months &dm) noexcept
 
constexpr year_month_weekday_last operator- (const year_month_weekday_last &ymwdl, const years &dy) noexcept
 
template<class CharT , class Traits >
std::basic_ostream< CharT, Traits > & operator<< (std::basic_ostream< CharT, Traits > &os, const year_month_weekday_last &ymwdl)
 
constexpr date::day operator"" _d (unsigned long long d) noexcept
 
constexpr date::year operator"" _y (unsigned long long y) noexcept
 
template<class T >
constexpr std::enable_if< !std::chrono::treat_as_floating_point< T >::value, T >::type trunc (T t) noexcept
 
template<class T >
std::enable_if< std::chrono::treat_as_floating_point< T >::value, T >::type trunc (T t) noexcept
 
template<class To , class Rep , class Period >
constexpr std::enable_if< detail::no_overflow< Period, typename To::period >::value, To >::type trunc (const std::chrono::duration< Rep, Period > &d)
 
template<class To , class Rep , class Period >
constexpr std::enable_if< !detail::no_overflow< Period, typename To::period >::value, To >::type trunc (const std::chrono::duration< Rep, Period > &d)
 
template<class To , class Rep , class Period >
std::enable_if< detail::no_overflow< Period, typename To::period >::value, To >::type floor (const std::chrono::duration< Rep, Period > &d)
 
template<class To , class Rep , class Period >
std::enable_if< !detail::no_overflow< Period, typename To::period >::value, To >::type floor (const std::chrono::duration< Rep, Period > &d)
 
template<class To , class Rep , class Period >
To round (const std::chrono::duration< Rep, Period > &d)
 
template<class To , class Rep , class Period >
To ceil (const std::chrono::duration< Rep, Period > &d)
 
template<class Rep , class Period , class = typename std::enable_if < std::numeric_limits<Rep>::is_signed >::type>
constexpr std::chrono::duration< Rep, Period > abs (std::chrono::duration< Rep, Period > d)
 
template<class To , class Clock , class FromDuration >
constexpr std::chrono::time_point< Clock, To > floor (const std::chrono::time_point< Clock, FromDuration > &tp)
 
template<class To , class Clock , class FromDuration >
constexpr std::chrono::time_point< Clock, To > round (const std::chrono::time_point< Clock, FromDuration > &tp)
 
template<class To , class Clock , class FromDuration >
constexpr std::chrono::time_point< Clock, To > ceil (const std::chrono::time_point< Clock, FromDuration > &tp)
 
template<class To , class Clock , class FromDuration >
constexpr std::chrono::time_point< Clock, To > trunc (const std::chrono::time_point< Clock, FromDuration > &tp)
 
template<class CharT , class Traits , class Duration >
std::basic_ostream< CharT, Traits > & to_stream (std::basic_ostream< CharT, Traits > &os, const CharT *fmt, const fields< Duration > &fds, const std::string *abbrev=nullptr, const std::chrono::seconds *offset_sec=nullptr)
 
template<class CharT , class Traits , class Duration , class Alloc >
std::basic_istream< CharT, Traits > & from_stream (std::basic_istream< CharT, Traits > &is, const CharT *fmt, fields< Duration > &fds, std::basic_string< CharT, Traits, Alloc > *abbrev=nullptr, std::chrono::minutes *offset=nullptr)
 
template<class Rep , class Period >
constexpr std::enable_if< std::numeric_limits< Rep >::is_signed, std::chrono::duration< Rep, Period > >::type abs (std::chrono::duration< Rep, Period > d)
 
template<class Rep , class Period >
constexpr std::enable_if< !std::numeric_limits< Rep >::is_signed, std::chrono::duration< Rep, Period > >::type abs (std::chrono::duration< Rep, Period > d)
 
template<class Rep , class Period , class = typename std::enable_if <!std::chrono::treat_as_floating_point<Rep>::value>::type>
constexpr time_of_day< std::chrono::duration< Rep, Period > > make_time (const std::chrono::duration< Rep, Period > &d)
 
constexpr time_of_day< std::chrono::hours > make_time (const std::chrono::hours &h, unsigned md)
 
constexpr time_of_day< std::chrono::minutes > make_time (const std::chrono::hours &h, const std::chrono::minutes &m, unsigned md)
 
constexpr time_of_day< std::chrono::seconds > make_time (const std::chrono::hours &h, const std::chrono::minutes &m, const std::chrono::seconds &s, unsigned md)
 
template<class Rep , class Period , class = typename std::enable_if<std::ratio_less<Period, std::ratio<1>>::value>::type>
constexpr time_of_day< std::chrono::duration< Rep, Period > > make_time (const std::chrono::hours &h, const std::chrono::minutes &m, const std::chrono::seconds &s, const std::chrono::duration< Rep, Period > &sub_s, unsigned md)
 
template<class CharT , class Traits , class Duration >
std::enable_if< !std::chrono::treat_as_floating_point< typename Duration::rep >::value &&std::ratio_less< typename Duration::period, days::period >::value, std::basic_ostream< CharT, Traits > & >::type operator<< (std::basic_ostream< CharT, Traits > &os, const sys_time< Duration > &tp)
 
template<class CharT , class Traits >
std::basic_ostream< CharT, Traits > & operator<< (std::basic_ostream< CharT, Traits > &os, const sys_days &dp)
 
template<class CharT , class Traits , class Duration >
std::basic_ostream< CharT, Traits > & operator<< (std::basic_ostream< CharT, Traits > &os, const local_time< Duration > &ut)
 
template<class CharT , class Traits , class Duration >
unsigned extract_weekday (std::basic_ostream< CharT, Traits > &os, const fields< Duration > &fds)
 
template<class CharT , class Traits , class Duration >
unsigned extract_month (std::basic_ostream< CharT, Traits > &os, const fields< Duration > &fds)
 
template<class CharT , class Traits >
std::basic_ostream< CharT, Traits > & to_stream (std::basic_ostream< CharT, Traits > &os, const CharT *fmt, const year &y)
 
template<class CharT , class Traits >
std::basic_ostream< CharT, Traits > & to_stream (std::basic_ostream< CharT, Traits > &os, const CharT *fmt, const month &m)
 
template<class CharT , class Traits >
std::basic_ostream< CharT, Traits > & to_stream (std::basic_ostream< CharT, Traits > &os, const CharT *fmt, const day &d)
 
template<class CharT , class Traits >
std::basic_ostream< CharT, Traits > & to_stream (std::basic_ostream< CharT, Traits > &os, const CharT *fmt, const weekday &wd)
 
template<class CharT , class Traits >
std::basic_ostream< CharT, Traits > & to_stream (std::basic_ostream< CharT, Traits > &os, const CharT *fmt, const year_month &ym)
 
template<class CharT , class Traits >
std::basic_ostream< CharT, Traits > & to_stream (std::basic_ostream< CharT, Traits > &os, const CharT *fmt, const month_day &md)
 
template<class CharT , class Traits >
std::basic_ostream< CharT, Traits > & to_stream (std::basic_ostream< CharT, Traits > &os, const CharT *fmt, const year_month_day &ymd)
 
template<class CharT , class Traits , class Rep , class Period >
std::basic_ostream< CharT, Traits > & to_stream (std::basic_ostream< CharT, Traits > &os, const CharT *fmt, const std::chrono::duration< Rep, Period > &d)
 
template<class CharT , class Traits , class Duration >
std::basic_ostream< CharT, Traits > & to_stream (std::basic_ostream< CharT, Traits > &os, const CharT *fmt, const local_time< Duration > &tp, const std::string *abbrev=nullptr, const std::chrono::seconds *offset_sec=nullptr)
 
template<class CharT , class Traits , class Duration >
std::basic_ostream< CharT, Traits > & to_stream (std::basic_ostream< CharT, Traits > &os, const CharT *fmt, const sys_time< Duration > &tp)
 
template<class CharT , class Streamable >
auto format (const std::locale &loc, const CharT *fmt, const Streamable &tp) -> decltype(to_stream(std::declval< std::basic_ostream< CharT > &>(), fmt, tp), std::basic_string< CharT >
 
os exceptions (std::ios::failbit|std::ios::badbit)
 
os imbue (loc)
 
 to_stream (os, fmt, tp)
 
return os str ()
 
template<class CharT , class Streamable >
auto format (const CharT *fmt, const Streamable &tp) -> decltype(to_stream(std::declval< std::basic_ostream< CharT > &>(), fmt, tp), std::basic_string< CharT >
 
template<class CharT , class Traits , class Alloc , class Streamable >
auto format (const std::locale &loc, const std::basic_string< CharT, Traits, Alloc > &fmt, const Streamable &tp) -> decltype(to_stream(std::declval< std::basic_ostream< CharT, Traits > &>(), fmt.c_str(), tp), std::basic_string< CharT, Traits, Alloc >
 
 to_stream (os, fmt.c_str(), tp)
 
template<class CharT , class Traits , class Alloc , class Streamable >
auto format (const std::basic_string< CharT, Traits, Alloc > &fmt, const Streamable &tp) -> decltype(to_stream(std::declval< std::basic_ostream< CharT, Traits > &>(), fmt.c_str(), tp), std::basic_string< CharT, Traits, Alloc >
 
template<class CharT , class Traits >
bool read_char (std::basic_istream< CharT, Traits > &is, CharT fmt, std::ios::iostate &err)
 
template<class CharT , class Traits >
unsigned read_unsigned (std::basic_istream< CharT, Traits > &is, unsigned m=1, unsigned M=10)
 
template<class CharT , class Traits >
int read_signed (std::basic_istream< CharT, Traits > &is, unsigned m=1, unsigned M=10)
 
template<class CharT , class Traits >
long double read_long_double (std::basic_istream< CharT, Traits > &is, unsigned m=1, unsigned M=10)
 
template<class CharT , class Traits >
void read (std::basic_istream< CharT, Traits > &)
 
template<class CharT , class Traits , class ... Args>
void read (std::basic_istream< CharT, Traits > &is, CharT a0, Args &&...args)
 
template<class CharT , class Traits , class ... Args>
void read (std::basic_istream< CharT, Traits > &is, rs a0, Args &&...args)
 
template<class CharT , class Traits , class ... Args>
void read (std::basic_istream< CharT, Traits > &is, ru a0, Args &&...args)
 
template<class CharT , class Traits , class ... Args>
void read (std::basic_istream< CharT, Traits > &is, int a0, Args &&...args)
 
template<class CharT , class Traits , class ... Args>
void read (std::basic_istream< CharT, Traits > &is, rld a0, Args &&...args)
 
template<class CharT , class Traits , class Alloc = std::allocator<CharT>>
std::basic_istream< CharT, Traits > & from_stream (std::basic_istream< CharT, Traits > &is, const CharT *fmt, year &y, std::basic_string< CharT, Traits, Alloc > *abbrev=nullptr, std::chrono::minutes *offset=nullptr)
 
template<class CharT , class Traits , class Alloc = std::allocator<CharT>>
std::basic_istream< CharT, Traits > & from_stream (std::basic_istream< CharT, Traits > &is, const CharT *fmt, month &m, std::basic_string< CharT, Traits, Alloc > *abbrev=nullptr, std::chrono::minutes *offset=nullptr)
 
template<class CharT , class Traits , class Alloc = std::allocator<CharT>>
std::basic_istream< CharT, Traits > & from_stream (std::basic_istream< CharT, Traits > &is, const CharT *fmt, day &d, std::basic_string< CharT, Traits, Alloc > *abbrev=nullptr, std::chrono::minutes *offset=nullptr)
 
template<class CharT , class Traits , class Alloc = std::allocator<CharT>>
std::basic_istream< CharT, Traits > & from_stream (std::basic_istream< CharT, Traits > &is, const CharT *fmt, weekday &wd, std::basic_string< CharT, Traits, Alloc > *abbrev=nullptr, std::chrono::minutes *offset=nullptr)
 
template<class CharT , class Traits , class Alloc = std::allocator<CharT>>
std::basic_istream< CharT, Traits > & from_stream (std::basic_istream< CharT, Traits > &is, const CharT *fmt, year_month &ym, std::basic_string< CharT, Traits, Alloc > *abbrev=nullptr, std::chrono::minutes *offset=nullptr)
 
template<class CharT , class Traits , class Alloc = std::allocator<CharT>>
std::basic_istream< CharT, Traits > & from_stream (std::basic_istream< CharT, Traits > &is, const CharT *fmt, month_day &md, std::basic_string< CharT, Traits, Alloc > *abbrev=nullptr, std::chrono::minutes *offset=nullptr)
 
template<class CharT , class Traits , class Alloc = std::allocator<CharT>>
std::basic_istream< CharT, Traits > & from_stream (std::basic_istream< CharT, Traits > &is, const CharT *fmt, year_month_day &ymd, std::basic_string< CharT, Traits, Alloc > *abbrev=nullptr, std::chrono::minutes *offset=nullptr)
 
template<class Duration , class CharT , class Traits , class Alloc = std::allocator<CharT>>
std::basic_istream< CharT, Traits > & from_stream (std::basic_istream< CharT, Traits > &is, const CharT *fmt, sys_time< Duration > &tp, std::basic_string< CharT, Traits, Alloc > *abbrev=nullptr, std::chrono::minutes *offset=nullptr)
 
template<class Duration , class CharT , class Traits , class Alloc = std::allocator<CharT>>
std::basic_istream< CharT, Traits > & from_stream (std::basic_istream< CharT, Traits > &is, const CharT *fmt, local_time< Duration > &tp, std::basic_string< CharT, Traits, Alloc > *abbrev=nullptr, std::chrono::minutes *offset=nullptr)
 
template<class Rep , class Period , class CharT , class Traits , class Alloc = std::allocator<CharT>>
std::basic_istream< CharT, Traits > & from_stream (std::basic_istream< CharT, Traits > &is, const CharT *fmt, std::chrono::duration< Rep, Period > &d, std::basic_string< CharT, Traits, Alloc > *abbrev=nullptr, std::chrono::minutes *offset=nullptr)
 
template<class Parsable , class CharT , class Traits , class Alloc >
std::basic_istream< CharT, Traits > & operator>> (std::basic_istream< CharT, Traits > &is, const parse_manip< Parsable, CharT, Traits, Alloc > &x)
 
template<class Parsable , class CharT , class Traits , class Alloc >
auto parse (const std::basic_string< CharT, Traits, Alloc > &format, Parsable &tp) -> decltype(from_stream(std::declval< std::basic_istream< CharT, Traits > &>(), format.c_str(), tp), parse_manip< Parsable, CharT, Traits, Alloc >
 
template<class Parsable , class CharT , class Traits , class Alloc >
auto parse (const std::basic_string< CharT, Traits, Alloc > &format, Parsable &tp, std::basic_string< CharT, Traits, Alloc > &abbrev) -> decltype(from_stream(std::declval< std::basic_istream< CharT, Traits > &>(), format.c_str(), tp, &abbrev), parse_manip< Parsable, CharT, Traits, Alloc >
 
template<class Parsable , class CharT , class Traits , class Alloc >
auto parse (const std::basic_string< CharT, Traits, Alloc > &format, Parsable &tp, std::chrono::minutes &offset) -> decltype(from_stream(std::declval< std::basic_istream< CharT, Traits > &>(), format.c_str(), tp, nullptr, &offset), parse_manip< Parsable, CharT, Traits, Alloc >
 
template<class Parsable , class CharT , class Traits , class Alloc >
auto parse (const std::basic_string< CharT, Traits, Alloc > &format, Parsable &tp, std::basic_string< CharT, Traits, Alloc > &abbrev, std::chrono::minutes &offset) -> decltype(from_stream(std::declval< std::basic_istream< CharT, Traits > &>(), format.c_str(), tp, &abbrev, &offset), parse_manip< Parsable, CharT, Traits, Alloc >
 
template<class Parsable , class CharT >
auto parse (const CharT *format, Parsable &tp) -> decltype(from_stream(std::declval< std::basic_istream< CharT > &>(), format, tp), parse_manip< Parsable, CharT >
 
template<class Parsable , class CharT , class Traits , class Alloc >
auto parse (const CharT *format, Parsable &tp, std::basic_string< CharT, Traits, Alloc > &abbrev) -> decltype(from_stream(std::declval< std::basic_istream< CharT, Traits > &>(), format, tp, &abbrev), parse_manip< Parsable, CharT, Traits, Alloc >
 
template<class Parsable , class CharT >
auto parse (const CharT *format, Parsable &tp, std::chrono::minutes &offset) -> decltype(from_stream(std::declval< std::basic_istream< CharT > &>(), format, tp, nullptr, &offset), parse_manip< Parsable, CharT >
 
template<class Parsable , class CharT , class Traits , class Alloc >
auto parse (const CharT *format, Parsable &tp, std::basic_string< CharT, Traits, Alloc > &abbrev, std::chrono::minutes &offset) -> decltype(from_stream(std::declval< std::basic_istream< CharT, Traits > &>(), format, tp, &abbrev, &offset), parse_manip< Parsable, CharT, Traits, Alloc >
 
std::string to_string (std::uint64_t x)
 
template<class CharT , std::intmax_t N, std::intmax_t D>
std::enable_if< std::ratio< N, D >::type::den !=1, std::basic_string< CharT >>::type msl (std::ratio< N, D >)
 
template<class CharT , std::intmax_t N, std::intmax_t D>
std::enable_if< std::ratio< N, D >::type::den==1, std::basic_string< CharT >>::type msl (std::ratio< N, D >)
 
template<class CharT >
std::basic_string< CharT > msl (std::atto)
 
template<class CharT >
std::basic_string< CharT > msl (std::femto)
 
template<class CharT >
std::basic_string< CharT > msl (std::pico)
 
template<class CharT >
std::basic_string< CharT > msl (std::nano)
 
template<class CharT >
std::enable_if< std::is_same< CharT, char >::value, std::string >::type msl (std::micro)
 
template<class CharT >
std::enable_if< !std::is_same< CharT, char >::value, std::basic_string< CharT >>::type msl (std::micro)
 
template<class CharT >
std::basic_string< CharT > msl (std::milli)
 
template<class CharT >
std::basic_string< CharT > msl (std::centi)
 
template<class CharT >
std::basic_string< CharT > msl (std::deci)
 
template<class CharT >
std::basic_string< CharT > msl (std::deca)
 
template<class CharT >
std::basic_string< CharT > msl (std::hecto)
 
template<class CharT >
std::basic_string< CharT > msl (std::kilo)
 
template<class CharT >
std::basic_string< CharT > msl (std::mega)
 
template<class CharT >
std::basic_string< CharT > msl (std::giga)
 
template<class CharT >
std::basic_string< CharT > msl (std::tera)
 
template<class CharT >
std::basic_string< CharT > msl (std::peta)
 
template<class CharT >
std::basic_string< CharT > msl (std::exa)
 
template<class CharT , class Period >
std::basic_string< CharT > get_units (Period p)
 
template<class CharT >
std::basic_string< CharT > get_units (std::ratio< 1 >)
 
template<class CharT >
std::basic_string< CharT > get_units (std::ratio< 60 >)
 
template<class CharT >
std::basic_string< CharT > get_units (std::ratio< 3600 >)
 
template<class CharT , class Traits , class Rep , class Period >
std::basic_ostream< CharT, Traits > & operator<< (std::basic_ostream< CharT, Traits > &os, const std::chrono::duration< Rep, Period > &d)
 

Variables

constexpr const date::last_spec last {}
 
constexpr const date::month jan {1}
 
constexpr const date::month feb {2}
 
constexpr const date::month mar {3}
 
constexpr const date::month apr {4}
 
constexpr const date::month may {5}
 
constexpr const date::month jun {6}
 
constexpr const date::month jul {7}
 
constexpr const date::month aug {8}
 
constexpr const date::month sep {9}
 
constexpr const date::month oct {10}
 
constexpr const date::month nov {11}
 
constexpr const date::month dec {12}
 
constexpr const date::weekday sun {0u}
 
constexpr const date::weekday mon {1u}
 
constexpr const date::weekday tue {2u}
 
constexpr const date::weekday wed {3u}
 
constexpr const date::weekday thu {4u}
 
constexpr const date::weekday fri {5u}
 
constexpr const date::weekday sat {6u}
 

Macro Definition Documentation

◆ CONSTCD11

#define CONSTCD11   constexpr

Definition at line 122 of file date.h.

◆ CONSTCD14

#define CONSTCD14

Definition at line 123 of file date.h.

◆ CONSTDATA

#define CONSTDATA   constexpr const

Definition at line 121 of file date.h.

◆ HAS_CHRONO_ROUNDING

#define HAS_CHRONO_ROUNDING   0

Definition at line 1119 of file date.h.

◆ HAS_STRING_VIEW

#define HAS_STRING_VIEW   0

Definition at line 37 of file date.h.

◆ HAS_VOID_T

#define HAS_VOID_T   0

Definition at line 131 of file date.h.

◆ NOEXCEPT

#define NOEXCEPT   noexcept

Definition at line 124 of file date.h.

◆ ONLY_C_LOCALE

#define ONLY_C_LOCALE   0

Definition at line 87 of file date.h.