RAJA
RAJA provides a collection of platform portability abstractions for C++ HPC applications.
Statement.hpp
Go to the documentation of this file.
1 
11 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
12 // Copyright (c) Lawrence Livermore National Security, LLC and other
13 // RAJA Project Developers. See top-level LICENSE and COPYRIGHT
14 // files for dates and other details. No copyright assignment is required
15 // to contribute to RAJA.
16 //
17 // SPDX-License-Identifier: (BSD-3-Clause)
18 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
19 
20 #ifndef RAJA_pattern_kernel_internal_Statement_HPP
21 #define RAJA_pattern_kernel_internal_Statement_HPP
22 
24 #include <type_traits>
25 #include <camp/camp.hpp>
26 
27 namespace RAJA
28 {
29 namespace internal
30 {
31 
32 
33 template<typename ExecPolicy, typename... EnclosedStmts>
34 struct Statement
35 {
36  static_assert(std::is_same<ExecPolicy, camp::nil>::value ||
37  sizeof...(EnclosedStmts) > 0,
38  "Executable statement with no enclosed statements, this is "
39  "almost certainly a bug");
40  Statement() = delete;
41 
42  using enclosed_statements_t = StatementList<EnclosedStmts...>;
44 };
45 
46 
47 template<typename Policy, typename Types>
49 
50 
51 } // end namespace internal
52 } // end namespace RAJA
53 
54 
55 #endif /* RAJA_pattern_kernel_internal_HPP */
Header file for loop kernel internals.
camp::list< Stmts... > StatementList
Definition: StatementList.hpp:41
Definition: AlignedRangeIndexSetBuilders.cpp:35
Definition: Statement.hpp:48
Definition: Statement.hpp:35
StatementList< EnclosedStmts... > enclosed_statements_t
Definition: Statement.hpp:42
Definition: IndexSet.hpp:70