15 #ifndef RCLCPP__ALLOCATOR__ALLOCATOR_COMMON_HPP_
16 #define RCLCPP__ALLOCATOR__ALLOCATOR_COMMON_HPP_
20 #include "rcl/allocator.h"
29 template<
typename T,
typename Alloc>
32 template<
typename Alloc>
35 auto typed_allocator =
static_cast<Alloc *
>(untyped_allocator);
36 if (!typed_allocator) {
42 template<
typename T,
typename Alloc>
45 auto typed_allocator =
static_cast<Alloc *
>(untyped_allocator);
46 if (!typed_allocator) {
49 auto typed_ptr =
static_cast<T *
>(untyped_pointer);
53 template<
typename T,
typename Alloc>
56 auto typed_allocator =
static_cast<Alloc *
>(untyped_allocator);
57 if (!typed_allocator) {
60 auto typed_ptr =
static_cast<T *
>(untyped_pointer);
73 rcl_allocator_t rcl_allocator = rcl_get_default_allocator();
75 rcl_allocator.allocate = &retyped_allocate<Alloc>;
76 rcl_allocator.deallocate = &retyped_deallocate<T, Alloc>;
77 rcl_allocator.reallocate = &retyped_reallocate<T, Alloc>;
78 rcl_allocator.state = &allocator;
93 return rcl_get_default_allocator();
99 #endif // RCLCPP__ALLOCATOR__ALLOCATOR_COMMON_HPP_