@@ -257,17 +257,17 @@ class StateInterface : public Handle
257
257
258
258
void registerIntrospection () const
259
259
{
260
- if (std::holds_alternative<double >(value_))
260
+ if (value_ptr_ || std::holds_alternative<double >(value_))
261
261
{
262
262
std::function<double ()> f = [this ]()
263
- { return value_ptr_ ? *value_ptr_ : std::numeric_limits <double >:: quiet_NaN ( ); };
263
+ { return value_ptr_ ? *value_ptr_ : std::get <double >(value_ ); };
264
264
DEFAULT_REGISTER_ROS2_CONTROL_INTROSPECTION (" state_interface." + get_name (), f);
265
265
}
266
266
}
267
267
268
268
void unregisterIntrospection () const
269
269
{
270
- if (std::holds_alternative<double >(value_))
270
+ if (value_ptr_ || std::holds_alternative<double >(value_))
271
271
{
272
272
DEFAULT_UNREGISTER_ROS2_CONTROL_INTROSPECTION (" state_interface." + get_name ());
273
273
}
@@ -302,17 +302,17 @@ class CommandInterface : public Handle
302
302
303
303
void registerIntrospection () const
304
304
{
305
- if (std::holds_alternative<double >(value_))
305
+ if (value_ptr_ || std::holds_alternative<double >(value_))
306
306
{
307
307
std::function<double ()> f = [this ]()
308
- { return value_ptr_ ? *value_ptr_ : std::numeric_limits <double >:: quiet_NaN ( ); };
308
+ { return value_ptr_ ? *value_ptr_ : std::get <double >(value_ ); };
309
309
DEFAULT_REGISTER_ROS2_CONTROL_INTROSPECTION (" command_interface." + get_name (), f);
310
310
}
311
311
}
312
312
313
313
void unregisterIntrospection () const
314
314
{
315
- if (std::holds_alternative<double >(value_))
315
+ if (value_ptr_ || std::holds_alternative<double >(value_))
316
316
{
317
317
DEFAULT_UNREGISTER_ROS2_CONTROL_INTROSPECTION (" command_interface." + get_name ());
318
318
}
0 commit comments