nros C++ API
Lightweight ROS 2 client for embedded real-time systems (C++ headers)
Loading...
Searching...
No Matches
rclcpp::FixedSequence< T, N > Struct Template Reference

#include <fixed_sequence.hpp>

Public Member Functions

T * begin ()
 Iterator support.
const T * begin () const
T * end ()
const T * end () const
 FixedSequence ()
 Default constructor — empty sequence.
uint32_t length () const
 Current number of elements.
T & operator[] (size_t i)
 Access element by index (no bounds check).
const T & operator[] (size_t i) const
bool push_back (const T &val)
 Append an element. Returns false if the sequence is full.
bool resize (size_t n)

Static Public Member Functions

static constexpr size_t max_size ()
 Maximum capacity.

Public Attributes

T data [N]
uint32_t size

Detailed Description

template<typename T, size_t N>
struct rclcpp::FixedSequence< T, N >

Fixed-capacity sequence container.

Wraps a uint32_t size + T data[N] pair with push/access methods. Memory layout is identical to struct { uint32_t size; T data[N]; }, so the type is C-ABI compatible with the runtime.

Usage:

values.push_back(42);
values.push_back(7);
for (uint32_t i = 0; i < values.length(); ++i) {
printf("values[%u] = %d\n", i, values[i]);
}
Definition fixed_sequence.hpp:36
bool push_back(const T &val)
Append an element. Returns false if the sequence is full.
Definition fixed_sequence.hpp:44
uint32_t length() const
Current number of elements.
Definition fixed_sequence.hpp:55

Constructor & Destructor Documentation

◆ FixedSequence()

template<typename T, size_t N>
rclcpp::FixedSequence< T, N >::FixedSequence ( )
inline

Default constructor — empty sequence.

Member Function Documentation

◆ begin() [1/2]

template<typename T, size_t N>
T * rclcpp::FixedSequence< T, N >::begin ( )
inline

Iterator support.

◆ begin() [2/2]

template<typename T, size_t N>
const T * rclcpp::FixedSequence< T, N >::begin ( ) const
inline

◆ end() [1/2]

template<typename T, size_t N>
T * rclcpp::FixedSequence< T, N >::end ( )
inline

◆ end() [2/2]

template<typename T, size_t N>
const T * rclcpp::FixedSequence< T, N >::end ( ) const
inline

◆ length()

template<typename T, size_t N>
uint32_t rclcpp::FixedSequence< T, N >::length ( ) const
inline

Current number of elements.

◆ max_size()

template<typename T, size_t N>
constexpr size_t rclcpp::FixedSequence< T, N >::max_size ( )
inlinestaticconstexpr

Maximum capacity.

◆ operator[]() [1/2]

template<typename T, size_t N>
T & rclcpp::FixedSequence< T, N >::operator[] ( size_t i)
inline

Access element by index (no bounds check).

◆ operator[]() [2/2]

template<typename T, size_t N>
const T & rclcpp::FixedSequence< T, N >::operator[] ( size_t i) const
inline

◆ push_back()

template<typename T, size_t N>
bool rclcpp::FixedSequence< T, N >::push_back ( const T & val)
inline

Append an element. Returns false if the sequence is full.

◆ resize()

template<typename T, size_t N>
bool rclcpp::FixedSequence< T, N >::resize ( size_t n)
inline

Upstream's bounded-sequence resize(n) (phase-488; Nav2 writes descriptor.floating_point_range.resize(1)). New elements are value-initialized. A length past the capacity is refused: the sequence is unchanged and the answer is false, where rosidl's BoundedVector throws std::length_error.

Member Data Documentation

◆ data

template<typename T, size_t N>
T rclcpp::FixedSequence< T, N >::data[N]

◆ size

template<typename T, size_t N>
uint32_t rclcpp::FixedSequence< T, N >::size

The documentation for this struct was generated from the following file: