1 #ifndef FWCore_Framework_ESProductHost_h
2 #define FWCore_Framework_ESProductHost_h
76 #include <type_traits>
92 template <
typename Product,
typename... RecordTypes>
95 template <
typename... Args>
102 template <
typename RecordType,
typename ContainingRecordType,
typename FUNC>
104 RecordType
const&
record = containingRecord.template getRecord<RecordType>();
105 unsigned long long cacheIdentifier =
record.cacheIdentifier();
106 std::size_t iRecord = index<RecordType>();
107 if (cacheIdentifier !=
cacheIDs_[iRecord]) {
128 template <
typename U>
129 constexpr
static std::size_t
index() {
134 template <std::size_t
I,
typename U,
typename TST,
typename... M>
136 if constexpr (std::is_same_v<U, TST>) {
139 static_assert(
I + 1 <
numberOfRecordTypes(),
"unknown record type passed to ESProductHost::index");