3#ifndef TETL_LINALG_ACCESSOR_CONJUGATE_HPP
4#define TETL_LINALG_ACCESSOR_CONJUGATE_HPP
15template <
typename Accessor>
19 typename Accessor::reference,
20 detail::conjugated_scalar<typename Accessor::reference, remove_cv_t<typename Accessor::element_type>>>;
23 typename Accessor::element_type,
24 typename reference::value_type>>;
28 typename Accessor::offset_policy,
39 return reference(_nestedAccessor.access(p, i));
43 noexcept(
noexcept(_nestedAccessor.offset(p, i))) ->
typename offset_policy::data_handle_type
45 _nestedAccessor.offset(p, i);
48 [[nodiscard]]
constexpr auto nested_accessor() const -> Accessor {
return _nestedAccessor; }
51 Accessor _nestedAccessor;
Definition accessor_conjugate.hpp:12
typename conditional< B, T, F >::type conditional_t
Definition conditional.hpp:21
constexpr bool is_arithmetic_v
Definition is_arithmetic.hpp:21
constexpr auto nested_accessor() const -> Accessor
Definition accessor_conjugate.hpp:48
typename Accessor::data_handle_type data_handle_type
Definition accessor_conjugate.hpp:25
add_const_t< conditional_t< is_arithmetic_v< remove_cv_t< typename Accessor::element_type > >, typename Accessor::element_type, typename reference::value_type > > element_type
Definition accessor_conjugate.hpp:21
constexpr accessor_conjugate(Accessor a)
Definition accessor_conjugate.hpp:31
constexpr auto offset(data_handle_type p, size_t i) const noexcept(noexcept(_nestedAccessor.offset(p, i))) -> typename offset_policy::data_handle_type
Definition accessor_conjugate.hpp:42
conditional_t< is_arithmetic_v< remove_cv_t< typename Accessor::element_type > >, typename Accessor::offset_policy, accessor_conjugate< typename Accessor::offset_policy > > offset_policy
Definition accessor_conjugate.hpp:26
constexpr auto access(data_handle_type p, size_t i) const noexcept(noexcept(reference(_nestedAccessor.access(p, i)))) -> reference
Definition accessor_conjugate.hpp:36
conditional_t< is_arithmetic_v< remove_cv_t< typename Accessor::element_type > >, typename Accessor::reference, detail::conjugated_scalar< typename Accessor::reference, remove_cv_t< typename Accessor::element_type > > > reference
Definition accessor_conjugate.hpp:17