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
Creative
 Commons License
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);
 
@@ -1856,7 +1856,9 @@ 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; -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); inline namespace literals { constexpr day operator "" _d(unsigned long long d) noexcept; @@ -2106,7 +2108,9 @@ constexpr day operator "" _d(unsigned long long d) noexcept;
-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 @@

Howard E. Hinnant
-2016-05-22
+2016-05-28
Creative
 Commons License
This work is licensed @@ -1831,9 +1831,9 @@ operator!=(const zoned_time<Duration1>& x, const zoned_time<Duratio
-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);