diff --git a/date.html b/date.html
index 49ba833..06993a7 100644
--- a/date.html
+++ b/date.html
@@ -26,7 +26,7 @@
Howard E. Hinnant
-2016-05-20
+2016-05-28
This work is licensed
@@ -1612,16 +1612,16 @@ make_time(std::chrono::hours h, std::chrono::minutes m, std::chrono::seconds s,
-template <class Duration> -std::ostream& -operator<<(std::ostream& os, const sys_time<Duration>& tp); +template <class CharT, class Traits, class Duration> +std::basic_ostream<CharT, Traits>& +operator<<(std::basic_ostream<CharT, Traits>& os, const sys_time<Duration>& tp);
-template <class Duration> -std::ostream& -operator<<(std::ostream& os, const local_time<Duration>& tp); +template <class CharT, class Traits, class Duration> +std::basic_ostream<CharT, Traits>& +operator<<(std::basic_ostream<CharT, Traits>& os, const local_time<Duration>& tp);
-std::ostream& operator<<(std::ostream& os, const day& d); +template<class CharT, class Traits> +std::basic_ostream<class CharT, class Traits>& +operator<<(std::basic_ostream<class CharT, class Traits>& os, const day& d);
@@ -2157,7 +2161,9 @@ constexpr month operator+(const months& x, const month& y) noexcept; constexpr month operator-(const month& x, const months& y) noexcept; constexpr months operator-(const month& x, const month& y) noexcept; -std::ostream& operator<<(std::ostream& os, const month& m); +template<class CharT, class Traits> +std::basic_ostream<class CharT, class Traits>& +operator<<(std::basic_ostream<class CharT, class Traits>& os, const month& m); inline namespace literals { constexpr month jan{1}; @@ -2434,7 +2440,9 @@ constexpr months operator-(const month& x, const month& y) noexcept;
-std::ostream& operator<<(std::ostream& os, const month& m); +template<class CharT, class Traits> +std::basic_ostream<class CharT, class Traits>& +operator<<(std::basic_ostream<class CharT, class Traits>& os, const month& m);
@@ -2491,7 +2499,10 @@ 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; -std::ostream& operator<<(std::ostream& os, const year& y); +template<class CharT, class Traits> +std::basic_ostream<class CharT, class Traits>& +operator<<(std::basic_ostream<class CharT, class Traits>& os, const year& y); + inline namespace literals { constexpr year operator "" _y(unsigned long long y) noexcept; } @@ -2771,7 +2782,9 @@ constexpr year operator "" _y(unsigned long long y) noexcept;
-std::ostream& operator<<(std::ostream& os, const year& y); +template<class CharT, class Traits> +std::basic_ostream<class CharT, class Traits>& +operator<<(std::basic_ostream<class CharT, class Traits>& os, const year& y);
@@ -2823,7 +2836,9 @@ constexpr weekday operator+(const days& x, const weekday& y) noexcept constexpr weekday operator-(const weekday& x, const days& y) noexcept; constexpr days operator-(const weekday& x, const weekday& y) noexcept; -std::ostream& operator<<(std::ostream& os, const weekday& wd); +template<class CharT, class Traits> +std::basic_ostream<class CharT, class Traits>& +operator<<(std::basic_ostream<class CharT, class Traits>& os, const weekday& wd); inline namespace literals { constexpr weekday sun{0}; @@ -3122,7 +3137,9 @@ constexpr days operator-(const weekday& x, const weekday& y) noexcept;
-std::ostream& operator<<(std::ostream& os, const weekday& wd); +template<class CharT, class Traits> +std::basic_ostream<class CharT, class Traits>& +operator<<(std::basic_ostream<class CharT, class Traits>& os, const weekday& wd);
@@ -3160,7 +3177,9 @@ public: constexpr bool operator==(const weekday_indexed& x, const weekday_indexed& y) noexcept; constexpr bool operator!=(const weekday_indexed& x, const weekday_indexed& y) noexcept; -std::ostream& operator<<(std::ostream& os, const weekday_indexed& wdi); +template<class CharT, class Traits> +std::basic_ostream<class CharT, class Traits>& +operator<<(std::basic_ostream<class CharT, class Traits>& os, const weekday_indexed& wdi);Overview
@@ -3255,7 +3274,9 @@ constexpr bool operator!=(const weekday_indexed& x, const weekday_indexed&am
-std::ostream& operator<<(std::ostream& os, const weekday_indexed& wdi); +template<class CharT, class Traits> +std::basic_ostream<class CharT, class Traits>& +operator<<(std::basic_ostream<class CharT, class Traits>& os, const weekday_indexed& wdi);
@@ -3290,7 +3311,9 @@ public: constexpr bool operator==(const weekday_last& x, const weekday_last& y) noexcept; constexpr bool operator!=(const weekday_last& x, const weekday_last& y) noexcept; -std::ostream& operator<<(std::ostream& os, const weekday_last& wdl); +template<class CharT, class Traits> +std::basic_ostream<class CharT, class Traits>& +operator<<(std::basic_ostream<class CharT, class Traits>& os, const weekday_last& wdl);Overview
@@ -3373,7 +3396,9 @@ constexpr bool operator!=(const weekday_last& x, const weekday_last& y)
-std::ostream& operator<<(std::ostream& os, const weekday_last& wdl); +template<class CharT, class Traits> +std::basic_ostream<class CharT, class Traits>& +operator<<(std::basic_ostream<class CharT, class Traits>& os, const weekday_last& wdl);
@@ -3414,7 +3439,9 @@ constexpr bool operator> (const month_day& x, const month_day& y) noe constexpr bool operator<=(const month_day& x, const month_day& y) noexcept; constexpr bool operator>=(const month_day& x, const month_day& y) noexcept; -std::ostream& operator<<(std::ostream& os, const month_day& md); +template<class CharT, class Traits> +std::basic_ostream<class CharT, class Traits>& +operator<<(std::basic_ostream<class CharT, class Traits>& os, const month_day& md);Overview
@@ -3542,7 +3569,9 @@ constexpr bool operator>=(const month_day& x, const month_day& y) noe
-std::ostream& operator<<(std::ostream& os, const month_day& md); +template<class CharT, class Traits> +std::basic_ostream<class CharT, class Traits>& +operator<<(std::basic_ostream<class CharT, class Traits>& os, const month_day& md);
@@ -3581,7 +3610,9 @@ constexpr bool operator> (const month_day_last& x, const month_day_last&a 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; -std::ostream& operator<<(std::ostream& os, const month_day_last& mdl); +template<class CharT, class Traits> +std::basic_ostream<class CharT, class Traits>& +operator<<(std::basic_ostream<class CharT, class Traits>& os, const month_day_last& mdl);Overview
@@ -3705,7 +3736,9 @@ constexpr bool operator>=(const month_day_last& x, const month_day_last&a
-std::ostream& operator<<(std::ostream& os, const month_day_last& mdl); +template<class CharT, class Traits> +std::basic_ostream<class CharT, class Traits>& +operator<<(std::basic_ostream<class CharT, class Traits>& os, const month_day_last& mdl);
@@ -3741,7 +3774,9 @@ public: constexpr bool operator==(const month_weekday& x, const month_weekday& y) noexcept; constexpr bool operator!=(const month_weekday& x, const month_weekday& y) noexcept; -std::ostream& operator<<(std::ostream& os, const month_weekday& mwd); +template<class CharT, class Traits> +std::basic_ostream<class CharT, class Traits>& +operator<<(std::basic_ostream<class CharT, class Traits>& os, const month_weekday& mwd);Overview
@@ -3822,7 +3857,9 @@ constexpr bool operator!=(const month_weekday& x, const month_weekday& y
-std::ostream& operator<<(std::ostream& os, const month_weekday& mwd); +template<class CharT, class Traits> +std::basic_ostream<class CharT, class Traits>& +operator<<(std::basic_ostream<class CharT, class Traits>& os, const month_weekday& mwd);
@@ -3859,7 +3896,9 @@ public: 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; -std::ostream& operator<<(std::ostream& os, const month_weekday_last& mwdl); +template<class CharT, class Traits> +std::basic_ostream<class CharT, class Traits>& +operator<<(std::basic_ostream<class CharT, class Traits>& os, const month_weekday_last& mwdl);Overview
@@ -3942,7 +3981,9 @@ constexpr bool operator!=(const month_weekday_last& x, const month_weekday_l
-std::ostream& operator<<(std::ostream& os, const month_weekday_last& mwdl); +template<class CharT, class Traits> +std::basic_ostream<class CharT, class Traits>& +operator<<(std::basic_ostream<class CharT, class Traits>& os, const month_weekday_last& mwdl);
@@ -3997,7 +4038,9 @@ constexpr year_month operator+(const year_month& ym, const years& dy) no constexpr year_month operator+(const years& dy, const year_month& ym) noexcept; constexpr year_month operator-(const year_month& ym, const years& dy) noexcept; -std::ostream& operator<<(std::ostream& os, const year_month& ym); +template<class CharT, class Traits> +std::basic_ostream<class CharT, class Traits>& +operator<<(std::basic_ostream<class CharT, class Traits>& os, const year_month& ym);Overview
@@ -4250,7 +4293,9 @@ constexpr year_month operator-(const year_month& ym, const years& dy) noexcept;
-std::ostream& operator<<(std::ostream& os, const year_month& ym); +template<class CharT, class Traits> +std::basic_ostream<class CharT, class Traits>& +operator<<(std::basic_ostream<class CharT, class Traits>& os, const year_month& ym);
@@ -4311,7 +4356,9 @@ constexpr year_month_day operator+(const years& dy, const year_month_day& constexpr 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; -std::ostream& operator<<(std::ostream& os, const year_month_day& ymd); +template<class CharT, class Traits> +std::basic_ostream<class CharT, class Traits>& +operator<<(std::basic_ostream<class CharT, class Traits>& os, const year_month_day& ymd);Overview
@@ -4665,7 +4712,9 @@ constexpr year_month_day operator-(const year_month_day& ymd, const years&am
-std::ostream& operator<<(std::ostream& os, const year_month_day& ymd); +template<class CharT, class Traits> +std::basic_ostream<class CharT, class Traits>& +operator<<(std::basic_ostream<class CharT, class Traits>& os, const year_month_day& ymd);
@@ -4724,7 +4773,9 @@ constexpr year_month_day_last operator+(const years& dy, const year_month_da constexpr 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; -std::ostream& operator<<(std::ostream& os, const year_month_day_last& ymdl); +template<class CharT, class Traits> +std::basic_ostream<class CharT, class Traits>& +operator<<(std::basic_ostream<class CharT, class Traits>& os, const year_month_day_last& ymdl);Overview
@@ -5030,7 +5081,9 @@ constexpr year_month_day_last operator-(const year_month_day_last& ymdl, con
-std::ostream& operator<<(std::ostream& os, const year_month_day_last& ymdl); +template<class CharT, class Traits> +std::basic_ostream<class CharT, class Traits>& +operator<<(std::basic_ostream<class CharT, class Traits>& os, const year_month_day_last& ymdl);
@@ -5089,7 +5142,9 @@ constexpr year_month_weekday operator+(const years& dy, const year_month_wee constexpr 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; -std::ostream& operator<<(std::ostream& os, const year_month_weekday& ymwdi); +template<class CharT, class Traits> +std::basic_ostream<class CharT, class Traits>& +operator<<(std::basic_ostream<class CharT, class Traits>& os, const year_month_weekday& ymwdi);Overview
@@ -5393,7 +5448,9 @@ constexpr year_month_weekday operator-(const year_month_weekday& ymwd, const
-std::ostream& operator<<(std::ostream& os, const year_month_weekday& ymwd); +template<class CharT, class Traits> +std::basic_ostream<class CharT, class Traits>& +operator<<(std::basic_ostream<class CharT, class Traits>& os, const year_month_weekday& ymwd);
@@ -5471,7 +5528,9 @@ constexpr year_month_weekday_last operator-(const year_month_weekday_last& ymwdl, const years& dy) noexcept; -std::ostream& operator<<(std::ostream& os, const year_month_weekday_last& ymwdl); +template<class CharT, class Traits> +std::basic_ostream<class CharT, class Traits>& +operator<<(std::basic_ostream<class CharT, class Traits>& os, const year_month_weekday_last& ymwdl);Overview
@@ -5734,7 +5793,9 @@ constexpr year_month_weekday_last operator-(const year_month_weekday_last& y
-std::ostream& operator<<(std::ostream& os, const year_month_weekday_last& ymwdl); +template<class CharT, class Traits> +std::basic_ostream<class CharT, class Traits>& +operator<<(std::basic_ostream<class CharT, class Traits>& os, const year_month_weekday_last& ymwdl);
@@ -6367,7 +6428,9 @@ Otherwise, no effects.
-std::ostream& operator<<(std::ostream& os, const time_of_day<std::chrono::hours>& t); +template<class CharT, class Traits> +std::basic_ostream<class CharT, class Traits>& +operator<<(std::basic_ostream<class CharT, class Traits>& os, const time_of_day<std::chrono::hours>& t);
@@ -6526,7 +6589,9 @@ Otherwise, no effects.
-std::ostream& operator<<(std::ostream& os, const time_of_day<std::chrono::minutes>& t); +template<class CharT, class Traits> +std::basic_ostream<class CharT, class Traits>& +operator<<(std::basic_ostream<class CharT, class Traits>& os, const time_of_day<std::chrono::minutes>& t);
@@ -6700,7 +6765,9 @@ Otherwise, no effects.
-std::ostream& operator<<(std::ostream& os, const time_of_day<std::chrono::seconds>& t); +template<class CharT, class Traits> +std::basic_ostream<class CharT, class Traits>& +operator<<(std::basic_ostream<class CharT, class Traits>& os, const time_of_day<std::chrono::seconds>& t);
@@ -6896,7 +6963,9 @@ Otherwise, no effects.
-std::ostream& operator<<(std::ostream& os, const time_of_day<std::chrono::duration<Rep, Period>>& t); +template<class CharT, class Traits, class Rep, class Period> +std::basic_ostream<class CharT, class Traits>& +operator<<(std::basic_ostream<class CharT, class Traits>& os, const time_of_day<std::chrono::duration<Rep, Period>>& t);
@@ -6997,9 +7066,9 @@ make_time(std::chrono::hours h, std::chrono::minutes m, std::chrono::seconds s,
-template <class Duration> -std::ostream& -operator<<(std::ostream& os, +template <class CharT, class Traits, class Duration> +std::basic_ostream<class CharT, class Traits>& +operator<<(std::basic_ostream<class CharT, class Traits>& os, const std::chrono::time_point<std::chrono::system_clock, Duration>& tp);diff --git a/tz.html b/tz.html index 37d3ecc..18da684 100644 --- a/tz.html +++ b/tz.html @@ -26,7 +26,7 @@
-template <class Duration> -std::ostream& -operator<<(std::ostream& os, const zoned_time<Duration>& t) +template <class CharT, class Traits, class Duration> +std::basic_ostream<class CharT, class Traits>& +operator<<(std::basic_ostream<class CharT, class Traits>& os, const zoned_time<Duration>& t)
@@ -1985,29 +1985,58 @@ make_zoned(const std::string& name, const sys_time<Duration>& st)
format
-template <class Duration> -std::string -format(const std::locale& loc, std::string format, local_time<Duration> tp); +template <class CharT, class Traits, class Duration> +std::basic_string<class CharT, class Traits> +format(const std::locale& loc, std::basic_string<class CharT, class Traits> format, + local_time<Duration> tp); -template <class Duration> -std::string -format(std::string format, local_time<Duration> tp); +template <class CharT, class Traits, class Duration> +std::basic_string<class CharT, class Traits> +format(std::basic_string<class CharT, class Traits> format, local_time<Duration> tp); -template <class Duration> -std::string -format(const std::locale& loc, std::string format, const zoned_time<Duration>& tp); +template <class CharT, class Traits, class Duration> +std::basic_string<class CharT, class Traits> +format(const std::locale& loc, std::basic_string<class CharT, class Traits> format, + const zoned_time<Duration>& tp); -template <class Duration> -std::string -format(std::string format, const zoned_time<Duration>& tp); +template <class CharT, class Traits, class Duration> +std::basic_string<class CharT, class Traits> +format(std::basic_string<class CharT, class Traits> format, const zoned_time<Duration>& tp); -template <class Duration> -std::string -format(const std::locale& loc, std::string format, sys_time<Duration> tp); +template <class CharT, class Traits, class Duration> +std::basic_string<class CharT, class Traits> +format(const std::locale& loc, std::basic_string<class CharT, class Traits> format, + sys_time<Duration> tp); -template <class Duration> -std::string -format(std::string format, sys_time<Duration> tp); +template <class CharT, class Traits, class Duration> +std::basic_string<class CharT, class Traits> +format(std::basic_string<class CharT, class Traits> format, sys_time<Duration> tp); + +// const CharT* formats + +template <class CharT, class Duration> +std::basic_string<class CharT> +format(const std::locale& loc, const CharT* format, local_time<Duration> tp); + +template <class CharT, class Duration> +std::basic_string<class CharT> +format(const CharT* format, local_time<Duration> tp); + +template <class CharT, class Duration> +std::basic_string<class CharT> +format(const std::locale& loc, const CharT* format, const zoned_time<Duration>& tp); + +template <class CharT, class Duration> +std::basic_string<class CharT> +format(const CharT* format, const zoned_time<Duration>& tp); + +template <class CharT, class Duration> +std::basic_string<class CharT> +format(const std::locale& loc, const CharT* format, sys_time<Duration> tp); + +template <class CharT, class Duration> +std::basic_string<class CharT> +format(const CharT* format, sys_time<Duration> tp);@@ -2097,53 +2126,116 @@ UTC offset (formatted as
+0000
), or one can pass in both in either-template <class Duration> +template <class CharT, class Traits, class Duration> void -parse(std::istream& is, const std::string& format, sys_time<Duration>& tp); +parse(std::basic_istream<CharT, Traits>& is, + const std::basic_string<CharT, Traits>& format, sys_time<Duration>& tp); -template <class Duration> +template <class CharT, class Traits, class Duration> void -parse(std::istream& is, const std::string& format, sys_time<Duration>& tp, - std::string& abbrev); +parse(std::basic_istream<CharT, Traits>& is, + const std::basic_string<CharT, Traits>& format, sys_time<Duration>& tp, + std::basic_string<CharT, Traits>& abbrev); -template <class Duration> +template <class CharT, class Traits, class Duration> void -parse(std::istream& is, const std::string& format, sys_time<Duration>& tp, +parse(std::basic_istream<CharT, Traits>& is, + const std::basic_string<CharT, Traits>& format, sys_time<Duration>& tp, std::chrono::minutes& offset); -template <class Duration> +template <class CharT, class Traits, class Duration> void -parse(std::istream& is, const std::string& format, sys_time<Duration>& tp, - std::string& abbrev, std::chrono::minutes& offset); +parse(std::basic_istream<CharT, Traits>& is, + const std::basic_string<CharT, Traits>& format, sys_time<Duration>& tp, + std::basic_string<CharT, Traits>& abbrev, std::chrono::minutes& offset); -template <class Duration> +template <class CharT, class Traits, class Duration> void -parse(std::istream& is, const std::string& format, sys_time<Duration>& tp, - std::chrono::minutes& offset, std::string& abbrev); +parse(std::basic_istream<CharT, Traits>& is, + const std::basic_string<CharT, Traits>& format, sys_time<Duration>& tp, + std::chrono::minutes& offset, std::basic_string<CharT, Traits>& abbrev); -template <class Duration> +template <class CharT, class Traits, class Duration> void -parse(std::istream& is, const std::string& format, local_time<Duration>& tp); +parse(std::basic_istream<CharT, Traits>& is, + const std::basic_string<CharT, Traits>& format, local_time<Duration>& tp); -template <class Duration> +template <class CharT, class Traits, class Duration> void -parse(std::istream& is, const std::string& format, local_time<Duration>& tp, - std::string& abbrev); +parse(std::basic_istream<CharT, Traits>& is, + const std::basic_string<CharT, Traits>& format, local_time<Duration>& tp, + std::basic_string<CharT, Traits>& abbrev); -template <class Duration> +template <class CharT, class Traits, class Duration> void -parse(std::istream& is, const std::string& format, local_time<Duration>& tp, +parse(std::basic_istream<CharT, Traits>& is, + const std::basic_string<CharT, Traits>& format, local_time<Duration>& tp, std::chrono::minutes& offset); -template <class Duration> +template <class CharT, class Traits, class Duration> void -parse(std::istream& is, const std::string& format, local_time<Duration>& tp, - std::string& abbrev, std::chrono::minutes& offset); +parse(std::basic_istream<CharT, Traits>& is, + const std::basic_string<CharT, Traits>& format, local_time<Duration>& tp, + std::basic_string<CharT, Traits>& abbrev, std::chrono::minutes& offset); -template <class Duration> +template <class CharT, class Traits, class Duration> void -parse(std::istream& is, const std::string& format, local_time<Duration>& tp, - std::chrono::minutes& offset, std::string& abbrev); +parse(std::basic_istream<CharT, Traits>& is, + const std::basic_string<CharT, Traits>& format, local_time<Duration>& tp, + std::chrono::minutes& offset, std::basic_string<CharT, Traits>& abbrev); + +// const CharT* formats + +template <class CharT, class Traits, class Duration> +void +parse(std::basic_istream<CharT, Traits>& is, const CharT* format, sys_time<Duration>& tp); + +template <class CharT, class Traits, class Duration> +void +parse(std::basic_istream<CharT, Traits>& is, const CharT* format, sys_time<Duration>& tp, + std::basic_string<CharT, Traits>& abbrev); + +template <class CharT, class Traits, class Duration> +void +parse(std::basic_istream<CharT, Traits>& is, const CharT* format, sys_time<Duration>& tp, + std::chrono::minutes& offset); + +template <class CharT, class Traits, class Duration> +void +parse(std::basic_istream<CharT, Traits>& is, const CharT* format, sys_time<Duration>& tp, + std::basic_string<CharT, Traits>& abbrev, std::chrono::minutes& offset); + +template <class CharT, class Traits, class Duration> +void +parse(std::basic_istream<CharT, Traits>& is, const CharT* format, sys_time<Duration>& tp, + std::chrono::minutes& offset, std::basic_string<CharT, Traits>& abbrev); + +template <class CharT, class Traits, class Duration> +void +parse(std::basic_istream<CharT, Traits>& is, const CharT* format, + local_time<Duration>& tp); + +template <class CharT, class Traits, class Duration> +void +parse(std::basic_istream<CharT, Traits>& is, const CharT* format, + local_time<Duration>& tp, std::basic_string<CharT, Traits>& abbrev); + +template <class CharT, class Traits, class Duration> +void +parse(std::basic_istream<CharT, Traits>& is, const CharT* format, + local_time<Duration>& tp, std::chrono::minutes& offset); + +template <class CharT, class Traits, class Duration> +void +parse(std::basic_istream<CharT, Traits>& is, const CharT* format, + local_time<Duration>& tp, std::basic_string<CharT, Traits>& abbrev, + std::chrono::minutes& offset); + +template <class CharT, class Traits, class Duration> +void +parse(std::basic_istream<CharT, Traits>& is, const CharT* format, + local_time<Duration>& tp, std::chrono::minutes& offset, + std::basic_string<CharT, Traits>& abbrev);