58 static const T zero{};
60 info(
"BAD GET(): index = ",
64 ", virtual_padding = ",
#define BB_ASSERT_GTE(left, right,...)
#define BB_ASSERT_LT(left, right,...)
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
A shared pointer array template that represents a virtual array filled with zeros up to virtual_size_...
T & operator[](size_t index)
size_t start_
The starting index of the memory-backed range.
void increase_virtual_size(const size_t new_virtual_size)
T * data()
Returns a pointer to the underlying memory array. NOTE: This should be used with care,...
const T & operator[](size_t index) const
const T & get(size_t index, size_t virtual_padding=0) const
Retrieves the value at the specified index, or 'zero'. Optimizes for e.g. 256-bit fields by storing a...
std::shared_ptr< BackingMemory< T > > backing_memory_
Shared pointer to the underlying memory array.
void set(size_t index, const T &value)
Sets the value at the specified index.
size_t virtual_size() const
size_t virtual_size_
The total logical size of the array.
size_t end_
The ending index of the memory-backed range.