The Gaudi Framework  master (37c0b60a)
Producer.h
Go to the documentation of this file.
1 /***********************************************************************************\
2 * (c) Copyright 1998-2024 CERN for the benefit of the LHCb and ATLAS collaborations *
3 * *
4 * This software is distributed under the terms of the Apache version 2 licence, *
5 * copied verbatim in the file "LICENSE". *
6 * *
7 * In applying this licence, CERN does not waive the privileges and immunities *
8 * granted to it by virtue of its status as an Intergovernmental Organization *
9 * or submit itself to any jurisdiction. *
10 \***********************************************************************************/
11 #pragma once
12 
13 #include "Transformer.h"
14 
15 #include <tuple>
16 
17 namespace Gaudi::Functional {
18 
19  namespace details {
20 
21  template <typename Signature, typename Traits_, bool isLegacy>
22  struct Producer;
23 
24  template <typename... Out, typename Traits_, bool legacy>
25  struct Producer<std::tuple<Out...>(), Traits_, legacy> : MultiTransformer<std::tuple<Out...>(), Traits_, legacy> {
26  using MultiTransformer<std::tuple<Out...>(), Traits_, legacy>::MultiTransformer;
27  };
28 
29  template <typename Out, typename Traits_, bool legacy>
30  struct Producer<Out(), Traits_, legacy> : Transformer<Out(), Traits_, legacy> {
31  using Transformer<Out(), Traits_, legacy>::Transformer;
32  };
33 
34  } // namespace details
35 
36  template <typename Signature, typename Traits_ = Traits::useDefaults>
38 
39 } // namespace Gaudi::Functional
std::tuple
details
Definition: AnyDataWrapper.h:19
Transformer.h
Gaudi::Functional::details::Producer
Definition: Producer.h:22
Gaudi::Functional
Definition: Consumer.h:19
Gaudi ::Functional::MultiTransformer
details::MultiTransformer< Signature, Traits_, details::isLegacy< Traits_ > > MultiTransformer
Definition: Transformer.h:240
std
STL namespace.
Gaudi ::Functional::Transformer
details::Transformer< Signature, Traits_, details::isLegacy< Traits_ > > Transformer
Definition: Transformer.h:237