Issue 3554: chrono::parse needs const charT* and basic_string_view overloads (original) (raw)

template<class charT, class Parsable> unspecified parse(const charT* fmt, Parsable& tp);

-?- Constraints: The expression

from_stream(declval<basic_istream&>(), fmt, tp)

is well-formed when treated as an unevaluated operand.

-?- Effects: Equivalent to return parse(basic_string<charT>{fmt}, tp);

template<class charT, class traits, class Parsable> unspecified parse(basic_string_view<charT, traits> fmt, Parsable& tp);

-?- Constraints: The expression

from_stream(declval<basic_istream<charT, traits>&>(), fmt.data(), tp)

is well-formed when treated as an unevaluated operand.

-?- Effects: Equivalent to return parse(basic_string<charT, traits>{fmt}, tp);

template<class charT, class traits, class Alloc, class Parsable> unspecified parse(const charT* fmt, Parsable& tp, basic_string<charT, traits, Alloc>& abbrev);

-?- Constraints: The expression

from_stream(declval<basic_istream<charT, traits>&>(), fmt, tp, addressof(abbrev))

is well-formed when treated as an unevaluated operand.

-?- Effects: Equivalent to return parse(basic_string<charT, traits, Alloc>{fmt}, tp, abbrev);

template<class charT, class traits, class Alloc, class Parsable> unspecified parse(basic_string_view<charT, traits> fmt, Parsable& tp, basic_string<charT, traits, Alloc>& abbrev);

-?- Constraints: The expression

from_stream(declval<basic_istream<charT, traits>&>(), fmt.data(), tp, addressof(abbrev))

is well-formed when treated as an unevaluated operand.

-?- Effects: Equivalent to return parse(basic_string<charT, traits, Alloc>{fmt}, tp, abbrev);

template<class charT, class Parsable> unspecified parse(const charT* fmt, Parsable& tp, minutes& offset);

-?- Constraints: The expression

from_stream(declval<basic_istream&>(), fmt, tp, declval<basic_string*>(), &offset)

is well-formed when treated as an unevaluated operand.

-?- Effects: Equivalent to return parse(basic_string<charT>{fmt}, tp, offset);

template<class charT, class traits, class Parsable> unspecified parse(basic_string_view<charT, traits> fmt, Parsable& tp, minutes& offset);

-?- Constraints: The expression

from_stream(declval<basic_istream<charT, traits>&>(), fmt.data(), tp, declval<basic_string<charT, traits>*>(), &offset)

is well-formed when treated as an unevaluated operand.

-?- Effects: Equivalent to return parse(basic_string<charT, traits>{fmt}, tp, offset);

template<class charT, class traits, class Alloc, class Parsable> unspecified parse(const charT* fmt, Parsable& tp, basic_string<charT, traits, Alloc>& abbrev, minutes& offset);

-?- Constraints: The expression

from_stream(declval<basic_istream<charT, traits>&>(), fmt, tp, addressof(abbrev), &offset)

is well-formed when treated as an unevaluated operand.

-?- Effects: Equivalent to return parse(basic_string<charT, traits, Alloc>{fmt}, tp, abbrev, offset);

template<class charT, class traits, class Alloc, class Parsable> unspecified parse(basic_string_view<charT, traits> fmt, Parsable& tp, basic_string<charT, traits, Alloc>& abbrev, minutes& offset);

-?- Constraints: The expression

from_stream(declval<basic_istream<charT, traits>&>(), fmt.data(), tp, addressof(abbrev), &offset)

is well-formed when treated as an unevaluated operand.

-?- Effects: Equivalent to return parse(basic_string<charT, traits, Alloc>{fmt}, tp, abbrev, offset);

template<class charT, class traits, class Alloc, class Parsable> unspecified parse(const basic_string<charT, traits, Alloc>& format, Parsable& tp);

-2- Constraints: The expression

from_stream(declval<basic_istream<charT, traits>&>(), fmt.c_str(), tp)

is well-formed when treated as an unevaluated operand.

-3- Returns: A manipulator such that the expression is >> parse(fmt, tp) has type I, has value is, and calls from_stream(is, fmt.c_str(), tp).