template<typename IndexType, NumDimensionsType ndim>
vt::index::DenseIndexArray struct

Base classes

struct BaseIndex
struct vt::serialization::ByteCopyTrait

Public types

using ThisIndexType = DenseIndexArray<IndexType, ndim>
using IndexSizeType = size_t
using ApplyType = std::function<void(ThisIndexType)>
using IsByteCopyable = serialization::ByteCopyTrait
using DenseIndexArrayType = DenseIndexArray<IndexType, ndim>
using DenseArraySizeType = uint64_t
using DenseIndexType = IndexType
using BuildIndexType = IndexType

Public static functions

static auto ndims() -> NumDimensionsType constexpr
static auto uniqueBitsToIndex(UniqueIndexBitType const& bits) -> ThisIndexType

Constructors, destructors, conversion operators

DenseIndexArray() defaulted
DenseIndexArray(DenseIndexArray const&) defaulted
DenseIndexArray(DenseIndexArray&&) defaulted
template<typename... Idxs, typename = typename std::enable_if< util::meta_type_eq<IndexType, typename std::decay<Idxs>::type...>::value and sizeof...(Idxs) == ndim >::type>
DenseIndexArray(Idxs && ... init) explicit
DenseIndexArray(std::array<IndexType, ndim> in_array)
DenseIndexArray(DenseIndexArraySingleInitTag, IndexType const& init_value)

Public functions

auto operator=(DenseIndexArray const&) -> DenseIndexArray& defaulted
auto operator[](IndexType const& index) -> IndexType&
auto operator[](IndexType const& index) const -> IndexType const &
auto get(IndexType const& index) const -> IndexType
auto raw() const -> IndexType const *
auto packedSize() const -> IndexSizeType
auto indexIsByteCopyable() const -> bool
auto getSize() const -> DenseArraySizeType
auto toString() const -> std::string
void foreach(ThisIndexType max, ApplyType fn) const
void foreach(ApplyType fn) const
auto uniqueBits() const -> UniqueIndexBitType
auto operator==(DenseIndexArrayType const& other) const -> bool
auto operator<(DenseIndexArrayType const& other) const -> bool
auto operator+(DenseIndexArrayType const& other) const -> DenseIndexArrayType
auto operator-(DenseIndexArrayType const& other) const -> DenseIndexArrayType
template<typename T = void, typename = typename std::enable_if<ndim>= 1, T>
auto x() const -> ::type IndexType
template<typename T = void, typename = typename std::enable_if<ndim>= 2, T>
auto y() const -> ::type IndexType
template<typename T = void, typename = typename std::enable_if<ndim>= 3, T>
auto z() const -> ::type IndexType
template<typename T = void, typename = typename std::enable_if<ndim>= 4, T>
auto u() const -> ::type IndexType
template<typename T = void, typename = typename std::enable_if<ndim>= 5, T>
auto v() const -> ::type IndexType
template<typename T = void, typename = typename std::enable_if<ndim>= 6, T>
auto w() const -> ::type IndexType
template<typename T, typename>
auto x() const -> IndexType
template<typename T, typename>
auto y() const -> IndexType
template<typename T, typename>
auto z() const -> IndexType
template<typename T, typename>
auto u() const -> IndexType
template<typename T, typename>
auto v() const -> IndexType
template<typename T, typename>
auto w() const -> IndexType

Friends

template<typename IndexT, NumDimensionsType nd>
auto operator<<(std::ostream& os, DenseIndexArray<IndexT, nd> const& idx) -> std::ostream&

Function documentation

template<typename IndexType, NumDimensionsType ndim> template<typename T, typename>
IndexType vt::index::DenseIndexArray<IndexType, ndim>::x() const

template<typename IndexType, NumDimensionsType ndim> template<typename T, typename>
IndexType vt::index::DenseIndexArray<IndexType, ndim>::y() const

template<typename IndexType, NumDimensionsType ndim> template<typename T, typename>
IndexType vt::index::DenseIndexArray<IndexType, ndim>::z() const

template<typename IndexType, NumDimensionsType ndim> template<typename T, typename>
IndexType vt::index::DenseIndexArray<IndexType, ndim>::u() const

template<typename IndexType, NumDimensionsType ndim> template<typename T, typename>
IndexType vt::index::DenseIndexArray<IndexType, ndim>::v() const

template<typename IndexType, NumDimensionsType ndim> template<typename T, typename>
IndexType vt::index::DenseIndexArray<IndexType, ndim>::w() const