Workaround for windows build

This commit is contained in:
Jackie Kay 2015-07-24 17:35:57 -07:00
parent e16cef54cc
commit f5c3792f5c
2 changed files with 11 additions and 2 deletions

View file

@ -122,6 +122,10 @@ public:
/* Create and return a Subscription. */ /* Create and return a Subscription. */
/* TODO(jacquelinekay):
Windows build breaks when static member function passed as default
argument to msg_mem_strat, nullptr is a workaround.
*/
template<typename MessageT> template<typename MessageT>
typename rclcpp::subscription::Subscription<MessageT>::SharedPtr typename rclcpp::subscription::Subscription<MessageT>::SharedPtr
create_subscription( create_subscription(
@ -131,8 +135,7 @@ public:
rclcpp::callback_group::CallbackGroup::SharedPtr group = nullptr, rclcpp::callback_group::CallbackGroup::SharedPtr group = nullptr,
bool ignore_local_publications = false, bool ignore_local_publications = false,
typename rclcpp::message_memory_strategy::MessageMemoryStrategy<MessageT>::SharedPtr typename rclcpp::message_memory_strategy::MessageMemoryStrategy<MessageT>::SharedPtr
msg_mem_strat = msg_mem_strat = nullptr);
rclcpp::message_memory_strategy::MessageMemoryStrategy<MessageT>::create_default());
/* Create a timer. */ /* Create a timer. */
rclcpp::timer::WallTimer::SharedPtr rclcpp::timer::WallTimer::SharedPtr

View file

@ -125,6 +125,12 @@ Node::create_subscription(
typename message_memory_strategy::MessageMemoryStrategy<MessageT>::SharedPtr msg_mem_strat) typename message_memory_strategy::MessageMemoryStrategy<MessageT>::SharedPtr msg_mem_strat)
{ {
using rosidl_generator_cpp::get_message_type_support_handle; using rosidl_generator_cpp::get_message_type_support_handle;
if (!msg_mem_strat) {
msg_mem_strat =
rclcpp::message_memory_strategy::MessageMemoryStrategy<MessageT>::create_default();
}
auto type_support_handle = get_message_type_support_handle<MessageT>(); auto type_support_handle = get_message_type_support_handle<MessageT>();
rmw_subscription_t * subscriber_handle = rmw_create_subscription( rmw_subscription_t * subscriber_handle = rmw_create_subscription(
node_handle_.get(), type_support_handle, node_handle_.get(), type_support_handle,