nros C++ API
Lightweight ROS 2 client for embedded real-time systems (C++ headers)
Loading...
Searching...
No Matches
Public Types | List of all members
rclcpp::detail::qos_arg_strip< F > Struct Template Reference

#include <qos.hpp>

Public Types

typedef F type
 

Detailed Description

template<typename F>
struct rclcpp::detail::qos_arg_strip< F >

Is this argument a QoS profile rather than a callback?

The refusing create_service(name, F, qos) overload on rclcpp::Node must not swallow create_service<S>("name", rclcpp::ServicesQoS()). Deducing F is an exact match while binding const rclcpp::QoS& needs a derived-to-base conversion, so without this guard the callback template WINS and a perfectly good poll-style call fails with the shared_ptr-callback diagnostic — a refusal firing on something it does not describe, which is worse than no refusal. Caught by the positive probe on its first compile. Written WITHOUT <type_traits>, and the two failures that forced it are different failures:

So the predicate depends on neither: a derived-to-base pointer conversion under overload resolution answers is_base_of with nothing but the core language, and the partial specialisations answer decay for every form a by-value template parameter can take.

Member Typedef Documentation

◆ type


The documentation for this struct was generated from the following file: