From 93ef90aeb8ae804dc75ba25e26a82bd8665006b2 Mon Sep 17 00:00:00 2001 From: Patrick Wuttke Date: Wed, 16 Jul 2025 21:07:01 +0200 Subject: [PATCH] Added function_traits. --- source/mijin/util/traits.hpp | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/source/mijin/util/traits.hpp b/source/mijin/util/traits.hpp index bddd0c0..4991efe 100644 --- a/source/mijin/util/traits.hpp +++ b/source/mijin/util/traits.hpp @@ -253,6 +253,42 @@ struct optional_base template using optional_base_t = optional_base::type; +namespace impl +{ +template +struct function_traits_base {}; + +template +struct function_traits_base +{ + using result_t = TResult; + using params_t = std::tuple; +}; + +template +struct function_traits_base +{ + using result_t = TResult; + using params_t = std::tuple; +}; + +template +struct function_traits_base +{ + using result_t = TResult; + using params_t = std::tuple; +}; +} + +template +struct function_traits : impl::function_traits_base +{ + static constexpr std::size_t NUM_PARAMS = std::tuple_size_v::params_t>; + + template + using param_t = std::tuple_element_t::params_t>; +}; + // // public functions //