template<class ElementType, size_t Base>
atlas::index_accessor struct

Public types

using element_type = ElementType
using reference = std::conditional_t<Base==0, ElementType&, std::conditional_t<std::is_const_v<ElementType>, ElementType, index_reference<ElementType, Base>>>
using data_handle_type = ElementType*
using offset_policy = index_accessor

Public static variables

static ElementType base_ constexpr

Constructors, destructors, conversion operators

index_accessor() defaulted constexpr
template<class OtherAccessor, typename = typename std::enable_if_t< (!std::is_const_v<ElementType>&& std::is_same_v<ElementType, std::remove_const_t<typename OtherAccessor::element_type>>) ||( std::is_const_v<ElementType>&& std::is_same_v<ElementType, std::add_const_t<typename OtherAccessor::element_type>>)>>
index_accessor(const OtherAccessor&) constexpr
operator default_accessor<element_type>() const constexpr noexcept

Public functions

template<size_t B = Base, typename = std::enable_if_t<B == 0>>
auto access(data_handle_type p, size_t i) const -> ElementType& constexpr noexcept
template<size_t B = Base, typename = std::enable_if_t<B != 0&& !std::is_const_v<ElementType>>>
auto access(data_handle_type p, size_t i) const -> index_reference<ElementType, Base> constexpr noexcept
template<size_t B = Base, typename = std::enable_if_t<B != 0&& std::is_const_v<ElementType>>>
auto access(data_handle_type p, size_t i) const -> ElementType constexpr noexcept
auto offset(data_handle_type p, size_t i) const -> data_handle_type constexpr noexcept