diff --git a/rclcpp/include/rclcpp/node.hpp b/rclcpp/include/rclcpp/node.hpp index 333edb6..5f222fb 100644 --- a/rclcpp/include/rclcpp/node.hpp +++ b/rclcpp/include/rclcpp/node.hpp @@ -159,18 +159,20 @@ private: std::shared_ptr serv_base_ptr, rclcpp::callback_group::CallbackGroup::SharedPtr group); - template - typename std::enable_if< - function_traits::arity == 2 && - std::is_same< - typename function_traits::template argument_type<0>, - typename std::shared_ptr - >::value && - std::is_same< - typename function_traits::template argument_type<1>, - typename std::shared_ptr - >::value, - typename rclcpp::service::Service::SharedPtr>::type + template< + typename ServiceT, + typename FunctorT, + typename std::enable_if< + function_traits::arity == 2 && + std::is_same< + typename function_traits::template argument_type<0>, + typename std::shared_ptr + >::value && + std::is_same< + typename function_traits::template argument_type<1>, + typename std::shared_ptr + >::value>::type * = nullptr> + typename rclcpp::service::Service::SharedPtr create_service_internal( rmw_service_t * service_handle, const std::string & service_name, @@ -182,22 +184,24 @@ private: service_handle, service_name, callback_without_header); } - template - typename std::enable_if< - function_traits::arity == 3 && - std::is_same< - typename function_traits::template argument_type<0>, - std::shared_ptr - >::value && - std::is_same< - typename function_traits::template argument_type<1>, - typename std::shared_ptr - >::value && - std::is_same< - typename function_traits::template argument_type<2>, - typename std::shared_ptr - >::value, - typename rclcpp::service::Service::SharedPtr>::type + template< + typename ServiceT, + typename FunctorT, + typename std::enable_if< + function_traits::arity == 3 && + std::is_same< + typename function_traits::template argument_type<0>, + std::shared_ptr + >::value && + std::is_same< + typename function_traits::template argument_type<1>, + typename std::shared_ptr + >::value && + std::is_same< + typename function_traits::template argument_type<2>, + typename std::shared_ptr + >::value>::type * = nullptr> + typename rclcpp::service::Service::SharedPtr create_service_internal( rmw_service_t * service_handle, const std::string & service_name,