Cogs.Core
Classes | Public Types | Public Member Functions | Private Attributes | List of all members
Cogs::Collections::SmallVector< T, Size > Class Template Reference
Inheritance diagram for Cogs::Collections::SmallVector< T, Size >:
Cogs::Collections::SmallVectorImpl< T > Cogs::Collections::SmallVectorImplBase< T, std::is_trivially_copyable< T >::value > Cogs::Collections::SmallVectorTemplateBase< T > Cogs::Collections::SmallVectorBase

Classes

struct  SmallVectorStorage
 
struct  SmallVectorStorage< Ts, 0 >
 
struct  SmallVectorStorage< Ts, 1 >
 

Public Types

using value_type = T
 
using difference_type = ptrdiff_t
 
using pointer = const T *
 
using reference = const T &
 

Public Member Functions

 SmallVector (size_t size)
 
 SmallVector (Memory::Allocator *allocator)
 
 SmallVector (SmallVector &&other) noexcept
 
 SmallVector (SmallVectorImpl< T > &&other) noexcept
 
 SmallVector (const SmallVector &other)
 
 SmallVector (const SmallVectorImpl< T > &other)
 
 SmallVector (std::initializer_list< T > il)
 
SmallVectoroperator= (const SmallVector &other)
 
SmallVectoroperator= (SmallVector &&other) noexcept
 
SmallVectoroperator= (SmallVectorImpl< T > &&other) noexcept
 
- Public Member Functions inherited from Cogs::Collections::SmallVectorImpl< T >
SmallVectorImploperator= (const SmallVectorImpl &other)
 
SmallVectorImploperator= (SmallVectorImpl &&other) noexcept
 
void resize (size_t newSize)
 
void reserve (size_t newCapacity)
 
void clear ()
 
template<typename T1 >
void assign (T1 first, T1 last)
 
void assign (std::initializer_list< T > il)
 
template<typename T1 >
void append (T1 first, T1 last)
 
void append (std::initializer_list< T > il)
 
- Public Member Functions inherited from Cogs::Collections::SmallVectorImplBase< T, std::is_trivially_copyable< T >::value >
void push_back (const T &t)
 
void push_back (T &&t)
 
void emplace_back (Args &&... args)
 
void pop_back ()
 
void erase (const T *pos)
 
- Public Member Functions inherited from Cogs::Collections::SmallVectorTemplateBase< T >
bool empty () const
 
size_t size () const
 
size_t capacity () const
 
T * data ()
 
const T * data () const
 
T * begin ()
 
T * end ()
 
const T * begin () const
 
const T * end () const
 
const T * cbegin () const
 
const T * cend () const
 
T & operator[] (const size_t index)
 
const T & operator[] (const size_t index) const
 
T & back ()
 
const T & back () const
 
T & front ()
 
const T & front () const
 

Private Attributes

SmallVectorStorage< T, Size > inlineStorage
 

Additional Inherited Members

- Protected Member Functions inherited from Cogs::Collections::SmallVectorImpl< T >
 SmallVectorImpl (size_t capacity, Memory::Allocator *allocator=Memory::Allocator::overflowAllocator())
 
void release ()
 
- Protected Member Functions inherited from Cogs::Collections::SmallVectorImplBase< T, std::is_trivially_copyable< T >::value >
 SmallVectorImplBase (size_t capacity, Memory::Allocator *allocator)
 
void grow (size_t minSize=0)
 
void initialize (T *first, const T *last)
 
void destroy (T *first, const T *last)
 
void moveNew (T1 first, T1 last, T2 dest)
 
void move (T1 first, T1 last, T2 dest)
 
void copy (T1 first, T1 last, T2 dest)
 
void copyNew (T1 first, T1 last, T2 dest)
 
- Protected Member Functions inherited from Cogs::Collections::SmallVectorTemplateBase< T >
 SmallVectorTemplateBase (size_t capacity, Memory::Allocator *allocator)
 
bool isSmall () const
 
void setSize (size_t newSize)
 
void reset ()
 
- Protected Member Functions inherited from Cogs::Collections::SmallVectorBase
 SmallVectorBase (void *data, size_t capacity, Memory::Allocator *allocator)
 
void growPod (const void *firstElement, const size_t minSizeBytes)
 
