template<typename DomainT, DomainT sentinel = DomainT()>
Interval struct
Public types
- enum class PositionEnum: int { TangentLeft = -1, NotTangent = 0, TangentRight = 1 }
- using IntervalType = Interval<DomainT, sentinel>
- using DomainType = DomainT
Public static functions
-
template<typename IntT, typename IntU>static auto intersects(IntT&& i1, IntU&& i2) -> bool
-
template<typename IntT, typename IntU>static auto less(IntT&& i1, IntU&& i2) -> bool
Constructors, destructors, conversion operators
Public functions
- auto operator=(Interval const&) -> Interval& defaulted
- auto lower() const -> DomainT
- auto upper() const -> DomainT
- auto width() const -> DomainT
- auto valid() const -> bool
- auto get(std::size_t i) const -> DomainT
- void setUpper(DomainT const& val)
- void setLower(DomainT const& val)
- void set(DomainT const& lo, DomainT const& hi)
- auto contains(DomainT const& val) const -> bool
- auto tangent(IntervalType const& i, DomainT gap = 1) const -> PositionEnum
- void join(IntervalType const& i, PositionEnum pos)
-
template<typename SerializerT>void serialize(SerializerT& s)
- auto operator==(IntervalType const& i) const -> bool
- auto operator!=(IntervalType const& i) const -> bool
Friends
-
template<typename DomainU, DomainT sentinel2>auto operator<(Interval<DomainU, sentinel2> const& i1, Interval<DomainU, sentinel2> const& i2) -> bool
-
template<typename T, DomainT v>auto operator<<(std::ostream& os, Interval<T, v> const& i) -> std::ostream&