1 #ifndef OSMIUM_MEMORY_COLLECTION_HPP
2 #define OSMIUM_MEMORY_COLLECTION_HPP
38 #include <type_traits>
47 template <
class TMember>
53 typedef typename std::conditional<std::is_const<TMember>::value,
const unsigned char*,
unsigned char*>
::type data_type;
68 m_data =
reinterpret_cast<TMember*
>(
m_data)->next();
79 return m_data == rhs.m_data;
83 return m_data != rhs.m_data;
86 unsigned char*
data() const noexcept {
91 return *
reinterpret_cast<TMember*
>(
m_data);
95 return reinterpret_cast<TMember*
>(
m_data);
98 template <
typename TChar,
typename TTraits>
100 return out << static_cast<const void*>(iter.m_data);
105 template <
class TMember, osmium::item_type TCollectionItemType>
117 Item(sizeof(
Collection<TMember, TCollectionItemType>), TCollectionItemType) {
144 const_iterator
end()
const {
154 #endif // OSMIUM_MEMORY_COLLECTION_HPP
bool empty() const
Definition: collection.hpp:120
iterator end()
Definition: collection.hpp:128
Definition: collection.hpp:48
CollectionIterator< TMember > & operator++()
Definition: collection.hpp:67
type
Definition: entity_bits.hpp:60
CollectionIterator< TMember > iterator
Definition: collection.hpp:110
const_iterator cend() const
Definition: collection.hpp:136
item_type
Definition: item_type.hpp:42
CollectionIterator< TMember > operator++(int)
Definition: collection.hpp:72
CollectionIterator< const TMember > const_iterator
Definition: collection.hpp:111
const_iterator begin() const
Definition: collection.hpp:140
iterator begin()
Definition: collection.hpp:124
static constexpr osmium::item_type itemtype
Definition: collection.hpp:114
CollectionIterator() noexcept
Definition: collection.hpp:59
bool operator!=(const CollectionIterator< TMember > &rhs) const noexcept
Definition: collection.hpp:82
TMember & operator*() const
Definition: collection.hpp:90
Namespace for everything in the Osmium library.
Definition: assembler.hpp:55
TMember value_type
Definition: collection.hpp:112
Definition: collection.hpp:106
item_size_type byte_size() const noexcept
Definition: item.hpp:148
unsigned char * data() const noexcept
Definition: collection.hpp:86
Collection()
Definition: collection.hpp:116
const_iterator cbegin() const
Definition: collection.hpp:132
data_type m_data
Definition: collection.hpp:55
CollectionIterator(data_type data) noexcept
Definition: collection.hpp:63
bool operator==(const CollectionIterator< TMember > &rhs) const noexcept
Definition: collection.hpp:78
std::conditional< std::is_const< TMember >::value, const unsigned char *, unsigned char * >::type data_type
Definition: collection.hpp:53
TMember * operator->() const
Definition: collection.hpp:94
const_iterator end() const
Definition: collection.hpp:144