Ogre::SmallVectorTemplateBase< T, true > Class Template Reference

SmallVectorTemplateBase<isPodLike = true> - This is where we put method implementations that are designed to work with POD-like T's. More...

`#include <OgreSmallVector.h>`

Inheritance diagram for Ogre::SmallVectorTemplateBase< T, true >:
[legend]

List of all members.

## Public Types

typedef size_t | size_type
typedef ptrdiff_t | difference_type
typedef T | value_type
typedef T * | iterator
typedef const T * | const_iterator
typedef std::reverse_iterator < const_iterator > | const_reverse_iterator
typedef std::reverse_iterator < iterator > | reverse_iterator
typedef T & | reference
typedef const T & | const_reference
typedef T * | pointer
typedef const T * | const_pointer

## Public Member Functions

| SmallVectorTemplateBase (size_t Size)
void | grow (size_t MinSize=0)
| grow - double the size of the allocated memory, guaranteeing space for at least one more element or MinSize if specified.
iterator | begin ()
const_iterator | begin () const
iterator | end ()
const_iterator | end () const
reverse_iterator | rbegin ()
const_reverse_iterator | rbegin () const
reverse_iterator | rend ()
const_reverse_iterator | rend () const
size_type | size () const
size_type | max_size () const
size_t | capacity () const
| capacity - Return the total number of elements in the currently allocated buffer.
pointer | data ()
| data - Return a pointer to the vector's buffer, even if empty().
const_pointer | data () const
| data - Return a pointer to the vector's buffer, even if empty().
reference | operator[] (unsigned idx)
const_reference | operator[] (unsigned idx) const
reference | front ()
const_reference | front () const
reference | back ()
const_reference | back () const
bool | empty () const

## Static Public Member Functions

static void | destroy_range (T *, T *)
template<typename It1 , typename It2 >
static void | uninitialized_copy (It1 I, It1 E, It2 Dest)
| uninitialized_copy - Copy the range [I, E) onto the uninitialized memory starting with "Dest", constructing elements into it as needed.
template<typename T1 , typename T2 >
static void | uninitialized_copy (T1 *I, T1 *E, T2 *Dest)
| uninitialized_copy - Copy the range [I, E) onto the uninitialized memory starting with "Dest", constructing elements into it as needed.

## Protected Member Functions

void | setEnd (T *P)
iterator | capacity_ptr ()
const_iterator | capacity_ptr () const
bool | isSmall () const
| isSmall - Return true if this is a smallvector which has not had dynamic memory allocated for it.
size_t | size_in_bytes () const
| size_in_bytes - This returns size()*sizeof(T).
size_t | capacity_in_bytes () const
| capacity_in_bytes - This returns capacity()*sizeof(T).
void | grow_pod (size_t MinSizeInBytes, size_t TSize)
| grow_pod - This is an implementation of the grow() method which only works

## Protected Attributes

void * | BeginX
void * | EndX
void * | CapacityX
union Ogre::SmallVectorBase::U | FirstEl

## Detailed Description

### template<typename T>
class Ogre::SmallVectorTemplateBase< T, true >

SmallVectorTemplateBase<isPodLike = true> - This is where we put method implementations that are designed to work with POD-like T's.

Definition at line 290 of file OgreSmallVector.h.

## Member Typedef Documentation

template<typename T>

typedef const T* Ogre::SmallVectorTemplateCommon< T >::const_iterator`[inherited]`

Definition at line 173 of file OgreSmallVector.h.

template<typename T>

typedef const T* Ogre::SmallVectorTemplateCommon< T >::const_pointer`[inherited]`

Definition at line 181 of file OgreSmallVector.h.

template<typename T>

typedef const T& Ogre::SmallVectorTemplateCommon< T >::const_reference`[inherited]`

Definition at line 179 of file OgreSmallVector.h.

template<typename T>

typedef std::reverse_iterator<const_iterator> Ogre::SmallVectorTemplateCommon< T >::const_reverse_iterator`[inherited]`

