20 #ifndef RAJA_pattern_kernel_internal_StatementList_HPP
21 #define RAJA_pattern_kernel_internal_StatementList_HPP
23 #include "RAJA/config.hpp"
25 #include "camp/camp.hpp"
27 #include <type_traits>
36 template<
typename Policy,
typename Types>
37 struct StatementExecutor;
40 template<
typename... Stmts>
44 template<camp::
idx_t
idx, camp::
idx_t N,
typename StmtList,
typename Types>
47 template<camp::idx_t statement_index,
48 camp::idx_t num_statements,
54 template<
typename Data>
55 static RAJA_INLINE
void exec(Data&& data)
59 using statement = camp::at_v<StmtList, statement_index>;
66 Types>
::exec(std::forward<Data>(data));
74 template<camp::
idx_t num_statements,
typename StmtList,
typename Types>
78 template<
typename Data>
79 static RAJA_INLINE
void exec(Data&&)
83 template<
typename StmtList,
typename Types,
typename Data>
87 std::forward<Data>(data));
Header file for common RAJA internal macro definitions.
camp::list< Stmts... > StatementList
Definition: StatementList.hpp:41
RAJA_INLINE void execute_statement_list(Data &&data)
Definition: StatementList.hpp:84
Definition: AlignedRangeIndexSetBuilders.cpp:35
Definition: Statement.hpp:48
static RAJA_INLINE void exec(Data &&)
Definition: StatementList.hpp:79
Definition: StatementList.hpp:52
static RAJA_INLINE void exec(Data &&data)
Definition: StatementList.hpp:55