Low-Level Abstraction of Memory Access
llama::mapping::internal::BitPackedIntRef< Integral, StoredIntegralCV, VHBits, SizeType, SignBit > Struct Template Reference

#include <BitPackedInt.hpp>

+ Inheritance diagram for llama::mapping::internal::BitPackedIntRef< Integral, StoredIntegralCV, VHBits, SizeType, SignBit >:
+ Collaboration diagram for llama::mapping::internal::BitPackedIntRef< Integral, StoredIntegralCV, VHBits, SizeType, SignBit >:

Public Types

using value_type = Integral
 

Public Member Functions

constexpr BitPackedIntRef (StoredIntegralCV *ptr, SizeType bitOffset, VHBits vhBits)
 
 BitPackedIntRef (const BitPackedIntRef &)=default
 
constexpr auto operator= (const BitPackedIntRef &other) -> BitPackedIntRef &
 
constexpr operator Integral () const
 
constexpr auto operator= (Integral value) -> BitPackedIntRef &
 
- Public Member Functions inherited from llama::ProxyRefOpMixin< BitPackedIntRef< Integral, StoredIntegralCV, VHBits, SizeType, SignBit >, Integral >
constexpr auto operator+= (const Integral &rhs) -> BitPackedIntRef< Integral, StoredIntegralCV, VHBits, SizeType, SignBit > &
 
constexpr auto operator-= (const Integral &rhs) -> BitPackedIntRef< Integral, StoredIntegralCV, VHBits, SizeType, SignBit > &
 
constexpr auto operator*= (const Integral &rhs) -> BitPackedIntRef< Integral, StoredIntegralCV, VHBits, SizeType, SignBit > &
 
constexpr auto operator/= (const Integral &rhs) -> BitPackedIntRef< Integral, StoredIntegralCV, VHBits, SizeType, SignBit > &
 
constexpr auto operator%= (const Integral &rhs) -> BitPackedIntRef< Integral, StoredIntegralCV, VHBits, SizeType, SignBit > &
 
constexpr auto operator<<= (const Integral &rhs) -> BitPackedIntRef< Integral, StoredIntegralCV, VHBits, SizeType, SignBit > &
 
constexpr auto operator>>= (const Integral &rhs) -> BitPackedIntRef< Integral, StoredIntegralCV, VHBits, SizeType, SignBit > &
 
constexpr auto operator&= (const Integral &rhs) -> BitPackedIntRef< Integral, StoredIntegralCV, VHBits, SizeType, SignBit > &
 
constexpr auto operator|= (const Integral &rhs) -> BitPackedIntRef< Integral, StoredIntegralCV, VHBits, SizeType, SignBit > &
 
constexpr auto operator^= (const Integral &rhs) -> BitPackedIntRef< Integral, StoredIntegralCV, VHBits, SizeType, SignBit > &
 
constexpr auto operator++ () -> BitPackedIntRef< Integral, StoredIntegralCV, VHBits, SizeType, SignBit > &
 
constexpr auto operator++ (int) -> Integral
 
constexpr auto operator-- () -> BitPackedIntRef< Integral, StoredIntegralCV, VHBits, SizeType, SignBit > &
 
constexpr auto operator-- (int) -> Integral
 

Detailed Description

template<typename Integral, typename StoredIntegralCV, typename VHBits, typename SizeType, SignBit SignBit>
struct llama::mapping::internal::BitPackedIntRef< Integral, StoredIntegralCV, VHBits, SizeType, SignBit >

A proxy type representing a reference to a reduced precision integral value, stored in a buffer at a specified bit offset.

Template Parameters
IntegralIntegral data type which can be loaded and store through this reference.
StoredIntegralCVIntegral type used for storing the bits with CV qualifiers.
SizeTypeType used to store sizes and offsets.

Definition at line 156 of file BitPackedInt.hpp.

Member Typedef Documentation

◆ value_type

template<typename Integral , typename StoredIntegralCV , typename VHBits , typename SizeType , SignBit SignBit>
using llama::mapping::internal::BitPackedIntRef< Integral, StoredIntegralCV, VHBits, SizeType, SignBit >::value_type = Integral

Definition at line 166 of file BitPackedInt.hpp.

Constructor & Destructor Documentation

◆ BitPackedIntRef() [1/2]

template<typename Integral , typename StoredIntegralCV , typename VHBits , typename SizeType , SignBit SignBit>
constexpr llama::mapping::internal::BitPackedIntRef< Integral, StoredIntegralCV, VHBits, SizeType, SignBit >::BitPackedIntRef ( StoredIntegralCV *  ptr,
SizeType  bitOffset,
VHBits  vhBits 
)
inlineconstexpr

Definition at line 168 of file BitPackedInt.hpp.

◆ BitPackedIntRef() [2/2]

template<typename Integral , typename StoredIntegralCV , typename VHBits , typename SizeType , SignBit SignBit>
llama::mapping::internal::BitPackedIntRef< Integral, StoredIntegralCV, VHBits, SizeType, SignBit >::BitPackedIntRef ( const BitPackedIntRef< Integral, StoredIntegralCV, VHBits, SizeType, SignBit > &  )
default

Member Function Documentation

◆ operator Integral()

template<typename Integral , typename StoredIntegralCV , typename VHBits , typename SizeType , SignBit SignBit>
constexpr llama::mapping::internal::BitPackedIntRef< Integral, StoredIntegralCV, VHBits, SizeType, SignBit >::operator Integral ( ) const
inlineconstexpr

Definition at line 188 of file BitPackedInt.hpp.

◆ operator=() [1/2]

template<typename Integral , typename StoredIntegralCV , typename VHBits , typename SizeType , SignBit SignBit>
constexpr auto llama::mapping::internal::BitPackedIntRef< Integral, StoredIntegralCV, VHBits, SizeType, SignBit >::operator= ( const BitPackedIntRef< Integral, StoredIntegralCV, VHBits, SizeType, SignBit > &  other) -> BitPackedIntRef&
inlineconstexpr

Definition at line 181 of file BitPackedInt.hpp.

◆ operator=() [2/2]

template<typename Integral , typename StoredIntegralCV , typename VHBits , typename SizeType , SignBit SignBit>
constexpr auto llama::mapping::internal::BitPackedIntRef< Integral, StoredIntegralCV, VHBits, SizeType, SignBit >::operator= ( Integral  value) -> BitPackedIntRef&
inlineconstexpr

Definition at line 205 of file BitPackedInt.hpp.


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