diff --git a/rclcpp/include/rclcpp/node.hpp b/rclcpp/include/rclcpp/node.hpp index 23663ab..1ae3255 100644 --- a/rclcpp/include/rclcpp/node.hpp +++ b/rclcpp/include/rclcpp/node.hpp @@ -122,6 +122,10 @@ public: /* 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 rclcpp::subscription::Subscription::SharedPtr create_subscription( @@ -131,8 +135,7 @@ public: rclcpp::callback_group::CallbackGroup::SharedPtr group = nullptr, bool ignore_local_publications = false, typename rclcpp::message_memory_strategy::MessageMemoryStrategy::SharedPtr - msg_mem_strat = - rclcpp::message_memory_strategy::MessageMemoryStrategy::create_default()); + msg_mem_strat = nullptr); /* Create a timer. */ rclcpp::timer::WallTimer::SharedPtr diff --git a/rclcpp/include/rclcpp/node_impl.hpp b/rclcpp/include/rclcpp/node_impl.hpp index ae6810b..47f7102 100644 --- a/rclcpp/include/rclcpp/node_impl.hpp +++ b/rclcpp/include/rclcpp/node_impl.hpp @@ -125,6 +125,12 @@ Node::create_subscription( typename message_memory_strategy::MessageMemoryStrategy::SharedPtr msg_mem_strat) { using rosidl_generator_cpp::get_message_type_support_handle; + + if (!msg_mem_strat) { + msg_mem_strat = + rclcpp::message_memory_strategy::MessageMemoryStrategy::create_default(); + } + auto type_support_handle = get_message_type_support_handle(); rmw_subscription_t * subscriber_handle = rmw_create_subscription( node_handle_.get(), type_support_handle,