55 template <
class BASE,
class ID>
65 virtual ~Node() =
default;
76 if(!(this->BASE::operator==(other)))
return false;
80 bool operator < (const Node<BASE, ID>&
other)
const 83 if(!(this->BASE::operator==(
other)))
return this->BASE::operator<(
other);
96 virtual ~Node() =
default;
103 bool operator < (const Node<void, ID>&
other)
const 147 StripID(
const LayerID& layer,
const uint8_t local):
detail::
Node<LayerID, uint8_t>(layer, local) {}
152 if(!(this->ModuleID::operator==(other)))
return false;
153 if(this->LayerID::operator==(other))
return false;
155 const auto diff =
fID - other.
fID;
158 if(diff == 0)
return true;
162 if(layer)
return diff == 1;
174 template <
class VALUE,
class KEY,
class ...KEYS>
183 virtual ~
map() =
default;
201 inline size_t size()
const {
return fMap.size(); }
205 template <
class VALUE,
class KEY>
214 virtual ~
map() =
default;
219 inline VALUE& operator [](
const KEY&
key) {
return fMap[
key]; }
229 inline size_t size()
const {
return fMap.size(); }
233 template <
class VALUE>
bool operator==(const Node< BASE, ID > &other) const
detail::Node< void, uint8_t > FrameID
detail::Node< ModuleID, bool > LayerID
detail::Node< PlaneID, bool > ModuleID
const_iterator begin() const
bool Overlaps(const StripID &other) const
decltype(fMap.cbegin()) const_iterator
decltype(fMap.begin()) iterator
const_iterator begin() const
const_iterator end() const
typename CRT::map< VALUE, KEYS... >::most_derived_key_type most_derived_key_type
decltype(fMap.cbegin()) const_iterator
decltype(fMap.begin()) iterator
std::map< KEY, CRT::map< VALUE, KEYS... > > fMap
detail::Node< FrameID, bool > PlaneID
Node(const BASE &base, const ID &id)
const_iterator end() const
std::map< KEY, VALUE > fMap
StripID(const LayerID &layer, const uint8_t local)
KEY most_derived_key_type