11 #ifndef LARDATA_RECOBASEPROXY_PROXYBASE_WITHPARALLELDATA_H
12 #define LARDATA_RECOBASEPROXY_PROXYBASE_WITHPARALLELDATA_H
30 template <
typename Aux,
typename ArgTuple,
typename AuxTag = Aux>
35 ParallelDataProxyMakerWrapper<Aux, AuxTag>::template maker_t,
41 <
typename Aux,
typename ArgTuple,
typename AuxColl,
typename AuxTag = Aux>
95 template <
typename Aux,
typename AuxTag,
typename... Args>
97 using ArgTuple_t = std::tuple<Args&&...>;
98 ArgTuple_t argsTuple(std::forward<Args>(
args)...);
100 (std::move(argsTuple));
181 template <
typename Aux,
typename... Args>
183 {
return withParallelDataAs<Aux, Aux>(std::forward<Args>(
args)...); }
232 template <
typename AuxTag,
typename AuxColl>
234 std::tuple<AuxColl const&>
args = { auxColl };
260 template <
typename AuxColl>
262 {
return wrapParallelDataAs<util::collection_value_t<AuxColl>>(auxColl); }
271 #endif // LARDATA_RECOBASEPROXY_PROXYBASE_WITHPARALLELDATA_H
auto wrapParallelData(AuxColl const &auxColl)
Uses a collection as auxiliary data for a collection proxy.
Helper to create associated data proxy.
auto withParallelData(Args &&...args)
Helper function to merge an auxiliary data product into the proxy.
auto withParallelDataAs(Args &&...args)
Helper function to merge an auxiliary data product into the proxy.
Infrastructure for the addition of parallel data to a proxy.
auto wrapParallelDataAs(AuxColl const &auxColl)
Uses a collection as auxiliary data for a collection proxy.
WithAssociatedStructBase< Aux, void, ArgTuple, ParallelDataProxyMakerWrapper< Aux, AuxTag >::template maker_t, AuxTag > WithParallelCollectionStruct
Template class to declare addition of associated data to a proxy.