-
Notifications
You must be signed in to change notification settings - Fork 332
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implement get_rcl_allocator. #467
base: rolling
Are you sure you want to change the base?
Conversation
This is needed as a companion change to rclcpp #1324. Signed-off-by: Steve Wolter <[email protected]>
// This function needs to build an instance of rcl_allocator_t | ||
// for use in C code. | ||
template<typename T> | ||
rcl_allocator_t get_rcl_allocator(MyAllocator<T>) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Doesn't this need to be in the rclcpp::allocator
namespace?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Argument-dependent lookup saves us: https://en.cppreference.com/w/cpp/language/adl. As long as the function is in the namespace of one of its arguments, the overload will be resolved.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, but should it be in the same namespace... I feel like the answer is yes, but I'm open to suggestion. I'm thinking from the perspective of a person reading this code and not knowing what it is exactly that is being overridden or where it comes from. The namespace gives important context imo.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Got you. I don't care one way or another, so if you stumble over the namespace, it's probably a good signal that many devs would stumble over the namespace. Moved it to rclcpp.
rclcpp::allocator wouldn't work because the calling code is in rclcpp.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It should be in the rclcpp::allocator
namespace, I commented on the original pr: ros2/rclcpp#1324 (review)
Signed-off-by: Steve Wolter <[email protected]>
This is needed as a companion change to ros2/rclcpp#1324.
Signed-off-by: Steve Wolter [email protected]