File indexing completed on 2025-09-17 08:57:33
0001
0002
0003
0004
0005
0006
0007
0008
0009
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 }
0035
0036 template <typename Signature, typename Traits_ = Traits::useDefaults>
0037 using Producer = details::Producer<Signature, Traits_, details::isLegacy<Traits_>>;
0038
0039 }