This is the documentation for Enlighten.
class Geo GeoMap
template<class, class, class, class>
class Geo::GeoMap
└>_Alloc
Our implementation of an STL map, with some modifications.
The class is defined as NonCopyable (so no copy constructor or assignment operator). Required as you cannot report out-of-memory in these functions.
No operator[]. Bit of a shame this, but we cannot have an insert operation that can fail and have the function return a reference.
The iterator that insert (of various flavours) returns will be equal to GeoMap::end() if the insert operation fails. It is the user's responsibility to check this before using it.
Added a new overload of insert to reduce typing (see below)
No changes to allocator policy, just created a simple allocator that passes through GEO_MALLOC and GEO_FREE. Can be switched to Geo::GeoFixedPoolAllocator.
Classes
Name | Description |
---|---|
Geo::GeoMap::const_iterator | Iterator for nonmutable GeoMap. |
Geo::GeoMap::iterator | Iterator for mutable GeoMap. |
Typedefs
Name | Description |
---|---|
allocator_type::difference_type _DiffType | All functions and typedefs match those required by the C++0x standard (except where documented at class level). |
GeoMap< _Kty, _Ty, _Pr, _Alloc > _Myt | All functions and typedefs match those required by the C++0x standard (except where documented at class level). |
GeoPair< const_iterator, const_iterator > _Paircc | All functions and typedefs match those required by the C++0x standard (except where documented at class level). |
GeoPair< iterator, bool > _Pairib | All functions and typedefs match those required by the C++0x standard (except where documented at class level). |
GeoPair< iterator, iterator > _Pairii | All functions and typedefs match those required by the C++0x standard (except where documented at class level). |
allocator_type::pointer _PtrType | All functions and typedefs match those required by the C++0x standard (except where documented at class level). |
allocator_type::reference _RefType | All functions and typedefs match those required by the C++0x standard (except where documented at class level). |
_Alloc allocator_type | All functions and typedefs match those required by the C++0x standard (except where documented at class level). |
allocator_type::const_pointer const_pointer | All functions and typedefs match those required by the C++0x standard (except where documented at class level). |
allocator_type::const_reference const_reference | All functions and typedefs match those required by the C++0x standard (except where documented at class level). |
std::reverse_iterator< const_iterator > const_reverse_iterator | All functions and typedefs match those required by the C++0x standard (except where documented at class level). |
_DiffType difference_type | All functions and typedefs match those required by the C++0x standard (except where documented at class level). |
_Pr key_compare | All functions and typedefs match those required by the C++0x standard (except where documented at class level). |
_Kty key_type | All functions and typedefs match those required by the C++0x standard (except where documented at class level). |
_Ty mapped_type | All functions and typedefs match those required by the C++0x standard (except where documented at class level). |
_PtrType pointer | All functions and typedefs match those required by the C++0x standard (except where documented at class level). |
_RefType reference | All functions and typedefs match those required by the C++0x standard (except where documented at class level). |
std::reverse_iterator< iterator > reverse_iterator | All functions and typedefs match those required by the C++0x standard (except where documented at class level). |
allocator_type::size_type size_type | All functions and typedefs match those required by the C++0x standard (except where documented at class level). |
GeoPair< const _Kty, _Ty > value_type | All functions and typedefs match those required by the C++0x standard (except where documented at class level). |
Friends
Name | Description |
---|---|
friend class const_iterator | All functions and typedefs match those required by the C++0x standard (except where documented at class level). |
friend class iterator | All functions and typedefs match those required by the C++0x standard (except where documented at class level). |
Variables
Name | Description |
---|---|
const size_t max_allocation_size = sizeof(_Node) | All functions and typedefs match those required by the C++0x standard (except where documented at class level). |
Functions
Name | Description |
---|---|
~GeoMap() | All functions and typedefs match those required by the C++0x standard (except where documented at class level). |
begin() | All functions and typedefs match those required by the C++0x standard (except where documented at class level). |
begin() | All functions and typedefs match those required by the C++0x standard (except where documented at class level). |
clear() | All functions and typedefs match those required by the C++0x standard (except where documented at class level). |
count(const key_type &) | All functions and typedefs match those required by the C++0x standard (except where documented at class level). |
empty() | All functions and typedefs match those required by the C++0x standard (except where documented at class level). |
end() | All functions and typedefs match those required by the C++0x standard (except where documented at class level). |
end() | All functions and typedefs match those required by the C++0x standard (except where documented at class level). |
equal_range(const key_type &) | All functions and typedefs match those required by the C++0x standard (except where documented at class level). |
equal_range(const key_type &) | All functions and typedefs match those required by the C++0x standard (except where documented at class level). |
erase(const_iterator, const_iterator) | All functions and typedefs match those required by the C++0x standard (except where documented at class level). |
erase(const key_type &) | All functions and typedefs match those required by the C++0x standard (except where documented at class level). |
erase(const key_type *, const key_type *) | All functions and typedefs match those required by the C++0x standard (except where documented at class level). |
erase(const_iterator) | All functions and typedefs match those required by the C++0x standard (except where documented at class level). |
find(const key_type &) | All functions and typedefs match those required by the C++0x standard (except where documented at class level). |
find(const key_type &) | All functions and typedefs match those required by the C++0x standard (except where documented at class level). |
GeoMap() | All functions and typedefs match those required by the C++0x standard (except where documented at class level). |
GeoMap(const key_compare &, const allocator_type &) | All functions and typedefs match those required by the C++0x standard (except where documented at class level). |
GeoMap(const allocator_type &) | All functions and typedefs match those required by the C++0x standard (except where documented at class level). |
GeoMap(const key_compare &) | All functions and typedefs match those required by the C++0x standard (except where documented at class level). |
get_allocator() | All functions and typedefs match those required by the C++0x standard (except where documented at class level). |
insert(InputIt, InputIt) | All functions and typedefs match those required by the C++0x standard (except where documented at class level). |
insert(const key_type &, const mapped_type &) | One addition to the STL standard is the addition of an insert(key, value) function. |
insert(const value_type &) | All functions and typedefs match those required by the C++0x standard (except where documented at class level). |
insert(const_iterator, const value_type &) | All functions and typedefs match those required by the C++0x standard (except where documented at class level). |
key_comp() | All functions and typedefs match those required by the C++0x standard (except where documented at class level). |
lower_bound(const key_type &) | All functions and typedefs match those required by the C++0x standard (except where documented at class level). |
lower_bound(const key_type &) | All functions and typedefs match those required by the C++0x standard (except where documented at class level). |
max_size() | All functions and typedefs match those required by the C++0x standard (except where documented at class level). |
NonCopyable(NonCopyable &&) | Defaulted to allow move. |
operator=(NonCopyable &&) | Defaulted to allow move. |
rbegin() | All functions and typedefs match those required by the C++0x standard (except where documented at class level). |
rbegin() | All functions and typedefs match those required by the C++0x standard (except where documented at class level). |
rend() | All functions and typedefs match those required by the C++0x standard (except where documented at class level). |
rend() | All functions and typedefs match those required by the C++0x standard (except where documented at class level). |
size() | All functions and typedefs match those required by the C++0x standard (except where documented at class level). |
swap(_Myt &) | All functions and typedefs match those required by the C++0x standard (except where documented at class level). |
upper_bound(const key_type &) | All functions and typedefs match those required by the C++0x standard (except where documented at class level). |
upper_bound(const key_type &) | All functions and typedefs match those required by the C++0x standard (except where documented at class level). |
value_comp() | All functions and typedefs match those required by the C++0x standard (except where documented at class level). |
Geo::GeoMap< _Kty, _Ty, _Pr, _Alloc >::~GeoMap
public: ~GeoMap()
All functions and typedefs match those required by the C++0x standard (except where documented at class level).
iterator Geo::GeoMap< _Kty, _Ty, _Pr, _Alloc >::begin
public: iterator begin()
All functions and typedefs match those required by the C++0x standard (except where documented at class level).
const_iterator Geo::GeoMap< _Kty, _Ty, _Pr, _Alloc >::begin
public: const_iterator begin() const
All functions and typedefs match those required by the C++0x standard (except where documented at class level).
void Geo::GeoMap< _Kty, _Ty, _Pr, _Alloc >::clear
public: void clear()
All functions and typedefs match those required by the C++0x standard (except where documented at class level).
size_type Geo::GeoMap< _Kty, _Ty, _Pr, _Alloc >::count
public: size_type count
(
const key_type & _Keyval
) const
All functions and typedefs match those required by the C++0x standard (except where documented at class level).
bool Geo::GeoMap< _Kty, _Ty, _Pr, _Alloc >::empty
public: bool empty() const
All functions and typedefs match those required by the C++0x standard (except where documented at class level).
iterator Geo::GeoMap< _Kty, _Ty, _Pr, _Alloc >::end
public: iterator end()
All functions and typedefs match those required by the C++0x standard (except where documented at class level).
const_iterator Geo::GeoMap< _Kty, _Ty, _Pr, _Alloc >::end
public: const_iterator end() const
All functions and typedefs match those required by the C++0x standard (except where documented at class level).
_Pairii Geo::GeoMap< _Kty, _Ty, _Pr, _Alloc >::equal_range
public: _Pairii equal_range
(
const key_type & _Keyval
)
All functions and typedefs match those required by the C++0x standard (except where documented at class level).
_Paircc Geo::GeoMap< _Kty, _Ty, _Pr, _Alloc >::equal_range
public: _Paircc equal_range
(
const key_type & _Keyval
) const
All functions and typedefs match those required by the C++0x standard (except where documented at class level).
iterator Geo::GeoMap< _Kty, _Ty, _Pr, _Alloc >::erase
public: iterator erase
(
const_iterator _First,
const_iterator _Last
)
All functions and typedefs match those required by the C++0x standard (except where documented at class level).
size_type Geo::GeoMap< _Kty, _Ty, _Pr, _Alloc >::erase
public: size_type erase
(
const key_type & _Keyval
)
All functions and typedefs match those required by the C++0x standard (except where documented at class level).
void Geo::GeoMap< _Kty, _Ty, _Pr, _Alloc >::erase
public: void erase
(
const key_type * _First,
const key_type * _Last
)
All functions and typedefs match those required by the C++0x standard (except where documented at class level).
iterator Geo::GeoMap< _Kty, _Ty, _Pr, _Alloc >::erase
public: iterator erase
(
const_iterator _Where
)
All functions and typedefs match those required by the C++0x standard (except where documented at class level).
const_iterator Geo::GeoMap< _Kty, _Ty, _Pr, _Alloc >::find
public: const_iterator find
(
const key_type & _Keyval
) const
All functions and typedefs match those required by the C++0x standard (except where documented at class level).
iterator Geo::GeoMap< _Kty, _Ty, _Pr, _Alloc >::find
public: iterator find
(
const key_type & _Keyval
)
All functions and typedefs match those required by the C++0x standard (except where documented at class level).
Geo::GeoMap< _Kty, _Ty, _Pr, _Alloc >::GeoMap
public: GeoMap()
All functions and typedefs match those required by the C++0x standard (except where documented at class level).
Geo::GeoMap< _Kty, _Ty, _Pr, _Alloc >::GeoMap
public: GeoMap
(
const key_compare & _Pred,
const allocator_type & _Al
)
All functions and typedefs match those required by the C++0x standard (except where documented at class level).
Geo::GeoMap< _Kty, _Ty, _Pr, _Alloc >::GeoMap
public: GeoMap
(
const allocator_type & _Al
)
All functions and typedefs match those required by the C++0x standard (except where documented at class level).
Geo::GeoMap< _Kty, _Ty, _Pr, _Alloc >::GeoMap
public: GeoMap
(
const key_compare & _Pred
)
All functions and typedefs match those required by the C++0x standard (except where documented at class level).
allocator_type Geo::GeoMap< _Kty, _Ty, _Pr, _Alloc >::get_allocator
public: allocator_type get_allocator() const
All functions and typedefs match those required by the C++0x standard (except where documented at class level).
bool Geo::GeoMap< _Kty, _Ty, _Pr, _Alloc >::insert
public: bool insert
(
InputIt first,
InputIt last
)
All functions and typedefs match those required by the C++0x standard (except where documented at class level).
_Pairib Geo::GeoMap< _Kty, _Ty, _Pr, _Alloc >::insert
public: _Pairib insert
(
const key_type & key,
const mapped_type & val
)
One addition to the STL standard is the addition of an insert(key, value) function.
This would usually be available as operator[], but without exception handling enabled we would have no way to detect a failure in the standard function. Therefore it was considered better to add a new function overload than to change the behaviour of an existing function.
_Pairib Geo::GeoMap< _Kty, _Ty, _Pr, _Alloc >::insert
public: _Pairib insert
(
const value_type & val
)
All functions and typedefs match those required by the C++0x standard (except where documented at class level).
iterator Geo::GeoMap< _Kty, _Ty, _Pr, _Alloc >::insert
public: iterator insert
(
const_iterator hint,
const value_type & val
)
All functions and typedefs match those required by the C++0x standard (except where documented at class level).
key_compare Geo::GeoMap< _Kty, _Ty, _Pr, _Alloc >::key_comp
public: key_compare key_comp() const
All functions and typedefs match those required by the C++0x standard (except where documented at class level).
const_iterator Geo::GeoMap< _Kty, _Ty, _Pr, _Alloc >::lower_bound
public: const_iterator lower_bound
(
const key_type & _Keyval
) const
All functions and typedefs match those required by the C++0x standard (except where documented at class level).
iterator Geo::GeoMap< _Kty, _Ty, _Pr, _Alloc >::lower_bound
public: iterator lower_bound
(
const key_type & _Keyval
)
All functions and typedefs match those required by the C++0x standard (except where documented at class level).
size_type Geo::GeoMap< _Kty, _Ty, _Pr, _Alloc >::max_size
public: size_type max_size() const
All functions and typedefs match those required by the C++0x standard (except where documented at class level).
Geo::NonCopyable::NonCopyable
public: NonCopyable
(
NonCopyable &&
)
Defaulted to allow move.
NonCopyable& Geo::NonCopyable::operator=
public: NonCopyable & operator=
(
NonCopyable &&
)
Defaulted to allow move.
const_reverse_iterator Geo::GeoMap< _Kty, _Ty, _Pr, _Alloc >::rbegin
public: const_reverse_iterator rbegin() const
All functions and typedefs match those required by the C++0x standard (except where documented at class level).
reverse_iterator Geo::GeoMap< _Kty, _Ty, _Pr, _Alloc >::rbegin
public: reverse_iterator rbegin()
All functions and typedefs match those required by the C++0x standard (except where documented at class level).
const_reverse_iterator Geo::GeoMap< _Kty, _Ty, _Pr, _Alloc >::rend
public: const_reverse_iterator rend() const
All functions and typedefs match those required by the C++0x standard (except where documented at class level).
reverse_iterator Geo::GeoMap< _Kty, _Ty, _Pr, _Alloc >::rend
public: reverse_iterator rend()
All functions and typedefs match those required by the C++0x standard (except where documented at class level).
size_type Geo::GeoMap< _Kty, _Ty, _Pr, _Alloc >::size
public: size_type size() const
All functions and typedefs match those required by the C++0x standard (except where documented at class level).
void Geo::GeoMap< _Kty, _Ty, _Pr, _Alloc >::swap
public: void swap
(
_Myt & rhs
)
All functions and typedefs match those required by the C++0x standard (except where documented at class level).
iterator Geo::GeoMap< _Kty, _Ty, _Pr, _Alloc >::upper_bound
public: iterator upper_bound
(
const key_type & _Keyval
)
All functions and typedefs match those required by the C++0x standard (except where documented at class level).
const_iterator Geo::GeoMap< _Kty, _Ty, _Pr, _Alloc >::upper_bound
public: const_iterator upper_bound
(
const key_type & _Keyval
) const
All functions and typedefs match those required by the C++0x standard (except where documented at class level).
value_compare Geo::GeoMap< _Kty, _Ty, _Pr, _Alloc >::value_comp
public: value_compare value_comp() const
All functions and typedefs match those required by the C++0x standard (except where documented at class level).