17 #ifndef __COMMON_VALUES_HPP__
18 #define __COMMON_VALUES_HPP__
21 #include <type_traits>
40 std::is_integral<T>::value,
41 "IntervalSet<T> must use an integral type");
43 foreach (
const Value::Range& range, ranges.range()) {
46 return Error(
"Range is out of bounds");
64 std::is_integral<T>::value,
65 "IntervalSet<T> must use an integral type");
68 Value::Range* range = ranges.add_range();
69 range->set_begin(interval.
lower());
70 range->set_end(interval.
upper() - 1);
80 #endif // __COMMON_VALUES_HPP__
Definition: interval.hpp:34
Definition: errorbase.hpp:35
Definition: interval.hpp:28
Definition: interval.hpp:24
Try< bool > set(const std::string &_link, unsigned int flags)
Definition: internal.hpp:125
T lower() const
Definition: interval.hpp:81
Option< T > max(const Option< T > &left, const Option< T > &right)
Definition: option.hpp:199
Value::Ranges intervalSetToRanges(const IntervalSet< T > &set)
Definition: values.hpp:59
Option< T > min(const Option< T > &left, const Option< T > &right)
Definition: option.hpp:170
T upper() const
Definition: interval.hpp:84
Try< IntervalSet< T > > rangesToIntervalSet(const Value::Ranges &ranges)
Definition: values.hpp:35
static Bound< T > closed(const T &value)
Definition: interval.hpp:44