Shortcuts

Template Struct StructAccessor

Inheritance Relationships

Base Type

  • public Storage

Struct Documentation

template<typename T, typename Storage, size_t Index>
struct ripple::StructAccessor : public Storage

The struct accessor gets a components of a struct at a given index for a given storage type, this can be used in a union to allow aliases of data elements, for example:

struct Vec2 {
 using Storage = std::array<int, 2>;

 union {
   Storage data;
   StructAccessor<int, Storage, 0> x;
   StructAccessor<int, Storage, 1> y;
 };

 auto operator[](size_t i) -> int& {
   return data[i];
 }
};

// Usage:
Vec 2 v;
v[0] = 2;
v.y = 3;

Template Parameters
  • T: The type of the data for the accessor.

  • Storage: The type of the storage for the accessor.

  • Index: The index of the element in the storage.

Public Functions

operator T() const noexcept

Overload of conversion operator.

operator T&() noexcept

Overload of conversion to reference operator.

auto operator=(T v) noexcept -> StructAccessor&

Overload of equal operator to set the value to v.

Parameters
  • v: The value to set the accessor to.

Public Static Attributes

constexpr bool is_accessor = is_storage_accessor_v<Storage>

True if the type is a storage accessor.

Docs

Access comprehensive developer documentation for Ripple

View Docs

Tutorials

Get tutorials to help with understand all features

View Tutorials

Examples

Find examples to help get started

View Examples