Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-09-17 08:57:33

0001 /***********************************************************************************\
0002 * (c) Copyright 1998-2024 CERN for the benefit of the LHCb and ATLAS collaborations *
0003 *                                                                                   *
0004 * This software is distributed under the terms of the Apache version 2 licence,     *
0005 * copied verbatim in the file "LICENSE".                                            *
0006 *                                                                                   *
0007 * In applying this licence, CERN does not waive the privileges and immunities       *
0008 * granted to it by virtue of its status as an Intergovernmental Organization        *
0009 * or submit itself to any jurisdiction.                                             *
0010 \***********************************************************************************/
0011 #pragma once
0012 
0013 #include "Transformer.h"
0014 
0015 #include <tuple>
0016 
0017 namespace Gaudi::Functional {
0018 
0019   namespace details {
0020 
0021     template <typename Signature, typename Traits_, bool isLegacy>
0022     struct Producer;
0023 
0024     template <typename... Out, typename Traits_, bool legacy>
0025     struct Producer<std::tuple<Out...>(), Traits_, legacy> : MultiTransformer<std::tuple<Out...>(), Traits_, legacy> {
0026       using MultiTransformer<std::tuple<Out...>(), Traits_, legacy>::MultiTransformer;
0027     };
0028 
0029     template <typename Out, typename Traits_, bool legacy>
0030     struct Producer<Out(), Traits_, legacy> : Transformer<Out(), Traits_, legacy> {
0031       using Transformer<Out(), Traits_, legacy>::Transformer;
0032     };
0033 
0034   } // namespace details
0035 
0036   template <typename Signature, typename Traits_ = Traits::useDefaults>
0037   using Producer = details::Producer<Signature, Traits_, details::isLegacy<Traits_>>;
0038 
0039 } // namespace Gaudi::Functional