rclcpp
rclcpp copied to clipboard
Node traits
Description
I would find handy to have in rclcpp C++ traits like (draft):
rclcpp::is_node<typename T>
rclcpp::is_node_v<typename T>
rclcpp::is_lifecycle_node<typename T>
rclcpp::is_lifecycle_node_v<typename T>
they can be easily implemented via std::is_base_of.
the is_node trait may be ambiguous. We can:
- return true for both
rclcpp::Nodeandrclcpp::LifecycleNode(and use theis_lifecycle_nodeto further discriminate among the two) - return true ONLY for
rclcpp::Node
I see there are traits for other things like subscriptions and so on in the library, but before drafting a PR I'd like some feedback (or tell me if it is something it's better not to put in rclcpp).
Motivation
Mainly, this would help distinguish between normal nodes and lifecycle nodes, write better templates and so on.
Design / Implementation Considerations
No response
Additional Information
No response