diff --git a/tz.html b/tz.html index 6b57211..733d279 100644 --- a/tz.html +++ b/tz.html @@ -1999,7 +1999,14 @@ make_zoned(const std::string& name, const sys_time<Duration>& st) template <class CharT, class Traits, , class Rep, class Period> void to_stream(std::basic_ostream<CharT, Traits>& os, const CharT* fmt, - const std::chrono::duration<Rep, Period>& d); + const std::chrono::duration<Rep, Period>& d); + + +
+template <class CharT, class Traits, , class Rep, class Period> +void +to_stream(std::basic_ostream<CharT, Traits>& os, const CharT* fmt, + const year_month_day& ymd);
@@ -2030,6 +2037,20 @@ to_stream(std::basic_ostream<CharT, Traits>& os, const CharT* fmt, const utc_time<Duration>& tp);+
+template <class CharT, class Traits, class Duration> +void +to_stream(std::basic_ostream<CharT, Traits>& os, const CharT* fmt, + const tai_time<Duration>& tp); ++ +
+template <class CharT, class Traits, class Duration> +void +to_stream(std::basic_ostream<CharT, Traits>& os, const CharT* fmt, + const gps_time<Duration>& tp); ++
These are lower-level functions with respect to
format
. These functions @@ -2046,110 +2067,29 @@ creates temporary strings or streams to format into.
format
-template <class CharT, class Traits, class Duration> -std::basic_string<class CharT, class Traits> -format(const std::locale& loc, const std::basic_string<class CharT, class Traits>& format, - const local_time<Duration>& tp); - -template <class CharT, class Traits, class Duration> -std::basic_string<class CharT, class Traits> -format(const std::basic_string<class CharT, class Traits>& format, const local_time<Duration>& tp); - -template <class CharT, class Traits, class Duration> -std::basic_string<class CharT, class Traits> -format(const std::locale& loc, const std::basic_string<class CharT, class Traits>& format, - const zoned_time<Duration>& tp); - -template <class CharT, class Traits, class Duration> -std::basic_string<class CharT, class Traits> -format(const std::basic_string<class CharT, class Traits>& 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, const std::basic_string<class CharT, class Traits>& format, - const sys_time<Duration>& tp); - -template <class CharT, class Traits, class Duration> -std::basic_string<class CharT, class Traits> -format(const std::basic_string<class CharT, class Traits>& format, const sys_time<Duration>& tp); - -template <class CharT, class Traits, class Duration> -std::basic_string<class CharT, class Traits> -format(const std::locale& loc, const std::basic_string<class CharT, class Traits>& format, - const utc_time<Duration>& tp); - -template <class CharT, class Traits, class Duration> -std::basic_string<class CharT, class Traits> -format(const std::basic_string<class CharT, class Traits>& format, const utc_time<Duration>& tp); - -template <class CharT, class Traits, class Duration> -std::basic_string<class CharT, class Traits> -format(const std::basic_string<class CharT, class Traits>& format, const tai_time<Duration>& tp); - -template <class CharT, class Traits, class Duration> -std::basic_string<class CharT, class Traits> -format(const std::basic_string<class CharT, class Traits>& format, const gps_time<Duration>& tp); - -template <class CharT, class Traits> -std::basic_string<class CharT, class Traits> -format(const std::basic_string<class CharT, class Traits>& format, const year_month_day& ymd); - -template <class CharT, class Traits, class Rep, class Period> +template <class CharT, class Streamable> std::basic_string<CharT> -format(const std::basic_string<CharT, Traits>& fmt, const std::chrono::duration<Rep, Period>& d); +format(const std::locale& loc, const CharT* fmt, const Streamable& tp); -// const CharT* formats - -template <class CharT, class Duration> -std::basic_string<class CharT> -format(const std::locale& loc, const CharT* format, const local_time<Duration>& tp); - -template <class CharT, class Duration> -std::basic_string<class CharT> -format(const CharT* format, const 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, const sys_time<Duration>& tp); - -template <class CharT, class Duration> -std::basic_string<class CharT> -format(const CharT* format, const sys_time<Duration>& tp); - -template <class CharT, class Duration> -std::basic_string<class CharT> -format(const std::locale& loc, const CharT* format, const utc_time<Duration>& tp); - -template <class CharT, class Duration> -std::basic_string<class CharT> -format(const CharT* format, const utc_time<Duration>& tp); - -template <class CharT, class Duration> -std::basic_string<class CharT> -format(const CharT* format, const tai_time<Duration>& tp); - -template <class CharT, class Duration> -std::basic_string<class CharT> -format(const CharT* format, const gps_time<Duration>& tp); - -template <class CharT> -std::basic_string<class CharT> -format(const CharT* format, const year_month_day& ymd); - -template <class CharT, class Rep, class Period> +template <class CharT, class Streamable> std::basic_string<CharT> -format(const CharT* fmt, const std::chrono::duration<Rep, Period>& d) +format(const CharT* fmt, const Streamable& tp); + +template <class CharT, class Traits, class Streamable> +std::basic_string<CharT> +format(const std::locale& loc, const std::basic_string<CharT, Traits>& fmt, const Streamable& tp); + +template <class CharT, class Traits, class Streamable> +std::basic_string<CharT> +format(const std::basic_string<CharT, Traits>& fmt, const Streamable& tp);+Remarks: These functions do not participate in overload resolution unless +
+Streamable
has ato_stream
overload of the form described in the +previous section. +Effects: These functions create a formatted time stamp using the arguments, returning the result in a
@@ -2235,8 +2175,10 @@ For the overloads taking astd::string
.zoned_time
it is the value returned by
parse
-One can parse in a
sys_time<Duration>
, -local_time<Duration>
, or aduration<Rep, Period>
. +One can parse in ayear_month_day
,sys_time<Duration>
, +local_time<Duration>
,utc_time<Duration>
, +tai_time<Duration>
,gps_time<Duration>
, +or aduration<Rep, Period>
. Optionally, one can also pass in a reference to astd::string
in order to capture the time zone abbreviation, or one can pass in a reference to astd::chrono::minutes
to capture a time zone @@ -2244,307 +2186,56 @@ UTC offset (formatted as+0000
), or one can pass in both in either-Each of the functions below return an unspecified manipulator which can be used -to extract the desired information from a stream. +Each of the functions below return a
parse_manip
manipulator which is +specialized on the type to be parsed, and which can be used to extract the desired +information from a stream.-template <class Duration, class CharT, class Traits> -unspecified istream manipulator -parse(const std::basic_string<CharT, Traits>& format, sys_time<Duration>& tp); +template <class Parsable, class CharT, class Traits = std::char_traits<CharT>> +struct parse_manip; -template <class Duration, class CharT, class Traits> -unspecified istream manipulator -parse(const std::basic_string<CharT, Traits>& format, sys_time<Duration>& tp, +template <class Parsable, class CharT, class Traits> +typename parse_manip<Parsable, CharT, Traits>::type +parse(const std::basic_string<CharT, Traits>& format, Parsable& tp); + +template <class Parsable, class CharT, class Traits> +typename parse_manip<Parsable, CharT, Traits>::type +parse(const std::basic_string<CharT, Traits>& format, Parsable& tp, std::basic_string<CharT, Traits>& abbrev); -template <class Duration, class CharT, class Traits> -unspecified istream manipulator -parse(const std::basic_string<CharT, Traits>& format, sys_time<Duration>& tp, +template <class Parsable, class CharT, class Traits> +typename parse_manip<Parsable, CharT, Traits>::type +parse(const std::basic_string<CharT, Traits>& format, Parsable& tp, std::chrono::minutes& offset); -template <class Duration, class CharT, class Traits> -unspecified istream manipulator -parse(const std::basic_string<CharT, Traits>& format, sys_time<Duration>& tp, +template <class Parsable, class CharT, class Traits> +typename parse_manip<Parsable, CharT, Traits>::type +parse(const std::basic_string<CharT, Traits>& format, Parsable& tp, std::basic_string<CharT, Traits>& abbrev, std::chrono::minutes& offset); -template <class Duration, class CharT, class Traits> -unspecified istream manipulator -parse(const std::basic_string<CharT, Traits>& format, sys_time<Duration>& tp, - std::chrono::minutes& offset, std::basic_string<CharT, Traits>& abbrev); - -template <class Duration, class CharT, class Traits> -unspecified istream manipulator -parse(const std::basic_string<CharT, Traits>& format, local_time<Duration>& tp); - -template <class Duration, class CharT, class Traits> -unspecified istream manipulator -parse(const std::basic_string<CharT, Traits>& format, local_time<Duration>& tp, - std::basic_string<CharT, Traits>& abbrev); - -template <class Duration, class CharT, class Traits> -unspecified istream manipulator -parse(const std::basic_string<CharT, Traits>& format, local_time<Duration>& tp, - std::chrono::minutes& offset); - -template <class Duration, class CharT, class Traits> -unspecified istream manipulator -parse(const std::basic_string<CharT, Traits>& format, local_time<Duration>& tp, - std::basic_string<CharT, Traits>& abbrev, std::chrono::minutes& offset); - -template <class Duration, class CharT, class Traits> -unspecified istream manipulator -parse(const std::basic_string<CharT, Traits>& format, local_time<Duration>& tp, - std::chrono::minutes& offset, std::basic_string<CharT, Traits>& abbrev); - -template <class Duration, class CharT, class Traits> -unspecified istream manipulator -parse(const std::basic_string<CharT, Traits>& format, utc_time<Duration>& tp); - -template <class Duration, class CharT, class Traits> -unspecified istream manipulator -parse(const std::basic_string<CharT, Traits>& format, utc_time<Duration>& tp, - std::basic_string<CharT, Traits>& abbrev); - -template <class Duration, class CharT, class Traits> -unspecified istream manipulator -parse(const std::basic_string<CharT, Traits>& format, utc_time<Duration>& tp, - std::chrono::minutes& offset); - -template <class Duration, class CharT, class Traits> -unspecified istream manipulator -parse(const std::basic_string<CharT, Traits>& format, utc_time<Duration>& tp, - std::basic_string<CharT, Traits>& abbrev, std::chrono::minutes& offset); - -template <class Duration, class CharT, class Traits> -unspecified istream manipulator -parse(const std::basic_string<CharT, Traits>& format, utc_time<Duration>& tp, - std::chrono::minutes& offset, std::basic_string<CharT, Traits>& abbrev); - -template <class Duration, class CharT, class Traits> -unspecified istream manipulator -parse(const std::basic_string<CharT, Traits>& format, tai_time<Duration>& tp); - -template <class Duration, class CharT, class Traits> -unspecified istream manipulator -parse(const std::basic_string<CharT, Traits>& format, tai_time<Duration>& tp, - std::basic_string<CharT, Traits>& abbrev); - -template <class Duration, class CharT, class Traits> -unspecified istream manipulator -parse(const std::basic_string<CharT, Traits>& format, tai_time<Duration>& tp, - std::chrono::minutes& offset); - -template <class Duration, class CharT, class Traits> -unspecified istream manipulator -parse(const std::basic_string<CharT, Traits>& format, tai_time<Duration>& tp, - std::basic_string<CharT, Traits>& abbrev, std::chrono::minutes& offset); - -template <class Duration, class CharT, class Traits> -unspecified istream manipulator -parse(const std::basic_string<CharT, Traits>& format, tai_time<Duration>& tp, - std::chrono::minutes& offset, std::basic_string<CharT, Traits>& abbrev); - -template <class Duration, class CharT, class Traits> -unspecified istream manipulator -parse(const std::basic_string<CharT, Traits>& format, gps_time<Duration>& tp); - -template <class Duration, class CharT, class Traits> -unspecified istream manipulator -parse(const std::basic_string<CharT, Traits>& format, gps_time<Duration>& tp, - std::basic_string<CharT, Traits>& abbrev); - -template <class Duration, class CharT, class Traits> -unspecified istream manipulator -parse(const std::basic_string<CharT, Traits>& format, gps_time<Duration>& tp, - std::chrono::minutes& offset); - -template <class Duration, class CharT, class Traits> -unspecified istream manipulator -parse(const std::basic_string<CharT, Traits>& format, gps_time<Duration>& tp, - std::basic_string<CharT, Traits>& abbrev, std::chrono::minutes& offset); - -template <class Duration, class CharT, class Traits> -unspecified istream manipulator -parse(const std::basic_string<CharT, Traits>& format, gps_time<Duration>& tp, - std::chrono::minutes& offset, std::basic_string<CharT, Traits>& abbrev); - -template <class CharT, class Traits> -unspecified istream manipulator -parse(const std::basic_string<CharT, Traits>& format, year_month_day& ymd); - -template <class CharT, class Traits> -unspecified istream manipulator -parse(const std::basic_string<CharT, Traits>& format, year_month_day& ymd, - std::basic_string<CharT, Traits>& abbrev); - -template <class CharT, class Traits> -unspecified istream manipulator -parse(const std::basic_string<CharT, Traits>& format, year_month_day& ymd, - std::chrono::minutes& offset); - -template <class CharT, class Traits> -unspecified istream manipulator -parse(const std::basic_string<CharT, Traits>& format, year_month_day& ymd, - std::basic_string<CharT, Traits>& abbrev, std::chrono::minutes& offset); - -template <class CharT, class Traits> -unspecified istream manipulator -parse(const std::basic_string<CharT, Traits>& format, year_month_day& ymd, - std::chrono::minutes& offset, std::basic_string<CharT, Traits>& abbrev); - -template <class Rep, class Period, class CharT, class Traits> -unspecified istream manipulator -parse(const std::basic_string<CharT, Traits>& format, - std::chrono::duration<Rep, Period>& d); - // const CharT* formats -template <class Duration, class CharT> -unspecified istream manipulator -parse(const CharT* format, sys_time<Duration>& tp); +template <class Parsable, class CharT> +typename parse_manip<Parsable, CharT>::type +parse(const CharT* format, Parsable& tp); -template <class Duration, class CharT, class Traits> -unspecified istream manipulator -parse(const CharT* format, sys_time<Duration>& tp, - std::basic_string<CharT, Traits>& abbrev); +template <class Parsable, class CharT, class Traits> +typename parse_manip<Parsable, CharT>::type +parse(const CharT* format, Parsable& tp, std::basic_string<CharT, Traits>& abbrev); -template <class Duration, class CharT> -unspecified istream manipulator -parse(const CharT* format, sys_time<Duration>& tp, std::chrono::minutes& offset); +template <class Parsable, class CharT> +typename parse_manip<Parsable, CharT>::type +parse(const CharT* format, Parsable& tp, std::chrono::minutes& offset); -template <class Duration, class CharT, class Traits> -unspecified istream manipulator -parse(const CharT* format, sys_time<Duration>& tp, +template <class Parsable, class CharT, class Traits> +typename parse_manip<Parsable, CharT>::type +parse(const CharT* format, Parsable& tp, std::basic_string<CharT, Traits>& abbrev, std::chrono::minutes& offset); - -template <class Duration, class CharT, class Traits> -unspecified istream manipulator -parse(const CharT* format, sys_time<Duration>& tp, - std::chrono::minutes& offset, std::basic_string<CharT, Traits>& abbrev); - -template <class Duration, class CharT> -unspecified istream manipulator -parse(const CharT* format, local_time<Duration>& tp); - -template <class Duration, class CharT, class Traits> -unspecified istream manipulator -parse(const CharT* format, local_time<Duration>& tp, - std::basic_string<CharT, Traits>& abbrev); - -template <class Duration, class CharT> -unspecified istream manipulator -parse(const CharT* format, local_time<Duration>& tp, std::chrono::minutes& offset); - -template <class Duration, class CharT, class Traits> -unspecified istream manipulator -parse(const CharT* format, local_time<Duration>& tp, - std::basic_string<CharT, Traits>& abbrev, std::chrono::minutes& offset); - -template <class Duration, class CharT, class Traits> -unspecified istream manipulator -parse(const CharT* format, local_time<Duration>& tp, std::chrono::minutes& offset, - std::basic_string<CharT, Traits>& abbrev); - -template <class Duration, class CharT> -unspecified istream manipulator -parse(const CharT* format, utc_time<Duration>& tp); - -template <class Duration, class CharT, class Traits> -unspecified istream manipulator -parse(const CharT* format, utc_time<Duration>& tp, - std::basic_string<CharT, Traits>& abbrev); - -template <class Duration, class CharT> -unspecified istream manipulator -parse(const CharT* format, utc_time<Duration>& tp, std::chrono::minutes& offset); - -template <class Duration, class CharT, class Traits> -unspecified istream manipulator -parse(const CharT* format, utc_time<Duration>& tp, - std::basic_string<CharT, Traits>& abbrev, std::chrono::minutes& offset); - -template <class Duration, class CharT, class Traits> -unspecified istream manipulator -parse(const CharT* format, utc_time<Duration>& tp, - std::chrono::minutes& offset, std::basic_string<CharT, Traits>& abbrev); - -template <class Duration, class CharT> -unspecified istream manipulator -parse(const CharT* format, tai_time<Duration>& tp); - -template <class Duration, class CharT, class Traits> -unspecified istream manipulator -parse(const CharT* format, tai_time<Duration>& tp, - std::basic_string<CharT, Traits>& abbrev); - -template <class Duration, class CharT> -unspecified istream manipulator -parse(const CharT* format, tai_time<Duration>& tp, std::chrono::minutes& offset); - -template <class Duration, class CharT, class Traits> -unspecified istream manipulator -parse(const CharT* format, tai_time<Duration>& tp, - std::basic_string<CharT, Traits>& abbrev, std::chrono::minutes& offset); - -template <class Duration, class CharT, class Traits> -unspecified istream manipulator -parse(const CharT* format, tai_time<Duration>& tp, - std::chrono::minutes& offset, std::basic_string<CharT, Traits>& abbrev); - -template <class Duration, class CharT> -unspecified istream manipulator -parse(const CharT* format, gps_time<Duration>& tp); - -template <class Duration, class CharT, class Traits> -unspecified istream manipulator -parse(const CharT* format, gps_time<Duration>& tp, - std::basic_string<CharT, Traits>& abbrev); - -template <class Duration, class CharT> -unspecified istream manipulator -parse(const CharT* format, gps_time<Duration>& tp, std::chrono::minutes& offset); - -template <class Duration, class CharT, class Traits> -unspecified istream manipulator -parse(const CharT* format, gps_time<Duration>& tp, - std::basic_string<CharT, Traits>& abbrev, std::chrono::minutes& offset); - -template <class Duration, class CharT, class Traits> -unspecified istream manipulator -parse(const CharT* format, gps_time<Duration>& tp, - std::chrono::minutes& offset, std::basic_string<CharT, Traits>& abbrev); - -template <class CharT> -unspecified istream manipulator -parse(const CharT* format, year_month_day& ymd); - -template <class CharT, class Traits> -unspecified istream manipulator -parse(const CharT* format, year_month_day& ymd, - std::basic_string<CharT, Traits>& abbrev); - -template <class CharT> -unspecified istream manipulator -parse(const CharT* format, year_month_day& ymd, std::chrono::minutes& offset); - -template <class CharT, class Traits> -unspecified istream manipulator -parse(const CharT* format, year_month_day& ymd, - std::basic_string<CharT, Traits>& abbrev, std::chrono::minutes& offset); - -template <class CharT, class Traits> -unspecified istream manipulator -parse(const CharT* format, year_month_day& ymd, - std::chrono::minutes& offset, std::basic_string<CharT, Traits>& abbrev); - -template <class Rep, class Period, class CharT> -unspecified istream manipulator -parse(const CharT* format, std::chrono::duration<Rep, Period>& d);-Effects: These functions attempt to parse a
time_point
out of +Effects: These functions attempt to parse an object out ofis
according toformat
. If the parse is unsuccessful, callsis.setstate(std::ios::failbit)
which may throw an exception.tp
,abbrev
, andoffset
are altered only in