1 #ifndef GENESIS_UTILS_CONTAINERS_INTERVAL_TREE_FUNCTIONS_H_
2 #define GENESIS_UTILS_CONTAINERS_INTERVAL_TREE_FUNCTIONS_H_
51 typename DataType = EmptyIntervalData,
53 typename IntervalKind = IntervalClosed
55 #if __cplusplus >= 201703L
63 std::min(lhs, rhs), std::max(lhs, rhs)
73 typename DataType = EmptyIntervalData,
75 typename IntervalKind = IntervalClosed
77 #if __cplusplus >= 201703L
86 std::min(lhs, rhs), std::max(lhs, rhs), data
96 typename DataType = EmptyIntervalData,
98 typename IntervalKind = IntervalClosed
100 #if __cplusplus >= 201703L
109 std::min(lhs, rhs), std::max(lhs, rhs), std::move(data)
123 typename DataType = EmptyIntervalData,
125 typename IntervalKind = IntervalClosed
131 return { std::min(a.
low(), b.
low()), std::max(a.
high(), b.
high()) };
140 typename DataType = EmptyIntervalData,
142 typename IntervalKind = IntervalClosed
149 return { std::min(a.
low(), b.
low()), std::max(a.
high(), b.
high()), data };
158 typename DataType = EmptyIntervalData,
160 typename IntervalKind = IntervalClosed
167 return { std::min(a.
low(), b.
low()), std::max(a.
high(), b.
high()), std::move(data) };
173 #endif // include guard