Definition at line 175 of file OgreSmallVector.h.

template<typename T>

typedef ptrdiff_t Ogre::SmallVectorTemplateCommon< T >::difference_type`[inherited]`

Definition at line 170 of file OgreSmallVector.h.

template<typename T>

typedef T* Ogre::SmallVectorTemplateCommon< T >::iterator`[inherited]`

Reimplemented in Ogre::SmallVectorImpl< T >, Ogre::SmallVectorImpl< PMTriangle * >, and Ogre::SmallVectorImpl< PMVertex * >.

Definition at line 172 of file OgreSmallVector.h.

template<typename T>

typedef T* Ogre::SmallVectorTemplateCommon< T >::pointer`[inherited]`

Definition at line 180 of file OgreSmallVector.h.

template<typename T>

typedef T& Ogre::SmallVectorTemplateCommon< T >::reference`[inherited]`

Definition at line 178 of file OgreSmallVector.h.

template<typename T>

typedef std::reverse_iterator<iterator> Ogre::SmallVectorTemplateCommon< T >::reverse_iterator`[inherited]`

Definition at line 176 of file OgreSmallVector.h.

template<typename T>

typedef size_t Ogre::SmallVectorTemplateCommon< T >::size_type`[inherited]`

Reimplemented in Ogre::SmallVectorImpl< T >, Ogre::SmallVectorImpl< PMTriangle * >, and Ogre::SmallVectorImpl< PMVertex * >.

Definition at line 169 of file OgreSmallVector.h.

template<typename T>

typedef T Ogre::SmallVectorTemplateCommon< T >::value_type`[inherited]`

Definition at line 171 of file OgreSmallVector.h.

## Constructor & Destructor Documentation

template<typename T >

Ogre::SmallVectorTemplateBase< T, true >::SmallVectorTemplateBase | ( | size_t | Size | ) |

Definition at line 292 of file OgreSmallVector.h.

## Member Function Documentation

template<typename T>

reference Ogre::SmallVectorTemplateCommon< T >::back | ( |  | ) | `[inherited]`

Definition at line 227 of file OgreSmallVector.h.

Referenced by Ogre::SmallVectorImpl< PMVertex * >::insert(), and Ogre::SmallVectorImpl< PMVertex * >::pop_back_val().

template<typename T>

const_reference Ogre::SmallVectorTemplateCommon< T >::back | ( |  | ) | const`[inherited]`

Definition at line 230 of file OgreSmallVector.h.

template<typename T>

iterator Ogre::SmallVectorTemplateCommon< T >::begin | ( |  | ) | `[inherited]`

Definition at line 184 of file OgreSmallVector.h.

Referenced by Ogre::SmallVectorImpl< PMVertex * >::assign(), Ogre::SmallVectorTemplateCommon< PMVertex * >::capacity(), Ogre::SmallVectorImpl< PMVertex * >::clear(), Ogre::SmallVectorTemplateCommon< PMVertex * >::data(), Ogre::SmallVectorTemplateCommon< PMVertex * >::front(), Ogre::SmallVectorImpl< PMVertex * >::insert(), Ogre::SmallVectorImpl< PMVertex * >::operator<(), Ogre::SmallVectorImpl< T >::operator=(), Ogre::SmallVectorImpl< PMVertex * >::operator==(), Ogre::SmallVectorTemplateCommon< PMVertex * >::operator[](), Ogre::SmallVectorTemplateCommon< PMVertex * >::rend(), Ogre::SmallVectorImpl< PMVertex * >::resize(), Ogre::SmallVectorImpl< PMVertex * >::set_size(), Ogre::SmallVectorTemplateCommon< PMVertex * >::size(), Ogre::SmallVectorImpl< T >::swap(), and Ogre::SmallVectorImpl< PMVertex * >::~SmallVectorImpl().

template<typename T>

const_iterator Ogre::SmallVectorTemplateCommon< T >::begin | ( |  | ) | const`[inherited]`

