28 #include "value_ref.hpp"
64 virtual size_t rank()
const = 0;
76 virtual shape_t
shape()
const = 0;
87 virtual size_t size()
const = 0;
98 virtual std::ostream &
write(std::ostream &os)
const = 0;
109 virtual std::istream &
read(std::istream &is) = 0;
144 virtual value at(
size_t i)
const = 0;
152 virtual const void *
ptr()
const = 0;
virtual size_t size() const =0
get size
virtual value at(size_t i) const =0
get value at linear index i
virtual string type_name() const =0
get type name
virtual array_holder_interface * clone() const =0
clone yourself
virtual size_t rank() const =0
get rank
std::vector< slice > view_index
view index type
Definition: array_holder_interface.hpp:45
virtual value operator[](size_t i) const =0
get element at linear index i
virtual shape_t shape() const =0
get shape
Definition: add_op.hpp:29
virtual type_id_t type_id() const =0
return type id
virtual value operator()(const element_index &index) const =0
get element value
virtual std::ostream & write(std::ostream &os) const =0
write data
virtual const void * ptr() const =0
get pointer to data
std::vector< size_t > element_index
single element index type
Definition: array_holder_interface.hpp:43
virtual std::istream & read(std::istream &is)=0
read data
array holder interface
Definition: array_holder_interface.hpp:39
type_id_t
type codes for PNI data types
Definition: types/types.hpp:148
type erasure for references to POD data
Definition: value_ref.hpp:43
type erasure for POD data
Definition: value.hpp:46