5#include <Infinity/Types/Core/Data.hpp>
131 virtual const void*
pointer(
size_t index)
const = 0;
186 virtual std::shared_ptr<Core::Data>
dataAt(
size_t index) = 0;
200 virtual std::shared_ptr<const Core::Data>
dataAt(
size_t index)
const = 0;
262 virtual
size_t size() const noexcept = 0;
Abstract base class for all array container types in the Infinity type system.
Definition ArrayBase.hpp:72
ArrayBase(const ArrayBase &other)
Definition ArrayBase.hpp:77
virtual const void * pointer(size_t index) const =0
Gets a const type-erased pointer to the element at the specified index.
virtual ~ArrayBase()=default
Virtual destructor.
virtual size_t dimensions() const noexcept=0
Gets the number of dimensions in this array container.
virtual void setData(size_t index, const Core::Data &data)=0
Sets an element from type-erased Data.
virtual bool containsValues() const =0
Checks if the array contains plain value (POD) types.
virtual void * pointer(size_t index)=0
Gets a type-erased pointer to the element at the specified index.
virtual bool containsData() const =0
Checks if the array contains Core::Data-derived types.
virtual void resize(size_t newSize)=0
Resizes the array to contain the specified number of elements.
virtual std::shared_ptr< const Core::Data > dataAt(size_t index) const =0
Gets a const type-erased Data pointer to the element at the specified index.
ArrayBase()
Definition ArrayBase.hpp:74
virtual std::shared_ptr< Core::Data > dataAt(size_t index)=0
Gets a type-erased Data pointer to the element at the specified index.
virtual const Infinity::Types::TypeID & elementTypeId()=0
Gets the TypeID of the element type contained in this array.
Base class for complex data types with memory wrapping and property support.
Definition Data.hpp:49
Runtime type identifier for the Infinity type system.
Definition TypeID.hpp:71