CeresEngine 0.2.0
A game development framework
Loading...
Searching...
No Matches
StaticVector.hpp File Reference
#include "Vector.hpp"
#include "CeresEngine/Macros.hpp"
#include "CeresEngine/Foundation/Allocator.hpp"
#include "CeresEngine/Foundation/Hash.hpp"
#include <cstddef>
#include <iterator>
#include <memory>
#include <type_traits>
#include <stdexcept>
#include <cassert>

Go to the source code of this file.

Classes

struct  CeresEngine::StaticVector< T, Capacity >
 StaticVector is almost a drop-in replacement of std::vector, but has a fixed capacity as a template argument. More...
 
struct  CeresEngine::StaticVector< T, Capacity >::FakeAllocator
 

Namespaces

namespace  CeresEngine
 

Macros

#define CE_STATIC_VECTOR_ERROR_HANDLING_NONE   0
 
#define CE_STATIC_VECTOR_ERROR_HANDLING_THROW   1
 
#define CE_STATIC_VECTOR_ERROR_HANDLING_ASSERT   2
 
#define CE_STATIC_VECTOR_ERROR_HANDLING_RESCUE   3
 
#define CE_STATIC_VECTOR_ERROR_HANDLING_ASSERT_AND_THROW   4
 
#define CE_STATIC_VECTOR_ERROR_HANDLING_ASSERT_AND_RESCUE   5
 
#define CE_STATIC_VECTOR_ERROR_HANDLING   CE_STATIC_VECTOR_ERROR_HANDLING_THROW
 
#define CE_STATIC_VECTOR_OUT_OF_RANGE_IF(cond, rescue_return)
 
#define CE_STATIC_VECTOR_BOUNDS_CHECK(i)   assert((i) < this->size())
 

Functions

template<typename T , size_t CapacityA, size_t CapacityB>
bool CeresEngine::operator== (const StaticVector< T, CapacityA > &a, const StaticVector< T, CapacityB > &b)
 
template<typename T , size_t CapacityA, size_t CapacityB>
bool CeresEngine::operator!= (const StaticVector< T, CapacityA > &a, const StaticVector< T, CapacityB > &b)
 

Macro Definition Documentation

◆ CE_STATIC_VECTOR_BOUNDS_CHECK

#define CE_STATIC_VECTOR_BOUNDS_CHECK (   i)    assert((i) < this->size())

◆ CE_STATIC_VECTOR_ERROR_HANDLING

#define CE_STATIC_VECTOR_ERROR_HANDLING   CE_STATIC_VECTOR_ERROR_HANDLING_THROW

◆ CE_STATIC_VECTOR_ERROR_HANDLING_ASSERT

#define CE_STATIC_VECTOR_ERROR_HANDLING_ASSERT   2

◆ CE_STATIC_VECTOR_ERROR_HANDLING_ASSERT_AND_RESCUE

#define CE_STATIC_VECTOR_ERROR_HANDLING_ASSERT_AND_RESCUE   5

◆ CE_STATIC_VECTOR_ERROR_HANDLING_ASSERT_AND_THROW

#define CE_STATIC_VECTOR_ERROR_HANDLING_ASSERT_AND_THROW   4

◆ CE_STATIC_VECTOR_ERROR_HANDLING_NONE

#define CE_STATIC_VECTOR_ERROR_HANDLING_NONE   0

◆ CE_STATIC_VECTOR_ERROR_HANDLING_RESCUE

#define CE_STATIC_VECTOR_ERROR_HANDLING_RESCUE   3

◆ CE_STATIC_VECTOR_ERROR_HANDLING_THROW

#define CE_STATIC_VECTOR_ERROR_HANDLING_THROW   1

◆ CE_STATIC_VECTOR_OUT_OF_RANGE_IF

#define CE_STATIC_VECTOR_OUT_OF_RANGE_IF (   cond,
  rescue_return 
)
Value:
if(cond) \
throw std::out_of_range("itlib::StaticVector out of range")