STADLS
stadls::WriteAddressVisitor< T > Struct Template Reference

Extract addresses for writing to hardware for the visited containers. More...

#include <visitors.h>

Public Member Functions

template<typename CoordinateT , typename ContainerT >
auto operator() (CoordinateT const &, ContainerT const &) -> typename std::enable_if<!ContainerT::has_local_data::value >::type
 
template<typename CoordinateT , typename ContainerT >
auto operator() (CoordinateT const &coord, ContainerT const &container) -> decltype(container.addresses(coord), void())
 
template<typename CoordinateT , typename ContainerT >
auto operator() (CoordinateT const &coord, ContainerT const &container) -> decltype(container.template addresses< typename T::value_type >(coord), void())
 
template<typename CoordinateT , typename ContainerT >
auto operator() (CoordinateT const &coord, ContainerT const &container) -> decltype(container.template write_addresses< typename T::value_type >(coord), void())
 
template<typename CoordinateT , typename ContainerT >
auto operator() (CoordinateT const &coord, ContainerT const &container) -> decltype(container.write_addresses(coord), void())
 

Public Attributes

T & addresses
 

Detailed Description

template<typename T>
struct stadls::WriteAddressVisitor< T >

Extract addresses for writing to hardware for the visited containers.

Each container can provide addresses via a write_addresses member function or via a addresses member function in case the addresses for reading and writing are the same. Containers that do not themselves contain data to be written to the hardware (i.e. containers of containers) can alternatively be tagged via

typedef std::false_type has_local_data;

Definition at line 74 of file visitors.h.

Member Function Documentation

◆ operator()() [1/5]

template<typename T >
template<typename CoordinateT , typename ContainerT >
auto stadls::WriteAddressVisitor< T >::operator() ( CoordinateT const &  ,
ContainerT const &   
) -> typename std::enable_if<!ContainerT::has_local_data::value>::type
inline

Definition at line 112 of file visitors.h.

◆ operator()() [2/5]

template<typename T >
template<typename CoordinateT , typename ContainerT >
auto stadls::WriteAddressVisitor< T >::operator() ( CoordinateT const &  coord,
ContainerT const &  container 
) -> decltype(container.addresses(coord), void())
inline

Definition at line 79 of file visitors.h.

◆ operator()() [3/5]

template<typename T >
template<typename CoordinateT , typename ContainerT >
auto stadls::WriteAddressVisitor< T >::operator() ( CoordinateT const &  coord,
ContainerT const &  container 
) -> decltype(container.template addresses<typename T::value_type>(coord), void())
inline

Definition at line 95 of file visitors.h.

◆ operator()() [4/5]

template<typename T >
template<typename CoordinateT , typename ContainerT >
auto stadls::WriteAddressVisitor< T >::operator() ( CoordinateT const &  coord,
ContainerT const &  container 
) -> decltype(container.template write_addresses<typename T::value_type>(coord), void())
inline

Definition at line 103 of file visitors.h.

◆ operator()() [5/5]

template<typename T >
template<typename CoordinateT , typename ContainerT >
auto stadls::WriteAddressVisitor< T >::operator() ( CoordinateT const &  coord,
ContainerT const &  container 
) -> decltype(container.write_addresses(coord), void())
inline

Definition at line 87 of file visitors.h.

Member Data Documentation

◆ addresses

template<typename T >
T& stadls::WriteAddressVisitor< T >::addresses

Definition at line 76 of file visitors.h.


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