diff --git a/rclcpp/include/rclcpp/any_subscription_callback.hpp b/rclcpp/include/rclcpp/any_subscription_callback.hpp index a205d2f..6949b7e 100644 --- a/rclcpp/include/rclcpp/any_subscription_callback.hpp +++ b/rclcpp/include/rclcpp/any_subscription_callback.hpp @@ -94,46 +94,46 @@ struct AnySubscriptionCallback >::value >::type * = nullptr) { - static_assert(std::is_same< - typename function_traits::template argument_type<1>, - const rmw_message_info_t &>::value, - "Passed incorrect argument type to callback, should be rmw_message_info_t"); shared_ptr_with_info_callback = callback; } - template::arity == 1 - >::type * = nullptr, - typename std::enable_if< - std::is_same< - typename function_traits::template argument_type<0>, - typename std::shared_ptr - >::value - >::type * = nullptr + template< + typename CallbackT, + std::size_t Arity = 1 > - void set(CallbackT callback) + typename std::enable_if::value, void>::type + set( + CallbackT callback, + typename std::enable_if< + std::is_same< + typename function_traits::template argument_type<0>, + typename std::shared_ptr + >::value + >::type * = nullptr) { const_shared_ptr_callback = callback; } - template::arity == 2 - >::type * = nullptr, - typename std::enable_if< - std::is_same< - typename function_traits::template argument_type<0>, - typename std::shared_ptr - >::value - >::type * = nullptr + template< + typename CallbackT, + std::size_t Arity = 2 > - void set(CallbackT callback) - { - static_assert(std::is_same< + typename std::enable_if::value, void>::type + set( + CallbackT callback, + typename std::enable_if< + std::is_same< + typename function_traits::template argument_type<0>, + typename std::shared_ptr + >::value + >::type * = nullptr, + typename std::enable_if< + std::is_same< typename function_traits::template argument_type<1>, - const rmw_message_info_t &>::value, - "Passed incorrect argument type to callback, should be rmw_message_info_t"); + const rmw_message_info_t & + >::value + >::type * = nullptr) + { const_shared_ptr_with_info_callback = callback; } /*