33 m_ranges.emplace_back (std::move(range));
46 [&
id] (
const Range&
r) {
return r.match(
id); });
64 static const Range null_range;
99 range_vector::size_type i;
100 range_vector::size_type j;
101 for (i = 0; i <
m_ranges.size (); ++i) {
103 for (j = i + 1; j <
m_ranges.size (); ++j) {
105 if (
r.overlaps_with (s))
return (
true);
156 if (
m_id.fields () == 0)
return;
182 return (
m_id == other.m_id);
207 if (
m_id.fields () == 0)
return;
233 return (
m_id == other.m_id);
242 range_vector::size_type i;
243 for (i = 0; i <
m_ranges.size (); ++i) {
244 if (i > 0) s << std::endl;
251MultiRange::operator std::string ()
const {
253 range_vector::size_type i{};
255 if (i > 0)
result +=
" | ";
ConstRangeIterator end() const
ConstRangeIterator begin() const
range_vector::const_iterator m_range_end
const ExpandedIdentifier & operator*() const
bool operator==(const const_identifier_factory &other) const
ConstRangeIterator m_id_fac_end
const_identifier_factory()=default
ConstRangeIterator m_id_fac_it
range_vector::const_iterator m_range_it
This factory is able to generate all possible identifiers, from a fully bounded Range.
range_vector::const_iterator m_range_it
bool operator==(const identifier_factory &other) const
range_vector::const_iterator m_range_end
ConstRangeIterator m_id_fac_it
ConstRangeIterator m_id_fac_end
identifier_factory()=default
const ExpandedIdentifier & operator*() const
size_type cardinalityUpTo(const ExpandedIdentifier &id) const
bool has_overlap() const
Check if there are overlaps between any couple of Ranges.
range_vector::const_iterator const_iterator
identifier_factory factory_end()
const Range & operator[](size_type index) const
Accessors.
void remove_range(const ExpandedIdentifier &id)
Remove a Range made from a single ExpandedIdentifier.
size_type cardinality() const
Computes a possible cardinality from all ranges.
const_iterator begin() const
Range & back()
Get the last entered Range.
ExpandedIdentifier::size_type size_type
identifier_factory factory_begin()
const_iterator end() const
void add(const Range &range)
int match(const ExpandedIdentifier &id) const
Match an identifier.
A Range describes the possible ranges for the field values of an ExpandedIdentifier.
std::size_t erase_if(T_container &container, T_Func pred)