diff --git a/fluent/functional_unwrap.hpp b/fluent/functional_unwrap.hpp index 8d24541..4584f4e 100644 --- a/fluent/functional_unwrap.hpp +++ b/fluent/functional_unwrap.hpp @@ -64,16 +64,26 @@ namespace fu struct unwrap_function_impl> : unwrap_function_impl<_RTy(_ATy...)> { }; - /// Function pointers + /// Const function pointers template struct unwrap_function_impl<_RTy(*const)(_ATy...)> : unwrap_function_impl<_RTy(_ATy...)> { }; - /// Class Method pointers + /// Mutable function pointers + template + struct unwrap_function_impl<_RTy(*)(_ATy...)> + : unwrap_function_impl<_RTy(_ATy...)> { }; + + /// Const class method pointers template struct unwrap_function_impl<_RTy(_CTy::*)(_ATy...) const> : unwrap_function_impl<_RTy(_ATy...)> { }; + /// Mutable class method pointers + template + struct unwrap_function_impl<_RTy(_CTy::*)(_ATy...)> + : unwrap_function_impl<_RTy(_ATy...)> { }; + /// Pack in fu::identity template struct unwrap_function_impl>