Definition at line 185 of file OgreSmallVector.h.

template<typename T>

size_t Ogre::SmallVectorTemplateCommon< T >::capacity | ( |  | ) | const`[inherited]`

capacity - Return the total number of elements in the currently allocated buffer.

Definition at line 204 of file OgreSmallVector.h.

Referenced by Ogre::SmallVectorImpl< PMVertex * >::assign(), Ogre::SmallVectorImpl< PMVertex * >::reserve(), Ogre::SmallVectorImpl< PMVertex * >::resize(), Ogre::SmallVectorImpl< PMVertex * >::set_size(), and Ogre::SmallVectorImpl< T >::swap().

size_t Ogre::SmallVectorBase::capacity_in_bytes | ( |  | ) | const`[protected, inherited]`

capacity_in_bytes - This returns capacity()*sizeof(T).

Definition at line 149 of file OgreSmallVector.h.

References Ogre::SmallVectorBase::BeginX, and Ogre::SmallVectorBase::CapacityX.

template<typename T>

iterator Ogre::SmallVectorTemplateCommon< T >::capacity_ptr | ( |  | ) | `[protected, inherited]`

Definition at line 189 of file OgreSmallVector.h.

Referenced by Ogre::SmallVectorImpl< PMVertex * >::append(), and Ogre::SmallVectorTemplateCommon< PMVertex * >::capacity().

template<typename T>

const_iterator Ogre::SmallVectorTemplateCommon< T >::capacity_ptr | ( |  | ) | const`[protected, inherited]`

Definition at line 190 of file OgreSmallVector.h.

template<typename T>

pointer Ogre::SmallVectorTemplateCommon< T >::data | ( |  | ) | `[inherited]`

data - Return a pointer to the vector's buffer, even if empty().

Definition at line 207 of file OgreSmallVector.h.

template<typename T>

const_pointer Ogre::SmallVectorTemplateCommon< T >::data | ( |  | ) | const`[inherited]`

data - Return a pointer to the vector's buffer, even if empty().

Definition at line 209 of file OgreSmallVector.h.

template<typename T >

static void Ogre::SmallVectorTemplateBase< T, true >::destroy_range | ( | T * | ,
|  | T * |
| ) |  | `[static]`

Definition at line 295 of file OgreSmallVector.h.

bool Ogre::SmallVectorBase::empty | ( |  | ) | const`[inherited]`

Definition at line 158 of file OgreSmallVector.h.

References Ogre::SmallVectorBase::BeginX, and Ogre::SmallVectorBase::EndX.

Referenced by Ogre::SmallVector< PMTriangle *, 8 >::SmallVector().

template<typename T>

iterator Ogre::SmallVectorTemplateCommon< T >::end | ( | void |  | ) | `[inherited]`

Definition at line 186 of file OgreSmallVector.h.

Referenced by Ogre::SmallVectorImpl< PMVertex * >::append(), Ogre::SmallVectorImpl< PMVertex * >::assign(), Ogre::SmallVectorTemplateCommon< PMVertex * >::back(), Ogre::SmallVectorImpl< PMVertex * >::clear(), Ogre::SmallVectorImpl< PMVertex * >::erase(), Ogre::SmallVectorImpl< PMVertex * >::insert(), Ogre::SmallVectorImpl< PMVertex * >::operator<(), Ogre::SmallVectorImpl< T >::operator=(), Ogre::SmallVectorImpl< PMVertex * >::operator==(), Ogre::SmallVectorTemplateCommon< PMVertex * >::operator[](), Ogre::SmallVectorImpl< PMVertex * >::pop_back(), Ogre::SmallVectorImpl< PMVertex * >::push_back(), Ogre::SmallVectorTemplateCommon< PMVertex * >::rbegin(), Ogre::SmallVectorImpl< PMVertex * >::resize(), Ogre::SmallVectorTemplateCommon< PMVertex * >::size(), Ogre::SmallVectorImpl< T >::swap(), and Ogre::SmallVectorImpl< PMVertex * >::~SmallVectorImpl().

