Boost logo

Boost Users :

From: Paolo Coletta (paolo_at_[hidden])
Date: 2005-06-02 04:34:01

I needed something to convert the difference between two xtime values to
microseconds, so I looked at the to_microduration function in
time_conv.inl and I guess that there is a bug there. The if should be:

if (boost::xtime_cmp(xt, cur) <= 0)
    microseconds = 0;

In facts, the intent of the if condition seems to be avoiding negative
return values, as for the to_duration function.

Current code is:

inline void to_microduration(const boost::xtime& xt, int& microseconds)
    boost::xtime cur;
    int res = 0;
    res = boost::xtime_get(&cur, boost::TIME_UTC);
    assert(res == boost::TIME_UTC);

    if (boost::xtime_get(&cur, boost::TIME_UTC) <= 0)
        microseconds = 0;
        microseconds = (int)((xt.sec - cur.sec) * MICROSECONDS_PER_SECOND) +
            (((xt.nsec - cur.nsec) + (NANOSECONDS_PER_MICROSECOND/2)) /


Boost-users list run by williamkempf at, kalb at, bjorn.karlsson at, gregod at, wekempf at