знаешь про
https://github.com/tip-of-the-week/cpp ?
там раньше много любопытных решений публиковалось
на вскидку можешь глянуть на
https://github.com/tip-of-the-week/cpp/blob/master/tips/255.md
https://github.com/tip-of-the-week/cpp/blob/master/tips/350.md
и еще пошерстить
может какие мысли придут
там есть рефлексия С++26 в примерах на годболт
сделай на ней
а потом вернешься на С++11
если это для собеса, скажешь что ты из будущего
в бусте есть function_traits кажется делает тоже что по ссылке выше я давал на в блоге 2013 года
https://www.boost.org/doc/libs/1_85_0/libs/functional/function_traits.html
вообще у меня какое то дежавю
а именно эту задачу где то уже видел
не помню где
или здесь на форуме
или в какой то либе
возможно как задача на какой то собес