tetl 0.1.0
Embedded Template Library
Loading...
Searching...
No Matches
accessor_conjugate< Accessor > Struct Template Reference

#include <accessor_conjugate.hpp>

Public Types

using data_handle_type = typename Accessor::data_handle_type
 
using element_type = add_const_t< conditional_t< is_arithmetic_v< remove_cv_t< typename Accessor::element_type > >, typename Accessor::element_type, typename reference::value_type > >
 
using offset_policy = conditional_t< is_arithmetic_v< remove_cv_t< typename Accessor::element_type > >, typename Accessor::offset_policy, accessor_conjugate< typename Accessor::offset_policy > >
 
using reference = 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 > > >
 

Public Member Functions

constexpr accessor_conjugate (Accessor a)
 
constexpr auto access (data_handle_type p, size_t i) const noexcept(noexcept(reference(_nestedAccessor.access(p, i)))) -> reference
 
constexpr auto nested_accessor () const -> Accessor
 
constexpr auto offset (data_handle_type p, size_t i) const noexcept(noexcept(_nestedAccessor.offset(p, i))) -> typename offset_policy::data_handle_type
 

Member Typedef Documentation

◆ data_handle_type

template<typename Accessor >
using data_handle_type = typename Accessor::data_handle_type

◆ element_type

template<typename Accessor >
using element_type = add_const_t<conditional_t< is_arithmetic_v<remove_cv_t<typename Accessor::element_type> >, typename Accessor::element_type, typename reference::value_type > >

◆ offset_policy

template<typename Accessor >
using offset_policy = conditional_t< is_arithmetic_v<remove_cv_t<typename Accessor::element_type> >, typename Accessor::offset_policy, accessor_conjugate<typename Accessor::offset_policy> >

◆ reference

template<typename Accessor >
using reference = 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> > >

Constructor & Destructor Documentation

◆ accessor_conjugate()

template<typename Accessor >
constexpr accessor_conjugate ( Accessor  a)
inlineconstexpr

Member Function Documentation

◆ access()

template<typename Accessor >
constexpr auto access ( data_handle_type  p,
size_t  i 
) const -> reference
inlineconstexprnoexcept

◆ nested_accessor()

template<typename Accessor >
constexpr auto nested_accessor ( ) const -> Accessor
inlineconstexpr

◆ offset()

template<typename Accessor >
constexpr auto offset ( data_handle_type  p,
size_t  i 
) const -> typename offset_policy::data_handle_type
inlineconstexprnoexcept

The documentation for this struct was generated from the following file: