Nugget
Loading...
Searching...
No Matches
Classes | Namespaces | Concepts | Typedefs
bitfield.hh File Reference
#include <stdint.h>
#include <concepts>
#include <type_traits>
#include "util.h"
Include dependency graph for bitfield.hh:

Go to the source code of this file.

Classes

struct  Utilities::BitFieldInternal::DefaultBitSize< T >
 
struct  Utilities::BitFieldInternal::DefaultBitSize< bool >
 
struct  Utilities::BitFieldInternal::ComputeStorage< T >
 
struct  Utilities::BitFieldInternal::ComputeOffset< Target, T >
 
struct  Utilities::BitFieldInternal::BitFieldHelper< Offset, Width, storageSize, T >
 
struct  Utilities::BitSpan< T, width >
 A bit field element to be used in a BitField. More...
 
struct  Utilities::BitField< T >
 A bit field that can hold multiple bit field elements of different types. More...
 

Namespaces

namespace  Utilities
 
namespace  Utilities::BitFieldInternal
 

Concepts

concept  Utilities::BitFieldInternal::IntegralLike
 

Typedefs

template<std::integral T, std::integral U = T>
using Utilities::BitFieldInternal::SignedType = typename std::conditional_t< std::is_signed_v< T >, std::make_signed_t< U >, std::make_unsigned_t< U > >
 
template<unsigned span>
using Utilities::BitFieldInternal::StorageType = typename std::conditional_t< span<=8, uint8_t, typename std::conditional_t< span<=16, uint16_t, typename std::conditional_t< span<=32, uint32_t, void > > >
 
template<unsigned span, std::integral T>
using Utilities::BitFieldInternal::SignedStorageType = SignedType< T, StorageType< span > >