1#ifndef OSMIUM_MEMORY_COLLECTION_HPP
2#define OSMIUM_MEMORY_COLLECTION_HPP
47 template <
typename TMember>
53 using data_type = std::conditional_t<std::is_const<TMember>::value,
const unsigned char*,
unsigned char*>;
85 return m_data == rhs.m_data;
89 return !(*
this == rhs);
92 unsigned char*
data() const noexcept {
97 return *
reinterpret_cast<TMember*
>(
m_data);
101 return reinterpret_cast<TMember*
>(
m_data);
104 template <
typename TChar,
typename TTraits>
105 void print(std::basic_ostream<TChar, TTraits>& out)
const {
106 out << static_cast<const void*>(
m_data);
111 template <
typename TChar,
typename TTraits,
typename TMember>
112 inline std::basic_ostream<TChar, TTraits>&
operator<<(std::basic_ostream<TChar, TTraits>& out,
const CollectionIterator<TMember>& iter) {
117 template <
typename TFilter,
typename TMember>
162 return m_it == rhs.m_it &&
m_end == rhs.m_end;
166 return !(*
this == rhs);
181 template <
typename TMember, osmium::item_type TCollectionItemType>
200 Item(sizeof(
Collection<TMember, TCollectionItemType>), TCollectionItemType) {
Definition collection.hpp:118
std::forward_iterator_tag iterator_category
Definition collection.hpp:135
bool operator==(const CollectionFilterIterator &rhs) const noexcept
Definition collection.hpp:161
pointer operator->() const noexcept
Definition collection.hpp:174
const TMember value_type
Definition collection.hpp:136
CollectionFilterIterator(TFilter filter, CollectionIterator< TMember > begin, CollectionIterator< TMember > end)
Definition collection.hpp:141
CollectionIterator< TMember > m_it
Definition collection.hpp:121
bool operator!=(const CollectionFilterIterator &rhs) const noexcept
Definition collection.hpp:165
value_type * pointer
Definition collection.hpp:138
CollectionFilterIterator operator++(int) const
Definition collection.hpp:155
reference operator*() const noexcept
Definition collection.hpp:169
TFilter m_filter
Definition collection.hpp:120
value_type & reference
Definition collection.hpp:139
CollectionIterator< TMember > m_end
Definition collection.hpp:122
CollectionFilterIterator & operator++()
Definition collection.hpp:148
std::ptrdiff_t difference_type
Definition collection.hpp:137
void advance()
Definition collection.hpp:124
Definition collection.hpp:48
bool operator==(const CollectionIterator< TMember > &rhs) const noexcept
Definition collection.hpp:84
CollectionIterator(data_type data) noexcept
Definition collection.hpp:69
std::conditional_t< std::is_const< TMember >::value, const unsigned char *, unsigned char * > data_type
Definition collection.hpp:53
value_type & reference
Definition collection.hpp:63
TMember & operator*() const noexcept
Definition collection.hpp:96
unsigned char * data() const noexcept
Definition collection.hpp:92
std::forward_iterator_tag iterator_category
Definition collection.hpp:59
data_type m_data
Definition collection.hpp:55
value_type * pointer
Definition collection.hpp:62
CollectionIterator< TMember > & operator++()
Definition collection.hpp:73
void print(std::basic_ostream< TChar, TTraits > &out) const
Definition collection.hpp:105
CollectionIterator() noexcept
Definition collection.hpp:65
TMember * operator->() const noexcept
Definition collection.hpp:100
TMember value_type
Definition collection.hpp:60
bool operator!=(const CollectionIterator< TMember > &rhs) const noexcept
Definition collection.hpp:88
CollectionIterator< TMember > operator++(int)
Definition collection.hpp:78
std::ptrdiff_t difference_type
Definition collection.hpp:61
Definition collection.hpp:182
bool empty() const noexcept
Definition collection.hpp:208
TMember & reference
Definition collection.hpp:187
std::size_t size_type
Definition collection.hpp:191
const_iterator end() const noexcept
Definition collection.hpp:241
static constexpr bool is_compatible_to(const osmium::item_type t) noexcept
Definition collection.hpp:195
static constexpr osmium::item_type itemtype
Definition collection.hpp:193
TMember value_type
Definition collection.hpp:186
const_iterator begin() const noexcept
Definition collection.hpp:237
iterator end() noexcept
Definition collection.hpp:225
size_type size() const noexcept
Definition collection.hpp:217
const_iterator cend() const noexcept
Definition collection.hpp:233
const_iterator cbegin() const noexcept
Definition collection.hpp:229
iterator begin() noexcept
Definition collection.hpp:221
Collection() noexcept
Definition collection.hpp:199
const TMember & const_reference
Definition collection.hpp:188
item_size_type byte_size() const noexcept
Definition item.hpp:163
std::basic_ostream< TChar, TTraits > & operator<<(std::basic_ostream< TChar, TTraits > &out, const CollectionIterator< TMember > &iter)
Definition collection.hpp:112
Namespace for everything in the Osmium library.
Definition assembler.hpp:53
item_type
Definition item_type.hpp:45
Definition location.hpp:654