$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Jeff Garland (jeff_at_[hidden])
Date: 2007-12-11 08:51:16
Michael Fawcett wrote:
> On Dec 10, 2007 10:28 PM, Jeff Garland <jeff_at_[hidden]> wrote:
>> Mark Van Dijk wrote:
>>> The following code snippet produces an ASSERT on my machine running
>>> WinXP (sp2) with VS8 (sp1) with boost v1.34.1:
>>>
>>>
>>> boost::posix_time::time_duration t(24, 0, 0);
>>> std::cout << t << std::end;
>>>
>>>
>>> The assertion occurs because there is a check in the underlying CRT that
>>> verifies the hours portion is between 0 and 23 inclusive. Is this
>>> something that might be fixed in boost 1.35?
>> Well, I don't know what the problem is, but it isn't that the library
>> restricts you to 24 hours. If you look in test/posix_time/testduration.cpp
>> you'll see this test:
>>
>> time_duration tdl2(2000000, 0, 0, 0);
>> check("2000000 hours", tdl2.hours() == 2000000);
>>
>> among others. And it clearly passes on VC8. So, I think you must have a
>> compilation problem or something else going on.
>
> I can confirm that I have run into this issue as well. I can post a
> code snippet from my work computer tomorrow.
>
> My 'workaround' was to simply use 23 hours, 59 minutes, and 59
> seconds, since we didn't require resolution greater than that, but it
> was definitely annoying.
So, why do the regression tests pass on all VC compilers....including the one
above?
Jeff