Ticket #6095: interval.hpp.diff

File interval.hpp.diff, 1.1 KB (added by Marvin Sielenkemper <m.sielenkemper@…>, 11 years ago)

patch to check for overflow in is_empty

  • interval.hpp

     
    547547typename boost::enable_if<is_static_open<Type>, bool>::type
    548548is_empty(const Type& object)
    549549{
    550     return domain_less_equal<Type>(upper(object), domain_next<Type>(lower(object)));
     550    return domain_less_equal<Type>(upper(object), domain_next<Type>(lower(object)))
     551        || domain_less_equal<Type>(domain_next<Type>(lower(object)), lower(object));
    551552}
    552553
    553554template<class Type>
     
    557558    if(object.bounds() == interval_bounds::closed())
    558559        return domain_less<Type>(upper(object), lower(object));
    559560    else if(object.bounds() == interval_bounds::open())
    560         return domain_less_equal<Type>(upper(object), domain_next<Type>(lower(object)));
     561        return domain_less_equal<Type>(upper(object), domain_next<Type>(lower(object)))
     562            || domain_less_equal<Type>(domain_next<Type>(lower(object)), lower(object));
    561563    else
    562564        return domain_less_equal<Type>(upper(object), lower(object));
    563565}