RAJA
RAJA provides a collection of platform portability abstractions for C++ HPC applications.
forall.hpp
Go to the documentation of this file.
1 
12 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
13 // Copyright (c) Lawrence Livermore National Security, LLC and other
14 // RAJA Project Developers. See top-level LICENSE and COPYRIGHT
15 // files for dates and other details. No copyright assignment is required
16 // to contribute to RAJA.
17 //
18 // SPDX-License-Identifier: (BSD-3-Clause)
19 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
20 
21 #ifndef RAJA_PATTERN_DETAIL_FORALL_HPP
22 #define RAJA_PATTERN_DETAIL_FORALL_HPP
23 
24 #define RAJA_EXTRACT_BED_SUFFIXED(CONTAINER, SUFFIX) \
25  using std::begin; \
26  using std::end; \
27  using std::distance; \
28  auto begin##SUFFIX = begin(CONTAINER); \
29  auto end##SUFFIX = end(CONTAINER); \
30  auto distance##SUFFIX = distance(begin##SUFFIX, end##SUFFIX)
31 
32 #define RAJA_EXTRACT_BED_IT(CONTAINER) RAJA_EXTRACT_BED_SUFFIXED(CONTAINER, _it)
33 
34 #endif /* RAJA_PATTERN_DETAIL_FORALL_HPP */