Moved std::enable_if to template parameters

This commit is contained in:
Esteve Fernandez 2015-04-30 13:17:03 -07:00
parent 814f4101db
commit faba591f3d

View file

@ -159,7 +159,9 @@ private:
std::shared_ptr<rclcpp::service::ServiceBase> serv_base_ptr,
rclcpp::callback_group::CallbackGroup::SharedPtr group);
template<typename ServiceT, typename FunctorT>
template<
typename ServiceT,
typename FunctorT,
typename std::enable_if<
function_traits<FunctorT>::arity == 2 &&
std::is_same<
@ -169,8 +171,8 @@ private:
std::is_same<
typename function_traits<FunctorT>::template argument_type<1>,
typename std::shared_ptr<typename ServiceT::Response>
>::value,
typename rclcpp::service::Service<ServiceT>::SharedPtr>::type
>::value>::type * = nullptr>
typename rclcpp::service::Service<ServiceT>::SharedPtr
create_service_internal(
rmw_service_t * service_handle,
const std::string & service_name,
@ -182,7 +184,9 @@ private:
service_handle, service_name, callback_without_header);
}
template<typename ServiceT, typename FunctorT>
template<
typename ServiceT,
typename FunctorT,
typename std::enable_if<
function_traits<FunctorT>::arity == 3 &&
std::is_same<
@ -196,8 +200,8 @@ private:
std::is_same<
typename function_traits<FunctorT>::template argument_type<2>,
typename std::shared_ptr<typename ServiceT::Response>
>::value,
typename rclcpp::service::Service<ServiceT>::SharedPtr>::type
>::value>::type * = nullptr>
typename rclcpp::service::Service<ServiceT>::SharedPtr
create_service_internal(
rmw_service_t * service_handle,
const std::string & service_name,