The Gaudi Framework  master (9da49fa3)
Loading...
Searching...
No Matches
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
17namespace 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
details::Producer< Signature, Traits_, details::isLegacy< Traits_ > > Producer
Definition Producer.h:37
STL namespace.