Files
2025-10-25 03:02:53 +03:00

3.2 KiB

[mdspan.accessor.default]

23 Containers library [containers]

23.7 Views [views]

23.7.3 Multidimensional access [views.multidim]

23.7.3.5 Accessor policy [mdspan.accessor]

23.7.3.5.3 Class template default_accessor [mdspan.accessor.default]

23.7.3.5.3.1 Overview [mdspan.accessor.default.overview]

namespace std {templatestruct default_accessor {using offset_policy = default_accessor; using element_type = ElementType; using reference = ElementType&; using data_handle_type = ElementType*; constexpr default_accessor() noexcept = default; templateconstexpr default_accessor(default_accessor) noexcept; constexpr reference access(data_handle_type p, size_t i) const noexcept; constexpr data_handle_type offset(data_handle_type p, size_t i) const noexcept; };}

1

#

default_accessor meets the accessor policy requirements.

2

#

ElementType is required to be a complete object type that is neither an abstract class type nor an array type.

3

#

Each specialization of default_accessor is a trivially copyable type that models semiregular.

4

#

[0,n) is an accessible range for an object p of type data_handle_type and an object of type default_accessor if and only if [p, p + n) is a valid range.

23.7.3.5.3.2 Members [mdspan.accessor.default.members]

🔗

template<class OtherElementType> constexpr default_accessor(default_accessor<OtherElementType>) noexcept {}

1

#

Constraints: is_convertible_v<OtherElementType()[], element_type()[]> is true.

🔗

constexpr reference access(data_handle_type p, size_t i) const noexcept;

2

#

Effects: Equivalent to: return p[i];

🔗

constexpr data_handle_type offset(data_handle_type p, size_t i) const noexcept;

3

#

Effects: Equivalent to: return p + i;