1 #ifndef OSMIUM_MEMORY_COLLECTION_HPP
2 #define OSMIUM_MEMORY_COLLECTION_HPP
38 #include <type_traits>
46 template <
typename TMember>
52 typedef typename std::conditional<std::is_const<TMember>::value,
const unsigned char*,
unsigned char*>
::type data_type;
67 m_data =
reinterpret_cast<TMember*
>(
m_data)->next();
78 return m_data == rhs.m_data;
82 return m_data != rhs.m_data;
85 unsigned char*
data() const noexcept {
90 return *
reinterpret_cast<TMember*
>(
m_data);
94 return reinterpret_cast<TMember*
>(
m_data);
97 template <
typename TChar,
typename TTraits>
99 return out << static_cast<const void*>(iter.m_data);
104 template <
typename TMember, osmium::item_type TCollectionItemType>
116 Item(sizeof(
Collection<TMember, TCollectionItemType>), TCollectionItemType) {
143 const_iterator
end()
const {
153 #endif // OSMIUM_MEMORY_COLLECTION_HPP
bool empty() const
Definition: collection.hpp:119
iterator end()
Definition: collection.hpp:127
Definition: collection.hpp:47
CollectionIterator< TMember > & operator++()
Definition: collection.hpp:66
type
Definition: entity_bits.hpp:60
bool operator==(const CollectionIterator< TMember > &rhs) const noexcept
Definition: collection.hpp:77
CollectionIterator< TMember > iterator
Definition: collection.hpp:109
unsigned char * data() const noexcept
Definition: collection.hpp:85
const_iterator cend() const
Definition: collection.hpp:135
item_type
Definition: item_type.hpp:43
CollectionIterator< TMember > operator++(int)
Definition: collection.hpp:71
CollectionIterator< const TMember > const_iterator
Definition: collection.hpp:110
const_iterator begin() const
Definition: collection.hpp:139
bool operator!=(const CollectionIterator< TMember > &rhs) const noexcept
Definition: collection.hpp:81
iterator begin()
Definition: collection.hpp:123
static constexpr osmium::item_type itemtype
Definition: collection.hpp:113
CollectionIterator() noexcept
Definition: collection.hpp:58
item_size_type byte_size() const noexcept
Definition: item.hpp:147
TMember & operator*() const
Definition: collection.hpp:89
Namespace for everything in the Osmium library.
Definition: assembler.hpp:59
TMember value_type
Definition: collection.hpp:111
Definition: collection.hpp:105
Collection()
Definition: collection.hpp:115
const_iterator cbegin() const
Definition: collection.hpp:131
data_type m_data
Definition: collection.hpp:54
CollectionIterator(data_type data) noexcept
Definition: collection.hpp:62
std::conditional< std::is_const< TMember >::value, const unsigned char *, unsigned char * >::type data_type
Definition: collection.hpp:52
TMember * operator->() const
Definition: collection.hpp:93
const_iterator end() const
Definition: collection.hpp:143