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");
static constexpr std::size_t index()
ESProductHost(Args &&... args)
void ifRecordChanges(ContainingRecordType const &containingRecord, FUNC func)
static constexpr std::size_t indexLoop()
const std::complex< double > I
std::vector< unsigned long long > cacheIDs_
static constexpr std::size_t numberOfRecordTypes()