CeresEngine 0.2.0
A game development framework
Loading...
Searching...
No Matches
OffsetPtr.hpp File Reference
#include "CeresEngine/Macros.hpp"
#include <iterator>
#include <type_traits>

Go to the source code of this file.

Classes

class  CeresEngine::OffsetPointerCaster< T *, OffsetType >
 
class  CeresEngine::OffsetPtr< PointedType, DifferenceType, OffsetType, OffsetAlignment >
 A special pointer that stores the pointer as an offset of the pointee to the OffsetPtr instance itself. More...
 
struct  CeresEngine::OffsetPtr< PointedType, DifferenceType, OffsetType, OffsetAlignment >::static_cast_tag
 
struct  CeresEngine::OffsetPtr< PointedType, DifferenceType, OffsetType, OffsetAlignment >::const_cast_tag
 
struct  CeresEngine::OffsetPtr< PointedType, DifferenceType, OffsetType, OffsetAlignment >::dynamic_cast_tag
 
struct  CeresEngine::OffsetPtr< PointedType, DifferenceType, OffsetType, OffsetAlignment >::reinterpret_cast_tag
 

Namespaces

namespace  CeresEngine
 

Functions

template<class OffsetType >
OffsetType CeresEngine::offset_ptr_offset (const volatile void *ptr, const volatile void *thisPtr)
 
template<class OffsetType >
OffsetType CeresEngine::offset_ptr_offset_from_other (const volatile void *thisPtr, const volatile void *otherPtr, OffsetType otherOffset)
 
template<class OffsetType >
voidCeresEngine::offset_ptr_raw_pointer (const volatile void *thisPtr, OffsetType offset)
 
template<class T1 , class P1 , class O1 , std::size_t A1, class T2 , class P2 , class O2 , std::size_t A2>
OffsetPtr< T1, P1, O1, A1CeresEngine::static_pointer_cast (const OffsetPtr< T2, P2, O2, A2 > &r) noexcept
 Simulation of static_cast between pointers.
 
template<class T1 , class P1 , class O1 , std::size_t A1, class T2 , class P2 , class O2 , std::size_t A2>
OffsetPtr< T1, P1, O1, A1CeresEngine::const_pointer_cast (const OffsetPtr< T2, P2, O2, A2 > &r) noexcept
 Simulation of const_cast between pointers.
 
template<class T1 , class P1 , class O1 , std::size_t A1, class T2 , class P2 , class O2 , std::size_t A2>
OffsetPtr< T1, P1, O1, A1CeresEngine::dynamic_pointer_cast (const OffsetPtr< T2, P2, O2, A2 > &r) noexcept
 Simulation of dynamic_cast between pointers.
 
template<class T1 , class P1 , class O1 , std::size_t A1, class T2 , class P2 , class O2 , std::size_t A2>
OffsetPtr< T1, P1, O1, A1CeresEngine::reinterpret_pointer_cast (const OffsetPtr< T2, P2, O2, A2 > &r) noexcept
 Simulation of reinterpret_cast between pointers.