11 #ifndef LARDATA_RECOBASEPROXY_PROXYBASE_WITHCOLLECTIONPROXY_H
12 #define LARDATA_RECOBASEPROXY_PROXYBASE_WITHCOLLECTIONPROXY_H
18 #include "canvas/Utilities/InputTag.h"
23 #include <type_traits>
35 template <
typename AuxProxy,
typename AuxTag,
typename... Args>
38 using ArgTuple_t = std::tuple<Args&&...>;
41 <std::decay_t<std::tuple_element_t<0U, ArgTuple_t>>, art::InputTag>(),
42 "The first argument of withCollectionProxyAs() must be art::InputTag."
44 ArgTuple_t argsTuple(std::forward<Args>(
args)...);
46 (std::move(argsTuple));
76 template <
typename AuxProxy,
typename... Args>
80 withCollectionProxyAs<AuxProxy, AuxProxy>(std::forward<Args>(
args)...);
90 #endif // LARDATA_RECOBASEPROXY_PROXYBASE_WITHCOLLECTIONPROXY_H
Infrastructure for a collection proxy as auxiliary data for a proxy.
auto withCollectionProxyAs(Args &&...args)
auto withCollectionProxy(Args &&...args)
Helper function to merge an auxiliary proxy into the proxy.
Helper to create a proxy as auxiliary data for another proxy.