ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Control
AthDevice
AthDeviceUtils
AthDeviceUtils
impl
AccessorTuple.icc
Go to the documentation of this file.
1
// Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
2
#ifndef ATHDEVICEUTILS_DETAILS_ACCESSORTUPLE_ICC
3
#define ATHDEVICEUTILS_DETAILS_ACCESSORTUPLE_ICC
4
5
// Local include(s).
6
#include "AthDeviceUtils/details/AccessorType.h"
7
8
namespace AthDevice::Details {
9
10
template <typename... VARTYPES>
11
template <Concepts::SoAColumn... COLUMNS>
12
auto AccessorTuple<vecmem::edm::schema<VARTYPES...>>::get_const(
13
const std::tuple<COLUMNS...>& columns) {
14
15
return std::apply(
16
[](const auto&... column) {
17
return std::make_tuple(
18
ConstAccessorType_t<
19
std::tuple_element_t<column.index, std::tuple<VARTYPES...>>>(
20
std::string{column.name})...);
21
},
22
columns);
23
}
24
25
template <typename... VARTYPES>
26
template <Concepts::SoAColumn... COLUMNS>
27
auto AccessorTuple<vecmem::edm::schema<VARTYPES...>>::get_nc(
28
const std::tuple<COLUMNS...>& columns) {
29
30
return std::apply(
31
[](const auto&... column) {
32
return std::make_tuple(
33
AccessorType_t<
34
std::tuple_element_t<column.index, std::tuple<VARTYPES...>>>(
35
std::string{column.name})...);
36
},
37
columns);
38
}
39
40
} // namespace AthDevice::Details
41
42
#endif // ATHDEVICEUTILS_DETAILS_ACCESSORTUPLE_ICC
Generated on
for ATLAS Offline Software by
1.17.0