size_t sizeInBytes () const
 
size_t capacityInBytes () const
 
- Protected Attributes inherited from Cogs::Collections::SmallVectorTemplateBase< T >
uint8_t firstElement [sizeof(T)]
 
- Protected Attributes inherited from Cogs::Collections::SmallVectorBase
void * firstPtr
 
void * lastPtr
 
void * capacityPtr
 
Memory::Allocatorallocator
 

Detailed Description

template<typename T, size_t Size>
class Cogs::Collections::SmallVector< T, Size >

Definition at line 430 of file SmallVector.h.

Member Typedef Documentation

◆ difference_type

template<typename T , size_t Size>
using Cogs::Collections::SmallVector< T, Size >::difference_type = ptrdiff_t

Definition at line 444 of file SmallVector.h.

◆ pointer

template<typename T , size_t Size>
using Cogs::Collections::SmallVector< T, Size >::pointer = const T*

Definition at line 445 of file SmallVector.h.

◆ reference

template<typename T , size_t Size>
using Cogs::Collections::SmallVector< T, Size >::reference = const T&

Definition at line 446 of file SmallVector.h.

◆ value_type

template<typename T , size_t Size>
using Cogs::Collections::SmallVector< T, Size >::value_type = T

Definition at line 443 of file SmallVector.h.

Constructor & Destructor Documentation

◆ SmallVector() [1/8]

template<typename T , size_t Size>
Cogs::Collections::SmallVector< T, Size >::SmallVector ( )
inline

Definition at line 448 of file SmallVector.h.

◆ SmallVector() [2/8]

template<typename T , size_t Size>
Cogs::Collections::SmallVector< T, Size >::SmallVector ( size_t  size)
inlineexplicit

Definition at line 449 of file SmallVector.h.

◆ SmallVector() [3/8]

template<typename T , size_t Size>
Cogs::Collections::SmallVector< T, Size >::SmallVector ( Memory::Allocator allocator)
inline

Definition at line 450 of file SmallVector.h.

◆ SmallVector() [4/8]

template<typename T , size_t Size>
Cogs::Collections::SmallVector< T, Size >::SmallVector ( SmallVector< T, Size > &&  other)
inlinenoexcept

Definition at line 452 of file SmallVector.h.

◆ SmallVector() [5/8]

template<typename T , size_t Size>
Cogs::Collections::SmallVector< T, Size >::SmallVector ( SmallVectorImpl< T > &&  other)
inlinenoexcept

Definition at line 457 of file SmallVector.h.

◆ SmallVector() [6/8]

template<typename T , size_t Size>
Cogs::Collections::SmallVector< T, Size >::SmallVector ( const SmallVector< T, Size > &  other)
inline

Definition at line 462 of file SmallVector.h.

◆ SmallVector() [7/8]

template<typename T , size_t Size>
Cogs::Collections::SmallVector< T, Size >::SmallVector ( const SmallVectorImpl< T > &  other)
inline

Definition at line 467 of file SmallVector.h.

◆ SmallVector() [8/8]

template<typename T , size_t Size>
Cogs::Collections::SmallVector< T, Size >::SmallVector ( std::initializer_list< T >  il)
inline

Definition at line 472 of file SmallVector.h.

Member Function Documentation

◆ operator=() [1/3]

template<typename T , size_t Size>
SmallVector & Cogs::Collections::SmallVector< T, Size >::operator= ( const SmallVector< T, Size > &  other)
inline

Definition at line 477 of file SmallVector.h.

◆ operator=() [2/3]

template<typename T , size_t Size>
SmallVector & Cogs::Collections::SmallVector< T, Size >::operator= ( SmallVector< T, Size > &&  other)
inlinenoexcept

Definition at line 483 of file SmallVector.h.

◆ operator=() [3/3]

template<typename T , size_t Size>
SmallVector & Cogs::Collections::SmallVector< T, Size >::operator= ( SmallVectorImpl< T > &&  other)
inlinenoexcept

Definition at line 489 of file SmallVector.h.

Member Data Documentation

◆ inlineStorage

template<typename T , size_t Size>
SmallVectorStorage<T, Size> Cogs::Collections::SmallVector< T, Size >::inlineStorage
private

Definition at line 496 of file SmallVector.h.


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