llvm-mos-sdk
Classes | Public Member Functions | Protected Attributes | List of all members
soa::BasePtr< T > Class Template Reference

Base class for pointer to array elements. More...

#include <soa.h>

Public Member Functions

template<uint8_t N>
constexpr BasePtr (const uint8_t ByteArrays[][N], uint8_t Idx)
 
template<uint8_t N>
constexpr BasePtr (uint8_t ByteArrays[][N], uint8_t Idx)
 
get () const
 
constexpr operator T () const
 
template<typename... ArgsT>
auto operator() (ArgsT &&...Args) const -> auto
 
template<typename Q = T>
std::enable_if_t<!std::is_const_v< Q >, const Ptr< T > & > operator= (const T &Val)
 
template<typename Q = T>
std::enable_if_t< std::is_pointer_v< Q >, const T > operator-> () const
 
template<typename Q = T>
std::enable_if_t< std::is_pointer_v< Q >, T > operator-> ()
 
template<typename Q = T>
std::enable_if_t<!std::is_pointer_v< Q >, ConstWrapper > operator-> () const
 
template<typename U >
Ptr< T > & operator+= (const U &Right)
 
template<typename U >
Ptr< T > & operator-= (const U &Right)
 
template<typename U >
Ptr< T > & operator*= (const U &Right)
 
template<typename U >
Ptr< T > & operator/= (const U &Right)
 
template<typename U >
Ptr< T > & operator%= (const U &Right)
 
template<typename U >
Ptr< T > & operator^= (const U &Right)
 
template<typename U >
Ptr< T > & operator&= (const U &Right)
 
template<typename U >
Ptr< T > & operator|= (const U &Right)
 
template<typename U >
Ptr< T > & operator<<= (const U &Right)
 
template<typename U >
Ptr< T > & operator>>= (const U &Right)
 
Ptr< T > & operator++ ()
 
Ptr< T > & operator-- ()
 
operator++ (int)
 
operator-- (int)
 

Protected Attributes

const uint8_t * BytePtrs [sizeof(T)]
 

Detailed Description

template<typename T>
class soa::BasePtr< T >

Base class for pointer to array elements.

Constructor & Destructor Documentation

◆ BasePtr() [1/2]

template<typename T >
template<uint8_t N>
constexpr soa::BasePtr< T >::BasePtr ( const uint8_t  ByteArrays[][N],
uint8_t  Idx 
)
inlineconstexpr

◆ BasePtr() [2/2]

template<typename T >
template<uint8_t N>
constexpr soa::BasePtr< T >::BasePtr ( uint8_t  ByteArrays[][N],
uint8_t  Idx 
)
inlineconstexpr

Member Function Documentation

◆ get()

template<typename T >
T soa::BasePtr< T >::get ( ) const
inline

Return the value of the pointer.

This provides a more readable syntax than casting for contexts where the implicit conversion to T doesn't trigger, e.g., in printf.

◆ operator T()

template<typename T >
constexpr soa::BasePtr< T >::operator T ( ) const
inlineconstexpr

◆ operator%=()

template<typename T >
template<typename U >
Ptr<T>& soa::BasePtr< T >::operator%= ( const U &  Right)
inline

◆ operator&=()

template<typename T >
template<typename U >
Ptr<T>& soa::BasePtr< T >::operator&= ( const U &  Right)
inline

◆ operator()()

template<typename T >
template<typename... ArgsT>
auto soa::BasePtr< T >::operator() ( ArgsT &&...  Args) const -> auto
inline

◆ operator*=()

template<typename T >
template<typename U >
Ptr<T>& soa::BasePtr< T >::operator*= ( const U &  Right)
inline

◆ operator++() [1/2]

template<typename T >
Ptr<T>& soa::BasePtr< T >::operator++ ( )
inline

◆ operator++() [2/2]

template<typename T >
T soa::BasePtr< T >::operator++ ( int  )
inline

◆ operator+=()

template<typename T >
template<typename U >
Ptr<T>& soa::BasePtr< T >::operator+= ( const U &  Right)
inline

◆ operator--() [1/2]

template<typename T >
Ptr<T>& soa::BasePtr< T >::operator-- ( )
inline

◆ operator--() [2/2]

template<typename T >
T soa::BasePtr< T >::operator-- ( int  )
inline

◆ operator-=()

template<typename T >
template<typename U >
Ptr<T>& soa::BasePtr< T >::operator-= ( const U &  Right)
inline

◆ operator->() [1/3]

template<typename T >
template<typename Q = T>
std::enable_if_t<std::is_pointer_v<Q>, T> soa::BasePtr< T >::operator-> ( )
inline

◆ operator->() [2/3]

template<typename T >
template<typename Q = T>
std::enable_if_t<std::is_pointer_v<Q>, const T> soa::BasePtr< T >::operator-> ( ) const
inline

◆ operator->() [3/3]

template<typename T >
template<typename Q = T>
std::enable_if_t<!std::is_pointer_v<Q>, ConstWrapper> soa::BasePtr< T >::operator-> ( ) const
inline

◆ operator/=()

template<typename T >
template<typename U >
Ptr<T>& soa::BasePtr< T >::operator/= ( const U &  Right)
inline

◆ operator<<=()

template<typename T >
template<typename U >
Ptr<T>& soa::BasePtr< T >::operator<<= ( const U &  Right)
inline

◆ operator=()

template<typename T >
template<typename Q = T>
std::enable_if_t<!std::is_const_v<Q>, const Ptr<T> &> soa::BasePtr< T >::operator= ( const T &  Val)
inline

◆ operator>>=()

template<typename T >
template<typename U >
Ptr<T>& soa::BasePtr< T >::operator>>= ( const U &  Right)
inline

◆ operator^=()

template<typename T >
template<typename U >
Ptr<T>& soa::BasePtr< T >::operator^= ( const U &  Right)
inline

◆ operator|=()

template<typename T >
template<typename U >
Ptr<T>& soa::BasePtr< T >::operator|= ( const U &  Right)
inline

Member Data Documentation

◆ BytePtrs

template<typename T >
const uint8_t* soa::BasePtr< T >::BytePtrs[sizeof(T)]
protected

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