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