Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:57:30

0001 /***********************************************************************************\
0002 * (c) Copyright 1998-2023 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 #include <utility>
0015 
0016 namespace Gaudi::Functional {
0017 
0018   namespace details {
0019 
0020     template <typename Signature, typename Traits_, bool isLegacy>
0021     struct Producer;
0022 
0023     template <typename... Out, typename Traits_, bool legacy>
0024     struct Producer<std::tuple<Out...>(), Traits_, legacy> : MultiTransformer<std::tuple<Out...>(), Traits_, legacy> {
0025       using MultiTransformer<std::tuple<Out...>(), Traits_, legacy>::MultiTransformer;
0026     };
0027 
0028     template <typename Out, typename Traits_, bool legacy>
0029     struct Producer<Out(), Traits_, legacy> : Transformer<Out(), Traits_, legacy> {
0030       using Transformer<Out(), Traits_, legacy>::Transformer;
0031     };
0032 
0033   } // namespace details
0034 
0035   template <typename Signature, typename Traits_ = Traits::useDefaults>
0036   using Producer = details::Producer<Signature, Traits_, details::isLegacy<Traits_>>;
0037 
0038 } // namespace Gaudi::Functional