SMACC2
Classes | Namespaces | Macros
type_adapter.hpp File Reference
#include <type_traits>
Include dependency graph for type_adapter.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  rclcpp::TypeAdapter< CustomType, ROSMessageType, Enable >
 Template structure used to adapt custom, user-defined types to ROS types. More...
 
struct  rclcpp::is_type_adapter< T >
 Helper template to determine if a type is a TypeAdapter, false specialization. More...
 
struct  rclcpp::is_type_adapter< TypeAdapter< Ts... > >
 Helper template to determine if a type is a TypeAdapter, true specialization. More...
 
struct  rclcpp::TypeAdapter< T, void, std::enable_if_t< is_type_adapter< T >::value > >
 Identity specialization for TypeAdapter. More...
 
struct  rclcpp::detail::assert_type_pair_is_specialized_type_adapter< CustomType, ROSMessageType >
 
struct  rclcpp::adapt_type< CustomType >
 Template metafunction that can make the type being adapted explicit. More...
 
struct  rclcpp::ImplicitTypeAdapter< CustomType >
 Implicit type adapter used as a short hand way to create something with just the custom type. More...
 
struct  rclcpp::TypeAdapter< T, void, std::enable_if_t< ImplicitTypeAdapter< T >::is_specialized::value > >
 Specialization of TypeAdapter for ImplicitTypeAdapter. More...
 

Namespaces

namespace  rclcpp
 
namespace  rclcpp::detail
 

Macros

#define RCLCPP_USING_CUSTOM_TYPE_AS_ROS_MESSAGE_TYPE(CustomType, ROSMessageType)
 Assigns the custom type implicitly to the given custom type/ros message type pair. More...
 

Macro Definition Documentation

◆ RCLCPP_USING_CUSTOM_TYPE_AS_ROS_MESSAGE_TYPE

#define RCLCPP_USING_CUSTOM_TYPE_AS_ROS_MESSAGE_TYPE (   CustomType,
  ROSMessageType 
)
Value:
template<> \
{ \
static_assert( \
is_specialized::value, \
"Cannot use custom type as ros type when there is no TypeAdapter for that pair"); \
}
Implicit type adapter used as a short hand way to create something with just the custom type.
Template structure used to adapt custom, user-defined types to ROS types.

Assigns the custom type implicitly to the given custom type/ros message type pair.

Note: this macro needs to be used in the root namespace. We cannot use rclcpp to protect against this, due to how GCC interprets the syntax, see: https://stackoverflow.com/a/2781537

See also
TypeAdapter
ImplicitTypeAdapter

Definition at line 189 of file type_adapter.hpp.