9 #ifndef __DIADES__UTILS__ITERATORS__HH 10 #define __DIADES__UTILS__ITERATORS__HH 42 template<
typename Mapper>
48 using Data =
typename Mapper::Data;
101 return !(*
this == it);
112 template<
typename T,
template <
typename ...>
class Container>
121 return "Automata::SharedPointerIterator";
126 using Iterator =
typename Container<std::shared_ptr < T>>::iterator;
149 "operator->(): attempt to access the content of a null shared pointer.");
150 return(Iterator::operator*()).get();
160 "operator*(): attempt to access the content of a null shared pointer.");
161 return *(Iterator::operator*());
172 template<
typename T,
template <
typename ...>
class Container>
181 return "Automata::SharedPointerIterator";
186 using Iterator =
typename Container<std::shared_ptr < T>>::const_iterator;
209 "operator->(): attempt to access the content of a null shared pointer.");
210 return(Iterator::operator*()).get();
220 "operator*(): attempt to access the content of a null shared pointer.");
221 return *(Iterator::operator*());
230 template<
typename T,
template <
typename ...>
class Container>
240 return "Automata::SharedPointerIterator";
245 using Iterator =
typename Container<pointer>::iterator;
268 "operator->(): attempt to access the content of a null shared pointer.");
269 return(Iterator::operator*());
279 "operator*(): attempt to access the content of a null shared pointer.");
280 return *(Iterator::operator*());
289 template<
typename T,
template <
typename ...>
class Container>
299 return "Diades::Utils::ConstRawPointerConstIterator";
304 using Iterator =
typename Container<pointer>::const_iterator;
327 "operator->(): attempt to access the content of a null shared pointer.");
328 return(Iterator::operator*());
338 "operator*(): attempt to access the content of a null shared pointer.");
339 return *(Iterator::operator*());
#define always_require(Exception, expr, message)
SharedPointerIterator(Iterator it)
bool operator==(const RangeMapperIterator &it) const
ConstRawPointerConstIterator()
SharedPointerConstIterator(Iterator it)
bool operator!=(const RangeMapperIterator &it) const
RangeMapperIterator & operator=(const RangeMapperIterator &it)
RawPointerIterator(Iterator it)
RangeMapperIterator & operator++()
reference operator*() const
std::forward_iterator_tag iterator_category
RangeMapperIterator(const RangeMapperIterator &it)
Namespace of the Diades project.
pointer operator->() const
ConstIterator on the Net.
typename Mapper::Data Data
SharedPointerConstIterator()
RangeMapperIterator(const MapStructure &m, Iterator it)
RangeMapperIterator operator++(int)
typename Mapper::MapStructure MapStructure
const MapStructure * _mapStructure
ConstRawPointerConstIterator(Iterator it)
reference operator*() const