/** * @file function_types.h * @author Nat Goodspeed * @date 2023-01-20 * @brief Extend boost::function_types to examine boost::function and * std::function * * $LicenseInfo:firstyear=2023&license=viewerlgpl$ * Copyright (c) 2023, Linden Research, Inc. * $/LicenseInfo$ */ #if ! defined(LL_FUNCTION_TYPES_H) #define LL_FUNCTION_TYPES_H #include #include #include namespace LL { template struct function_arity_impl { static constexpr auto value = boost::function_types::function_arity::value; }; template struct function_arity_impl> { static constexpr auto value = function_arity_impl::value; }; template struct function_arity_impl> { static constexpr auto value = function_arity_impl::value; }; template struct function_arity { static constexpr auto value = function_arity_impl::type>::value; }; } // namespace LL #endif /* ! defined(LL_FUNCTION_TYPES_H) */