template<typename T>

const_iterator Ogre::SmallVectorTemplateCommon< T >::end | ( | void |  | ) | const`[inherited]`

Definition at line 187 of file OgreSmallVector.h.

template<typename T>

reference Ogre::SmallVectorTemplateCommon< T >::front | ( |  | ) | `[inherited]`

Definition at line 220 of file OgreSmallVector.h.

template<typename T>

const_reference Ogre::SmallVectorTemplateCommon< T >::front | ( |  | ) | const`[inherited]`

Definition at line 223 of file OgreSmallVector.h.

template<typename T >

void Ogre::SmallVectorTemplateBase< T, true >::grow | ( | size_t | MinSize = `0` | ) |

grow - double the size of the allocated memory, guaranteeing space for at least one more element or MinSize if specified.

Definition at line 317 of file OgreSmallVector.h.

References Ogre::SmallVectorBase::grow_pod().

void Ogre::SmallVectorBase::grow_pod | ( | size_t | MinSizeInBytes,
|  | size_t | TSize
| ) |  | `[protected, inherited]`

grow_pod - This is an implementation of the grow() method which only works

on POD-like data types and is out of line to reduce code duplication.

Referenced by grow().

bool Ogre::SmallVectorBase::isSmall | ( |  | ) | const`[protected, inherited]`

isSmall - Return true if this is a smallvector which has not had dynamic memory allocated for it.

Definition at line 139 of file OgreSmallVector.h.

References Ogre::SmallVectorBase::BeginX, and Ogre::SmallVectorBase::FirstEl.

Referenced by Ogre::SmallVectorImpl< T >::swap(), and Ogre::SmallVectorImpl< PMVertex * >::~SmallVectorImpl().

template<typename T>

size_type Ogre::SmallVectorTemplateCommon< T >::max_size | ( |  | ) | const`[inherited]`

Definition at line 200 of file OgreSmallVector.h.

template<typename T>

reference Ogre::SmallVectorTemplateCommon< T >::operator[] | ( | unsigned | idx | ) | `[inherited]`

Definition at line 211 of file OgreSmallVector.h.

template<typename T>

const_reference Ogre::SmallVectorTemplateCommon< T >::operator[] | ( | unsigned | idx | ) | const`[inherited]`

Definition at line 215 of file OgreSmallVector.h.

template<typename T>

reverse_iterator Ogre::SmallVectorTemplateCommon< T >::rbegin | ( |  | ) | `[inherited]`

Definition at line 194 of file OgreSmallVector.h.

template<typename T>

const_reverse_iterator Ogre::SmallVectorTemplateCommon< T >::rbegin | ( |  | ) | const`[inherited]`

Definition at line 195 of file OgreSmallVector.h.

template<typename T>

reverse_iterator Ogre::SmallVectorTemplateCommon< T >::rend | ( |  | ) | `[inherited]`

Definition at line 196 of file OgreSmallVector.h.

template<typename T>

const_reverse_iterator Ogre::SmallVectorTemplateCommon< T >::rend | ( |  | ) | const`[inherited]`

Definition at line 197 of file OgreSmallVector.h.

template<typename T>

void Ogre::SmallVectorTemplateCommon< T >::setEnd | ( | T * | P | ) | `[protected, inherited]`

Definition at line 165 of file OgreSmallVector.h.

Referenced by Ogre::SmallVectorImpl< PMVertex * >::append(), Ogre::SmallVectorImpl< PMVertex * >::assign(), Ogre::SmallVectorImpl< PMVertex * >::erase(), Ogre::SmallVectorImpl< PMVertex * >::insert(), Ogre::SmallVectorImpl< PMVertex * >::pop_back(), Ogre::SmallVectorImpl< PMVertex * >::push_back(), Ogre::SmallVectorImpl< PMVertex * >::resize(), Ogre::SmallVectorImpl< PMVertex * >::set_size(), and Ogre::SmallVectorImpl< T >::swap().

