Skip to content

Commit b36a549

Browse files
committed
templatize NodeT for get_or_declare_parameter
Signed-off-by: Koichi Imai <kotty.0704@gmail.com>
1 parent 336c6b6 commit b36a549

1 file changed

Lines changed: 7 additions & 4 deletions

File tree

autoware_utils_rclcpp/include/autoware_utils_rclcpp/parameter.hpp

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,14 +25,17 @@
2525
namespace autoware_utils_rclcpp
2626
{
2727

28-
template <class T>
29-
T get_or_declare_parameter(rclcpp::Node & node, const std::string & name)
28+
// Templated on the node type so it also accepts non-rclcpp::Node nodes that expose the same
29+
// parameter API (e.g. autoware::agnocast_wrapper::Node). NodeT defaults to rclcpp::Node, so existing
30+
// callers (get_or_declare_parameter<T>(node, name)) are unchanged.
31+
template <class T, class NodeT = rclcpp::Node>
32+
T get_or_declare_parameter(NodeT & node, const std::string & name)
3033
{
3134
if (node.has_parameter(name)) {
32-
return node.get_parameter(name).get_value<T>();
35+
return node.get_parameter(name).template get_value<T>();
3336
}
3437

35-
return node.declare_parameter<T>(name);
38+
return node.template declare_parameter<T>(name);
3639
}
3740

3841
template <class T>

0 commit comments

Comments
 (0)