DASH
0.3.0
|
#include <ViewMod.h>
Public Types | |
typedef DomainType | domain_type |
typedef std::conditional< view_traits< domain_type >::is_origin::value, const domain_type &, domain_type >::type | domain_member_type |
typedef std::conditional< view_traits< domain_type >::is_local::value, typename view_traits< typename view_traits< domain_type >::origin_type >::local_type, typename view_traits< domain_type >::origin_type >::type | origin_type |
typedef view_traits< DomainType >::index_type | index_type |
typedef view_traits< DomainType >::size_type | size_type |
typedef origin_type::value_type | value_type |
typedef std::integral_constant< dim_t, NDim > | rank |
Public Member Functions | |
constexpr | ViewModBase (const self_t &)=default |
constexpr | ViewModBase (self_t &&)=default |
self_t & | operator= (const self_t &)=default |
self_t & | operator= (self_t &&)=default |
constexpr const domain_type & | domain () const & |
constexpr domain_type | domain () const && |
constexpr bool | operator== (const ViewModType &rhs) const |
constexpr bool | operator!= (const ViewModType &rhs) const |
constexpr bool | is_local () const |
constexpr const std::array< size_type, NDim > | extents () const |
template<dim_t ShapeDim> | |
constexpr size_type | extent () const |
constexpr size_type | extent (dim_t shape_dim) const |
constexpr const std::array< index_type, NDim > | offsets () const |
template<dim_t ShapeDim> | |
constexpr index_type | offset () const |
constexpr index_type | offset (dim_t shape_dim) const |
constexpr index_type | size () const |
Static Public Member Functions | |
static constexpr dim_t | ndim () |
Public Attributes | |
decltype(dash::begin(std::declval< typename std::add_lvalue_reference< origin_type >::type >())) typedef | origin_iterator |
decltype(dash::begin(std::declval< typename std::add_lvalue_reference< const origin_type >::type >())) typedef | const_origin_iterator |
decltype(*dash::begin(std::declval< typename std::add_lvalue_reference< origin_type >::type >())) typede | reference ) |
decltype(*dash::begin(std::declval< typename std::add_lvalue_reference< const origin_type >::type >())) typede | const_reference ) |
As an alternative, all view modifications could be stored in command objects of a single ViewMod type. Expressions then could not be evalated at compile-time, however.
However, View modifier types should subclass a common ViewMod base class - or vice versa, following the policy pattern with the operation specified as policy:
or: