Boost logo

Boost :

Subject: Re: [boost] [date_time] [#1861] Change for the default duration format
From: Andrey Semashev (andrey.semashev_at_[hidden])
Date: 2009-06-17 04:35:05

Ilya Bobir wrote:

> General
> -------
> What is so different about
> time_duration td;
> cin >> td;
> from
> int v;
> cin >> v;
> that makes you discuss an alternative error reporting strategy for the
> time duration input facet?

Because apparently not everyone is happy with the current strategy.

> %H in an output facet
> ---------------------
> The hours value is converted into a string. There is a BOOST_ASSERT
> that checks that the value is no longer than 2 characters. At the same
> time a zero is perpended if the value is shorter than 2 characters.
> Note that there is no check for the value of 23 or 24. Just for the
> length of 2 characters.

Technically, this check is intended to ensure that the formatted string
will be parsed back with the %H specifier. That will hold if hours
string is no longer than 2 characters.

> %H in an output facet
> ---------------------
> A continuous sequence of digits no longer than 2 is read from a stream.
> If there is less than 2 digits it is an error. Read digits are
> converted into a number. Actually it means that the current behavior is
> wrong with regard to the ptime or time period.

What exactly is wrong?

> %H in an input facet for a ptime bug
> ------------------------------------
> The following code


> Gives me this output on MS cl:
> 2009-Jun-17 04:14:00
> fail is false
> While it would have failed to parse the input value, in my opinion.

I believe it's not a bug. The read date is normalized correctly.

Boost list run by bdawes at, gregod at, cpdaniel at, john at