ATLAS Offline Software
Loading...
Searching...
No Matches
AccessorTuple.h
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_H
3#define ATHDEVICEUTILS_DETAILS_ACCESSORTUPLE_H
4
5// Local include(s).
7
8// VecMem include(s).
9#include <vecmem/edm/schema.hpp>
10
11// System include(s).
12#include <tuple>
13
15
17template <typename T>
19
21template <typename... VARTYPES>
22struct AccessorTuple<vecmem::edm::schema<VARTYPES...>> {
23
29 template <Concepts::SoAColumn... COLUMNS>
30 static auto get_const(const std::tuple<COLUMNS...>& columns);
31
37 template <Concepts::SoAColumn... COLUMNS>
38 static auto get_nc(const std::tuple<COLUMNS...>& columns);
39
40}; // struct AccessorTuple
41
42} // namespace AthDevice::Details
43
44// Include the implementation.
46
47#endif // ATHDEVICEUTILS_DETAILS_ACCESSORTUPLE_H
Concept for an SoA column.
Definition SoAColumn.h:25
static auto get_nc(const std::tuple< COLUMNS... > &columns)
Get a tuple of (non-const) accessors for the given column definitions.
static auto get_const(const std::tuple< COLUMNS... > &columns)
Get a tuple of (const) accessors for the given column definitions.
Base type for the schema specific specialization of AccessorTuple.