Uni20
Asynchronous tensor and runtime library.
Loading...
Searching...
No Matches
uni20::TensorView Concept Reference

Tensor-level object exposing readable multidimensional metadata and a backend selector. More...

#include <concepts.hpp>

Concept definition

template<class T>
concept uni20::TensorView = (!MdspecLike<T>) && requires(std::remove_reference_t<T> const& tensor) {
typename std::remove_cvref_t<detail::normalized_const_mdspec_t<T>>::extents_type;
tensor.backend_selector();
mdspec_of(tensor);
{
tensor.extents()
} -> std::convertible_to<typename std::remove_cvref_t<detail::normalized_const_mdspec_t<T>>::extents_type>;
{
tensor.extent(std::size_t{})
} -> std::convertible_to<typename std::remove_cvref_t<detail::normalized_const_mdspec_t<T>>::index_type>;
} && MdspecLike<detail::normalized_const_mdspec_t<T>>
Mdspan metadata whose data handle is immediate or available through a data descriptor.
Definition mdspan/concepts.hpp:304
Tensor-level object exposing readable multidimensional metadata and a backend selector.
Definition tensor/concepts.hpp:82
constexpr decltype(auto) mdspec_of(Tensor &tensor) noexcept(noexcept(tensor.mdspec()))
Return a tensor's immediate or descriptor-backed multidimensional metadata.
Definition tensor/concepts.hpp:50
std::ptrdiff_t index_type
Definition types.hpp:19

Detailed Description

Tensor-level object exposing readable multidimensional metadata and a backend selector.

A model exposes an immediate or descriptor-backed MdspecLike through mdspec_of(). Explicit access acquisition resolves that metadata into an ImmediateTensorView governed by an RAII lease. The policy-bearing tensor object does not itself model MdspecLike.