forked from HowardHinnant/date
call from_stream explicitly from date namespace (#677)
Co-authored-by: Julian Zimmermann <Julian.Zimmermann@gti.de>
This commit is contained in:
@@ -7891,7 +7891,7 @@ from_stream(std::basic_istream<CharT, Traits>& is, const CharT* fmt, year& y,
|
|||||||
{
|
{
|
||||||
using CT = std::chrono::seconds;
|
using CT = std::chrono::seconds;
|
||||||
fields<CT> fds{};
|
fields<CT> fds{};
|
||||||
from_stream(is, fmt, fds, abbrev, offset);
|
date::from_stream(is, fmt, fds, abbrev, offset);
|
||||||
if (!fds.ymd.year().ok())
|
if (!fds.ymd.year().ok())
|
||||||
is.setstate(std::ios::failbit);
|
is.setstate(std::ios::failbit);
|
||||||
if (!is.fail())
|
if (!is.fail())
|
||||||
@@ -7907,7 +7907,7 @@ from_stream(std::basic_istream<CharT, Traits>& is, const CharT* fmt, month& m,
|
|||||||
{
|
{
|
||||||
using CT = std::chrono::seconds;
|
using CT = std::chrono::seconds;
|
||||||
fields<CT> fds{};
|
fields<CT> fds{};
|
||||||
from_stream(is, fmt, fds, abbrev, offset);
|
date::from_stream(is, fmt, fds, abbrev, offset);
|
||||||
if (!fds.ymd.month().ok())
|
if (!fds.ymd.month().ok())
|
||||||
is.setstate(std::ios::failbit);
|
is.setstate(std::ios::failbit);
|
||||||
if (!is.fail())
|
if (!is.fail())
|
||||||
@@ -7923,7 +7923,7 @@ from_stream(std::basic_istream<CharT, Traits>& is, const CharT* fmt, day& d,
|
|||||||
{
|
{
|
||||||
using CT = std::chrono::seconds;
|
using CT = std::chrono::seconds;
|
||||||
fields<CT> fds{};
|
fields<CT> fds{};
|
||||||
from_stream(is, fmt, fds, abbrev, offset);
|
date::from_stream(is, fmt, fds, abbrev, offset);
|
||||||
if (!fds.ymd.day().ok())
|
if (!fds.ymd.day().ok())
|
||||||
is.setstate(std::ios::failbit);
|
is.setstate(std::ios::failbit);
|
||||||
if (!is.fail())
|
if (!is.fail())
|
||||||
@@ -7939,7 +7939,7 @@ from_stream(std::basic_istream<CharT, Traits>& is, const CharT* fmt, weekday& wd
|
|||||||
{
|
{
|
||||||
using CT = std::chrono::seconds;
|
using CT = std::chrono::seconds;
|
||||||
fields<CT> fds{};
|
fields<CT> fds{};
|
||||||
from_stream(is, fmt, fds, abbrev, offset);
|
date::from_stream(is, fmt, fds, abbrev, offset);
|
||||||
if (!fds.wd.ok())
|
if (!fds.wd.ok())
|
||||||
is.setstate(std::ios::failbit);
|
is.setstate(std::ios::failbit);
|
||||||
if (!is.fail())
|
if (!is.fail())
|
||||||
@@ -7955,7 +7955,7 @@ from_stream(std::basic_istream<CharT, Traits>& is, const CharT* fmt, year_month&
|
|||||||
{
|
{
|
||||||
using CT = std::chrono::seconds;
|
using CT = std::chrono::seconds;
|
||||||
fields<CT> fds{};
|
fields<CT> fds{};
|
||||||
from_stream(is, fmt, fds, abbrev, offset);
|
date::from_stream(is, fmt, fds, abbrev, offset);
|
||||||
if (!fds.ymd.month().ok())
|
if (!fds.ymd.month().ok())
|
||||||
is.setstate(std::ios::failbit);
|
is.setstate(std::ios::failbit);
|
||||||
if (!is.fail())
|
if (!is.fail())
|
||||||
@@ -7971,7 +7971,7 @@ from_stream(std::basic_istream<CharT, Traits>& is, const CharT* fmt, month_day&
|
|||||||
{
|
{
|
||||||
using CT = std::chrono::seconds;
|
using CT = std::chrono::seconds;
|
||||||
fields<CT> fds{};
|
fields<CT> fds{};
|
||||||
from_stream(is, fmt, fds, abbrev, offset);
|
date::from_stream(is, fmt, fds, abbrev, offset);
|
||||||
if (!fds.ymd.month().ok() || !fds.ymd.day().ok())
|
if (!fds.ymd.month().ok() || !fds.ymd.day().ok())
|
||||||
is.setstate(std::ios::failbit);
|
is.setstate(std::ios::failbit);
|
||||||
if (!is.fail())
|
if (!is.fail())
|
||||||
@@ -7987,7 +7987,7 @@ from_stream(std::basic_istream<CharT, Traits>& is, const CharT* fmt,
|
|||||||
{
|
{
|
||||||
using CT = std::chrono::seconds;
|
using CT = std::chrono::seconds;
|
||||||
fields<CT> fds{};
|
fields<CT> fds{};
|
||||||
from_stream(is, fmt, fds, abbrev, offset);
|
date::from_stream(is, fmt, fds, abbrev, offset);
|
||||||
if (!fds.ymd.ok())
|
if (!fds.ymd.ok())
|
||||||
is.setstate(std::ios::failbit);
|
is.setstate(std::ios::failbit);
|
||||||
if (!is.fail())
|
if (!is.fail())
|
||||||
@@ -8007,7 +8007,7 @@ from_stream(std::basic_istream<CharT, Traits>& is, const CharT* fmt,
|
|||||||
auto offptr = offset ? offset : &offset_local;
|
auto offptr = offset ? offset : &offset_local;
|
||||||
fields<CT> fds{};
|
fields<CT> fds{};
|
||||||
fds.has_tod = true;
|
fds.has_tod = true;
|
||||||
from_stream(is, fmt, fds, abbrev, offptr);
|
date::from_stream(is, fmt, fds, abbrev, offptr);
|
||||||
if (!fds.ymd.ok() || !fds.tod.in_conventional_range())
|
if (!fds.ymd.ok() || !fds.tod.in_conventional_range())
|
||||||
is.setstate(std::ios::failbit);
|
is.setstate(std::ios::failbit);
|
||||||
if (!is.fail())
|
if (!is.fail())
|
||||||
@@ -8025,7 +8025,7 @@ from_stream(std::basic_istream<CharT, Traits>& is, const CharT* fmt,
|
|||||||
using detail::round_i;
|
using detail::round_i;
|
||||||
fields<CT> fds{};
|
fields<CT> fds{};
|
||||||
fds.has_tod = true;
|
fds.has_tod = true;
|
||||||
from_stream(is, fmt, fds, abbrev, offset);
|
date::from_stream(is, fmt, fds, abbrev, offset);
|
||||||
if (!fds.ymd.ok() || !fds.tod.in_conventional_range())
|
if (!fds.ymd.ok() || !fds.tod.in_conventional_range())
|
||||||
is.setstate(std::ios::failbit);
|
is.setstate(std::ios::failbit);
|
||||||
if (!is.fail())
|
if (!is.fail())
|
||||||
@@ -8043,7 +8043,7 @@ from_stream(std::basic_istream<CharT, Traits>& is, const CharT* fmt,
|
|||||||
using Duration = std::chrono::duration<Rep, Period>;
|
using Duration = std::chrono::duration<Rep, Period>;
|
||||||
using CT = typename std::common_type<Duration, std::chrono::seconds>::type;
|
using CT = typename std::common_type<Duration, std::chrono::seconds>::type;
|
||||||
fields<CT> fds{};
|
fields<CT> fds{};
|
||||||
from_stream(is, fmt, fds, abbrev, offset);
|
date::from_stream(is, fmt, fds, abbrev, offset);
|
||||||
if (!fds.has_tod)
|
if (!fds.has_tod)
|
||||||
is.setstate(std::ios::failbit);
|
is.setstate(std::ios::failbit);
|
||||||
if (!is.fail())
|
if (!is.fail())
|
||||||
@@ -8096,14 +8096,14 @@ std::basic_istream<CharT, Traits>&
|
|||||||
operator>>(std::basic_istream<CharT, Traits>& is,
|
operator>>(std::basic_istream<CharT, Traits>& is,
|
||||||
const parse_manip<Parsable, CharT, Traits, Alloc>& x)
|
const parse_manip<Parsable, CharT, Traits, Alloc>& x)
|
||||||
{
|
{
|
||||||
return from_stream(is, x.format_.c_str(), x.tp_, x.abbrev_, x.offset_);
|
return date::from_stream(is, x.format_.c_str(), x.tp_, x.abbrev_, x.offset_);
|
||||||
}
|
}
|
||||||
|
|
||||||
template <class Parsable, class CharT, class Traits, class Alloc>
|
template <class Parsable, class CharT, class Traits, class Alloc>
|
||||||
inline
|
inline
|
||||||
auto
|
auto
|
||||||
parse(const std::basic_string<CharT, Traits, Alloc>& format, Parsable& tp)
|
parse(const std::basic_string<CharT, Traits, Alloc>& format, Parsable& tp)
|
||||||
-> decltype(from_stream(std::declval<std::basic_istream<CharT, Traits>&>(),
|
-> decltype(date::from_stream(std::declval<std::basic_istream<CharT, Traits>&>(),
|
||||||
format.c_str(), tp),
|
format.c_str(), tp),
|
||||||
parse_manip<Parsable, CharT, Traits, Alloc>{format, tp})
|
parse_manip<Parsable, CharT, Traits, Alloc>{format, tp})
|
||||||
{
|
{
|
||||||
@@ -8115,7 +8115,7 @@ inline
|
|||||||
auto
|
auto
|
||||||
parse(const std::basic_string<CharT, Traits, Alloc>& format, Parsable& tp,
|
parse(const std::basic_string<CharT, Traits, Alloc>& format, Parsable& tp,
|
||||||
std::basic_string<CharT, Traits, Alloc>& abbrev)
|
std::basic_string<CharT, Traits, Alloc>& abbrev)
|
||||||
-> decltype(from_stream(std::declval<std::basic_istream<CharT, Traits>&>(),
|
-> decltype(date::from_stream(std::declval<std::basic_istream<CharT, Traits>&>(),
|
||||||
format.c_str(), tp, &abbrev),
|
format.c_str(), tp, &abbrev),
|
||||||
parse_manip<Parsable, CharT, Traits, Alloc>{format, tp, &abbrev})
|
parse_manip<Parsable, CharT, Traits, Alloc>{format, tp, &abbrev})
|
||||||
{
|
{
|
||||||
@@ -8127,7 +8127,7 @@ inline
|
|||||||
auto
|
auto
|
||||||
parse(const std::basic_string<CharT, Traits, Alloc>& format, Parsable& tp,
|
parse(const std::basic_string<CharT, Traits, Alloc>& format, Parsable& tp,
|
||||||
std::chrono::minutes& offset)
|
std::chrono::minutes& offset)
|
||||||
-> decltype(from_stream(std::declval<std::basic_istream<CharT, Traits>&>(),
|
-> decltype(date::from_stream(std::declval<std::basic_istream<CharT, Traits>&>(),
|
||||||
format.c_str(), tp,
|
format.c_str(), tp,
|
||||||
std::declval<std::basic_string<CharT, Traits, Alloc>*>(),
|
std::declval<std::basic_string<CharT, Traits, Alloc>*>(),
|
||||||
&offset),
|
&offset),
|
||||||
@@ -8141,7 +8141,7 @@ inline
|
|||||||
auto
|
auto
|
||||||
parse(const std::basic_string<CharT, Traits, Alloc>& format, Parsable& tp,
|
parse(const std::basic_string<CharT, Traits, Alloc>& format, Parsable& tp,
|
||||||
std::basic_string<CharT, Traits, Alloc>& abbrev, std::chrono::minutes& offset)
|
std::basic_string<CharT, Traits, Alloc>& abbrev, std::chrono::minutes& offset)
|
||||||
-> decltype(from_stream(std::declval<std::basic_istream<CharT, Traits>&>(),
|
-> decltype(date::from_stream(std::declval<std::basic_istream<CharT, Traits>&>(),
|
||||||
format.c_str(), tp, &abbrev, &offset),
|
format.c_str(), tp, &abbrev, &offset),
|
||||||
parse_manip<Parsable, CharT, Traits, Alloc>{format, tp, &abbrev, &offset})
|
parse_manip<Parsable, CharT, Traits, Alloc>{format, tp, &abbrev, &offset})
|
||||||
{
|
{
|
||||||
@@ -8154,7 +8154,7 @@ template <class Parsable, class CharT>
|
|||||||
inline
|
inline
|
||||||
auto
|
auto
|
||||||
parse(const CharT* format, Parsable& tp)
|
parse(const CharT* format, Parsable& tp)
|
||||||
-> decltype(from_stream(std::declval<std::basic_istream<CharT>&>(), format, tp),
|
-> decltype(date::from_stream(std::declval<std::basic_istream<CharT>&>(), format, tp),
|
||||||
parse_manip<Parsable, CharT>{format, tp})
|
parse_manip<Parsable, CharT>{format, tp})
|
||||||
{
|
{
|
||||||
return {format, tp};
|
return {format, tp};
|
||||||
@@ -8164,7 +8164,7 @@ template <class Parsable, class CharT, class Traits, class Alloc>
|
|||||||
inline
|
inline
|
||||||
auto
|
auto
|
||||||
parse(const CharT* format, Parsable& tp, std::basic_string<CharT, Traits, Alloc>& abbrev)
|
parse(const CharT* format, Parsable& tp, std::basic_string<CharT, Traits, Alloc>& abbrev)
|
||||||
-> decltype(from_stream(std::declval<std::basic_istream<CharT, Traits>&>(), format,
|
-> decltype(date::from_stream(std::declval<std::basic_istream<CharT, Traits>&>(), format,
|
||||||
tp, &abbrev),
|
tp, &abbrev),
|
||||||
parse_manip<Parsable, CharT, Traits, Alloc>{format, tp, &abbrev})
|
parse_manip<Parsable, CharT, Traits, Alloc>{format, tp, &abbrev})
|
||||||
{
|
{
|
||||||
@@ -8175,7 +8175,7 @@ template <class Parsable, class CharT>
|
|||||||
inline
|
inline
|
||||||
auto
|
auto
|
||||||
parse(const CharT* format, Parsable& tp, std::chrono::minutes& offset)
|
parse(const CharT* format, Parsable& tp, std::chrono::minutes& offset)
|
||||||
-> decltype(from_stream(std::declval<std::basic_istream<CharT>&>(), format,
|
-> decltype(date::from_stream(std::declval<std::basic_istream<CharT>&>(), format,
|
||||||
tp, std::declval<std::basic_string<CharT>*>(), &offset),
|
tp, std::declval<std::basic_string<CharT>*>(), &offset),
|
||||||
parse_manip<Parsable, CharT>{format, tp, nullptr, &offset})
|
parse_manip<Parsable, CharT>{format, tp, nullptr, &offset})
|
||||||
{
|
{
|
||||||
@@ -8187,7 +8187,7 @@ inline
|
|||||||
auto
|
auto
|
||||||
parse(const CharT* format, Parsable& tp,
|
parse(const CharT* format, Parsable& tp,
|
||||||
std::basic_string<CharT, Traits, Alloc>& abbrev, std::chrono::minutes& offset)
|
std::basic_string<CharT, Traits, Alloc>& abbrev, std::chrono::minutes& offset)
|
||||||
-> decltype(from_stream(std::declval<std::basic_istream<CharT, Traits>&>(), format,
|
-> decltype(date::from_stream(std::declval<std::basic_istream<CharT, Traits>&>(), format,
|
||||||
tp, &abbrev, &offset),
|
tp, &abbrev, &offset),
|
||||||
parse_manip<Parsable, CharT, Traits, Alloc>{format, tp, &abbrev, &offset})
|
parse_manip<Parsable, CharT, Traits, Alloc>{format, tp, &abbrev, &offset})
|
||||||
{
|
{
|
||||||
@@ -8202,7 +8202,7 @@ template <class Parsable, class CharT, class Traits>
|
|||||||
inline
|
inline
|
||||||
auto
|
auto
|
||||||
parse(std::basic_string_view<CharT, Traits> format, Parsable& tp)
|
parse(std::basic_string_view<CharT, Traits> format, Parsable& tp)
|
||||||
-> decltype(from_stream(std::declval<std::basic_istream<CharT, Traits>&>(), format.data(), tp),
|
-> decltype(date::from_stream(std::declval<std::basic_istream<CharT, Traits>&>(), format.data(), tp),
|
||||||
parse_manip<Parsable, CharT, Traits>{format, tp})
|
parse_manip<Parsable, CharT, Traits>{format, tp})
|
||||||
{
|
{
|
||||||
return {format, tp};
|
return {format, tp};
|
||||||
@@ -8213,7 +8213,7 @@ inline
|
|||||||
auto
|
auto
|
||||||
parse(std::basic_string_view<CharT, Traits> format,
|
parse(std::basic_string_view<CharT, Traits> format,
|
||||||
Parsable& tp, std::basic_string<CharT, Traits, Alloc>& abbrev)
|
Parsable& tp, std::basic_string<CharT, Traits, Alloc>& abbrev)
|
||||||
-> decltype(from_stream(std::declval<std::basic_istream<CharT, Traits>&>(), format.data(),
|
-> decltype(date::from_stream(std::declval<std::basic_istream<CharT, Traits>&>(), format.data(),
|
||||||
tp, &abbrev),
|
tp, &abbrev),
|
||||||
parse_manip<Parsable, CharT, Traits, Alloc>{format, tp, &abbrev})
|
parse_manip<Parsable, CharT, Traits, Alloc>{format, tp, &abbrev})
|
||||||
{
|
{
|
||||||
@@ -8224,7 +8224,7 @@ template <class Parsable, class CharT, class Traits>
|
|||||||
inline
|
inline
|
||||||
auto
|
auto
|
||||||
parse(std::basic_string_view<CharT, Traits> format, Parsable& tp, std::chrono::minutes& offset)
|
parse(std::basic_string_view<CharT, Traits> format, Parsable& tp, std::chrono::minutes& offset)
|
||||||
-> decltype(from_stream(std::declval<std::basic_istream<CharT, Traits>&>(), format.data(),
|
-> decltype(date::from_stream(std::declval<std::basic_istream<CharT, Traits>&>(), format.data(),
|
||||||
tp, std::declval<std::basic_string<CharT, Traits>*>(), &offset),
|
tp, std::declval<std::basic_string<CharT, Traits>*>(), &offset),
|
||||||
parse_manip<Parsable, CharT, Traits>{format, tp, nullptr, &offset})
|
parse_manip<Parsable, CharT, Traits>{format, tp, nullptr, &offset})
|
||||||
{
|
{
|
||||||
@@ -8236,7 +8236,7 @@ inline
|
|||||||
auto
|
auto
|
||||||
parse(std::basic_string_view<CharT, Traits> format, Parsable& tp,
|
parse(std::basic_string_view<CharT, Traits> format, Parsable& tp,
|
||||||
std::basic_string<CharT, Traits, Alloc>& abbrev, std::chrono::minutes& offset)
|
std::basic_string<CharT, Traits, Alloc>& abbrev, std::chrono::minutes& offset)
|
||||||
-> decltype(from_stream(std::declval<std::basic_istream<CharT, Traits>&>(), format.data(),
|
-> decltype(date::from_stream(std::declval<std::basic_istream<CharT, Traits>&>(), format.data(),
|
||||||
tp, &abbrev, &offset),
|
tp, &abbrev, &offset),
|
||||||
parse_manip<Parsable, CharT, Traits, Alloc>{format, tp, &abbrev, &offset})
|
parse_manip<Parsable, CharT, Traits, Alloc>{format, tp, &abbrev, &offset})
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user