Comments (9)
Can you make this a test case in system_tests/test_rclcpp instead? (I meant to post this comment on the pull request in examples, sorry if that was confusing.)
from rclcpp.
Are you working on a fix for this right now? I will take a look if you're not actively working on it.
from rclcpp.
@esteve found a workaround to use a lambda function. I'll add a unit test for it too.
from rclcpp.
You mean using a lambda function in the example? Or to make bound functions work as the input to create_subscription?
None of our tested rclcpp code so far uses std::bind
. Any code that captures arguments does so using lambdas.
Playing around with this, I found another "workaround" that compiles:
std::function<void(const std_msgs::msg::String::SharedPtr)> callback = std::bind(&Chatter::chatterCallback, &chatter, std::placeholders::_1);
auto sub = node->create_subscription<std_msgs::msg::String>(
"chatter", callback, rmw_qos_profile_default);
Ideally we would support any valid callback signature for create_subscription, so I think we should do the necessary work to make your example compile.
from rclcpp.
@tfoote could you have a look at this branch and see if it works? Thanks.
https://github.com/ros2/rclcpp/tree/std_bind_function_traits
from rclcpp.
@tfoote I got your example compiling with my branch, I'll clean up the changes here and submit them for review.
from rclcpp.
@esteve I can confirm that your branch works for me, but I see it's not a cross platform solution unfortunately :-(
from rclcpp.
@tfoote I got the workaround to compile on all three platforms in #183, I'll see if I can compile the std::bind
test in ros2/system_tests#88
from rclcpp.
fixed in #183
from rclcpp.
Related Issues (20)
- TimersManager doesn't follow ROS time HOT 2
- rclcpp_action: Provide enum class return ClientGoalHandle::get_status
- Callback works on Galactic but fails on Rolling - handle_message is not implemented for GenericSubscription HOT 1
- Clang warning: ordered comparison of function pointers (Rolling) HOT 1
- `-fanalyzer` warning: possible null dereference when using TypeAdapters HOT 4
- leak due to std::shared_ptr circular reference between Context and GuardCondition HOT 3
- :farmer: `rclcpp.test_executors` failing in Rolling and Jazzy CycloneDDS HOT 2
- rclcpp::Time(int64_t nanoseconds, ...) should check for negative time
- Regression : Executor::spin_some_impl is active waiting HOT 5
- Parameter service behavior is inconsistent with the documentation of rcl_interfaces HOT 9
- Lifecycle destructor calls shutdown while in shuttingdown intermediate state HOT 45
- Backport PR2063 to Humble for Windows HOT 2
- Executor callbacks are no longer in a predictable order HOT 25
- '/clock' Topic cannot change each loop step time from simulation time HOT 10
- Program exits with code -11 when using async_send_request to set parameters in ROS 2 C++ client HOT 1
- Timer callbacks can be delayed when using simulation time HOT 4
- Possible regression in rcl preshutdown callbacks - context invalid? HOT 11
- Shutdown transition on base lifecycle node dtor may lead to segaults on subclass-registered shutdown callback HOT 6
- `on_shutdown` callback not called when `shutdown` transition is triggered on dtor HOT 2
- ABI/API Compliance Checker in github workflow HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rclcpp.