6 #include "../ProxyRefOpMixin.hpp" 
   14         template<
typename UserT, 
typename StoredT>
 
   19                 return static_cast<UserT
>(v); 
 
   24                 return static_cast<StoredT
>(v); 
 
   28         template<
typename RecordDim>
 
   31             template<
typename Key>
 
   34                 if constexpr(isRecordCoord<Key>)
 
   35                     return mp_identity<GetType<RecordDim, Key>>{};
 
   37                     return mp_identity<Key>{};
 
   40             template<
typename Pair, 
typename Key = mp_first<Pair>, 
typename StoredT = mp_second<Pair>>
 
   41             using fn = mp_list<Key, ChangeTypeProjection<typename decltype(recordDimType<Key>())::type, StoredT>>;
 
   44         template<
typename RecordDim, 
typename ReplacementMap>
 
   45         using MakeProjectionMap = mp_transform<MakeProjectionPair<RecordDim>::template fn, ReplacementMap>;
 
   56         template<
typename, 
typename>
 
   57         typename InnerMapping,
 
   58         typename ReplacementMap>
 
   60         : 
Projection<ArrayExtents, RecordDim, InnerMapping, internal::MakeProjectionMap<RecordDim, ReplacementMap>>
 
   76     template<
template<
typename, 
typename> 
typename InnerMapping, 
typename ReplacementMap>
 
   79         template<
typename ArrayExtents, 
typename RecordDim>
 
   84     template<
typename Mapping>
 
   89         typename TArrayExtents,
 
   91         template<
typename, 
typename>
 
   92         typename InnerMapping,
 
   93         typename ReplacementMap>
 
   94     inline constexpr 
bool isChangeType<ChangeType<TArrayExtents, TRecordDim, InnerMapping, ReplacementMap>> = 
true;
 
#define LLAMA_FN_HOST_ACC_INLINE
 
mp_transform< MakeProjectionPair< RecordDim >::template fn, ReplacementMap > MakeProjectionMap
 
constexpr bool isChangeType
 
ArrayExtents(Args...) -> ArrayExtents< typename internal::IndexTypeFromArgs< std::size_t, Args... >::type,(Args{}, dyn)... >
 
typename Inner::ArrayExtents ArrayExtents
 
static auto store(UserT v) -> StoredT
 
static auto load(StoredT v) -> UserT
 
static auto recordDimType()
 
mp_list< Key, ChangeTypeProjection< typename decltype(recordDimType< Key >())::type, StoredT > > fn