Boost logo

Boost Users :

From: Vladimir Prus (yg-boost-users_at_[hidden])
Date: 2003-06-20 00:35:19


Hi Dan,

>> I'm at loss... nothing suspicious so far. And without VC7, I can't debug
>> this. Let's try to narrow the problem down.
>> 1. You compile examples/file_dependency.cpp, right?
>> 2. It throws exception inside dijskta_shortets_path_no_init, right?
>> 3. Exception is thrown from 'examine_edge' and the exception is
>> 'negative_edge', right?
>> 4. Could you tell what's the value of 'm_zero' and what's the value of
>> 'e' --- I mean what's the source and target vertex? What's result of
>> 'get' invocation?
>
> 1. yes.
> 2. yes.
> 3. yes.
> 4. m_zero = 0x00000000, get( m_weight, e) = 0x00000001.
> e.m_source = 0x00000000, e.m_target = 0x00000004
>
> when I changed the compare object from std::greater<int> to std::less<int>
> or std::less_equal<int>, I got no exceptions, but the results were all the
> files on time slot 0.
>
> Needless to say, it's somewhat confusing. Any insight ?

That's *confusing*. Also, there's very stange comment in
file_dependency.cpp:

         compare, combine, 0, // Since we are using > instead of >, we
           std::numeric_limits<int>::max(), // flip 0 and inf.

"Using >" instead of ">" :-) Well, anyway, in my case m_zero is 2147483647,
which makes me suspect std::numeric_limits<int>::max() is buggy on your
compiler/system. Could you try chaning it by literal 2147483647, and report
your results?

- Volodya


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net