On Sun, Jan 13, 2008 at 11:11 AM, Soren Dreijer <admin@blacksmith-studios.dk> wrote:
I'm creating a posix_time::time_duration object based on the minutes()
helper function. If I specify a large value, such as 2000, I get a
time_duration of 33:20:00. Take a look at the following piece of code,
though:

time_duration td = minutes(2000);
cout << to_simple_string(td); // OK
cout << td; // Fails with an assertion in VS2008

The latter call fails with the following assertion in strftime.c on line
658:
_VALIDATE_RETURN( ( ( timeptr->tm_hour >=0 ) && ( timeptr->tm_hour <=
23 ) ), EINVAL, FALSE)

Apparently, operator<< expands to _expandtime(), which doesn't allow values
for the hour to be greater than 23. Is this intended behavior, or should I
just always use to_simple_string() rather than the convenient operator<< ?


I'm seeing a similar problem, but did not see any replies to this.  Does anyone know the answer?  I'm using boost 1.34.1; has this been fixed in a newer version?  There is no to_simple_string() method for this class, at least not in this version of boost.