template<typename T>

size_type Ogre::SmallVectorTemplateCommon< T >::size | ( | void |  | ) | const`[inherited]`

Definition at line 199 of file OgreSmallVector.h.

Referenced by Ogre::SmallVectorImpl< PMVertex * >::append(), Ogre::SmallVectorImpl< PMVertex * >::insert(), Ogre::SmallVectorImpl< T >::operator=(), Ogre::SmallVectorImpl< PMVertex * >::operator==(), Ogre::SmallVectorImpl< PMVertex * >::resize(), and Ogre::SmallVectorImpl< T >::swap().

size_t Ogre::SmallVectorBase::size_in_bytes | ( |  | ) | const`[protected, inherited]`

size_in_bytes - This returns size()*sizeof(T).

Definition at line 144 of file OgreSmallVector.h.

References Ogre::SmallVectorBase::BeginX, and Ogre::SmallVectorBase::EndX.

template<typename T >
template<typename It1 , typename It2 >

static void Ogre::SmallVectorTemplateBase< T, true >::uninitialized_copy | ( | It1 | I,
|  | It1 | E,
|  | It2 | Dest
| ) |  | `[static]`

uninitialized_copy - Copy the range [I, E) onto the uninitialized memory starting with "Dest", constructing elements into it as needed.

Definition at line 300 of file OgreSmallVector.h.

References Ogre::SmallVectorTemplateBase< T, isPodLike >::uninitialized_copy().

template<typename T >
template<typename T1 , typename T2 >

static void Ogre::SmallVectorTemplateBase< T, true >::uninitialized_copy | ( | T1 * | I,
|  | T1 * | E,
|  | T2 * | Dest
| ) |  | `[static]`

uninitialized_copy - Copy the range [I, E) onto the uninitialized memory starting with "Dest", constructing elements into it as needed.

Definition at line 308 of file OgreSmallVector.h.

## Member Data Documentation

void* Ogre::SmallVectorBase::BeginX`[protected, inherited]`

Definition at line 118 of file OgreSmallVector.h.

Referenced by Ogre::SmallVectorTemplateCommon< PMVertex * >::begin(), Ogre::SmallVectorBase::capacity_in_bytes(), Ogre::SmallVectorImpl< PMVertex * >::clear(), Ogre::SmallVectorBase::empty(), Ogre::SmallVectorBase::isSmall(), Ogre::SmallVectorBase::size_in_bytes(), and Ogre::SmallVectorImpl< T >::swap().

void * Ogre::SmallVectorBase::CapacityX`[protected, inherited]`

Definition at line 118 of file OgreSmallVector.h.

Referenced by Ogre::SmallVectorBase::capacity_in_bytes(), Ogre::SmallVectorTemplateCommon< PMVertex * >::capacity_ptr(), Ogre::SmallVectorImpl< PMVertex * >::insert(), Ogre::SmallVectorImpl< PMVertex * >::push_back(), and Ogre::SmallVectorImpl< T >::swap().

void * Ogre::SmallVectorBase::EndX`[protected, inherited]`

Definition at line 118 of file OgreSmallVector.h.

Referenced by Ogre::SmallVectorImpl< PMVertex * >::clear(), Ogre::SmallVectorBase::empty(), Ogre::SmallVectorTemplateCommon< PMVertex * >::end(), Ogre::SmallVectorTemplateCommon< PMVertex * >::setEnd(), Ogre::SmallVectorBase::size_in_bytes(), and Ogre::SmallVectorImpl< T >::swap().

union Ogre::SmallVectorBase::U Ogre::SmallVectorBase::FirstEl`[protected, inherited]`

Referenced by Ogre::SmallVectorBase::isSmall().

The documentation for this class was generated from the following file:

- OgreSmallVector.h

Copyright © 2012 Torus Knot Software Ltd
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
Last modified Sun Sep 2 2012 07:27:40