Update const callbacks

This commit is contained in:
Esteve Fernandez 2015-10-13 11:57:05 -07:00
parent 3294098602
commit ea9d3306d7

View file

@ -94,46 +94,46 @@ struct AnySubscriptionCallback
>::value >::value
>::type * = nullptr) >::type * = nullptr)
{ {
static_assert(std::is_same<
typename function_traits<CallbackT>::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; shared_ptr_with_info_callback = callback;
} }
template<typename CallbackT, template<
typename std::enable_if< typename CallbackT,
function_traits<CallbackT>::arity == 1 std::size_t Arity = 1
>::type * = nullptr, >
typename std::enable_if<rclcpp::arity_comparator<Arity, CallbackT>::value, void>::type
set(
CallbackT callback,
typename std::enable_if< typename std::enable_if<
std::is_same< std::is_same<
typename function_traits<CallbackT>::template argument_type<0>, typename function_traits<CallbackT>::template argument_type<0>,
typename std::shared_ptr<const MessageT> typename std::shared_ptr<const MessageT>
>::value >::value
>::type * = nullptr >::type * = nullptr)
>
void set(CallbackT callback)
{ {
const_shared_ptr_callback = callback; const_shared_ptr_callback = callback;
} }
template<typename CallbackT, template<
typename std::enable_if< typename CallbackT,
function_traits<CallbackT>::arity == 2 std::size_t Arity = 2
>::type * = nullptr, >
typename std::enable_if<rclcpp::arity_comparator<Arity, CallbackT>::value, void>::type
set(
CallbackT callback,
typename std::enable_if< typename std::enable_if<
std::is_same< std::is_same<
typename function_traits<CallbackT>::template argument_type<0>, typename function_traits<CallbackT>::template argument_type<0>,
typename std::shared_ptr<const MessageT> typename std::shared_ptr<const MessageT>
>::value >::value
>::type * = nullptr >::type * = nullptr,
> typename std::enable_if<
void set(CallbackT callback) std::is_same<
{
static_assert(std::is_same<
typename function_traits<CallbackT>::template argument_type<1>, typename function_traits<CallbackT>::template argument_type<1>,
const rmw_message_info_t &>::value, const rmw_message_info_t &
"Passed incorrect argument type to callback, should be rmw_message_info_t"); >::value
>::type * = nullptr)
{
const_shared_ptr_with_info_callback = callback; const_shared_ptr_with_info_callback = callback;
} }
/* /*