ESPHome 2026.8.0
Loading...
Searching...
No Matches
esphome::StaticVector< T, N > Class Template Reference

Minimal static vector - saves memory by avoiding std::vector overhead. More...

#include <helpers.h>

Public Types

using value_type = T
 
using iterator = typename std::array<T, N>::iterator
 
using const_iterator = typename std::array<T, N>::const_iterator
 
using reverse_iterator = std::reverse_iterator<iterator>
 
using const_reverse_iterator = std::reverse_iterator<const_iterator>
 

Public Member Functions

 StaticVector ()=default
 
template<typename InputIt >
 StaticVector (InputIt first, InputIt last)
 
 StaticVector (std::initializer_list< T > init)
 
template<size_t M>
 StaticVector (const StaticVector< T, M > &other)
 
void push_back (const T &value)
 
void clear ()
 
template<typename InputIt >
void assign (InputIt first, InputIt last)
 
T & emplace_next ()
 
size_t size () const
 
bool empty () const
 
T * data ()
 
const T * data () const
 
T & operator[] (size_t i)
 
const T & operator[] (size_t i) const
 
iterator begin ()
 
iterator end ()
 
const_iterator begin () const
 
const_iterator end () const
 
reverse_iterator rbegin ()
 
reverse_iterator rend ()
 
const_reverse_iterator rbegin () const
 
const_reverse_iterator rend () const
 
 operator std::span< T > ()
 
 operator std::span< const T > () const
 

Detailed Description

template<typename T, size_t N>
class esphome::StaticVector< T, N >

Minimal static vector - saves memory by avoiding std::vector overhead.

Definition at line 227 of file helpers.h.

Member Typedef Documentation

◆ const_iterator

template<typename T , size_t N>
using esphome::StaticVector< T, N >::const_iterator = typename std::array<T, N>::const_iterator

Definition at line 231 of file helpers.h.

◆ const_reverse_iterator

template<typename T , size_t N>
using esphome::StaticVector< T, N >::const_reverse_iterator = std::reverse_iterator<const_iterator>

Definition at line 233 of file helpers.h.

◆ iterator

template<typename T , size_t N>
using esphome::StaticVector< T, N >::iterator = typename std::array<T, N>::iterator

Definition at line 230 of file helpers.h.

◆ reverse_iterator

template<typename T , size_t N>
using esphome::StaticVector< T, N >::reverse_iterator = std::reverse_iterator<iterator>

Definition at line 232 of file helpers.h.

◆ value_type

template<typename T , size_t N>
using esphome::StaticVector< T, N >::value_type = T

Definition at line 229 of file helpers.h.

Constructor & Destructor Documentation

◆ StaticVector() [1/4]

template<typename T , size_t N>
esphome::StaticVector< T, N >::StaticVector ( )
default

◆ StaticVector() [2/4]

template<typename T , size_t N>
template<typename InputIt >
esphome::StaticVector< T, N >::StaticVector ( InputIt first,
InputIt last )
inline

Definition at line 244 of file helpers.h.

◆ StaticVector() [3/4]

template<typename T , size_t N>
esphome::StaticVector< T, N >::StaticVector ( std::initializer_list< T > init)
inline

Definition at line 251 of file helpers.h.

◆ StaticVector() [4/4]

template<typename T , size_t N>
template<size_t M>
esphome::StaticVector< T, N >::StaticVector ( const StaticVector< T, M > & other)
inline

Definition at line 260 of file helpers.h.

Member Function Documentation

◆ assign()

template<typename T , size_t N>
template<typename InputIt >
void esphome::StaticVector< T, N >::assign ( InputIt first,
InputIt last )
inline

Definition at line 275 of file helpers.h.

◆ begin() [1/2]

template<typename T , size_t N>
iterator esphome::StaticVector< T, N >::begin ( )
inline

Definition at line 303 of file helpers.h.

◆ begin() [2/2]

template<typename T , size_t N>
const_iterator esphome::StaticVector< T, N >::begin ( ) const
inline

Definition at line 305 of file helpers.h.

◆ clear()

template<typename T , size_t N>
void esphome::StaticVector< T, N >::clear ( )
inline

Definition at line 272 of file helpers.h.

◆ data() [1/2]

template<typename T , size_t N>
T * esphome::StaticVector< T, N >::data ( )
inline

Definition at line 296 of file helpers.h.

◆ data() [2/2]

template<typename T , size_t N>
const T * esphome::StaticVector< T, N >::data ( ) const
inline

Definition at line 297 of file helpers.h.

◆ emplace_next()

template<typename T , size_t N>
T & esphome::StaticVector< T, N >::emplace_next ( )
inline

Definition at line 283 of file helpers.h.

◆ empty()

template<typename T , size_t N>
bool esphome::StaticVector< T, N >::empty ( ) const
inline

Definition at line 293 of file helpers.h.

◆ end() [1/2]

template<typename T , size_t N>
iterator esphome::StaticVector< T, N >::end ( )
inline

Definition at line 304 of file helpers.h.

◆ end() [2/2]

template<typename T , size_t N>
const_iterator esphome::StaticVector< T, N >::end ( ) const
inline

Definition at line 306 of file helpers.h.

◆ operator std::span< const T >()

template<typename T , size_t N>
esphome::StaticVector< T, N >::operator std::span< const T > ( ) const
inline

Definition at line 316 of file helpers.h.

◆ operator std::span< T >()

template<typename T , size_t N>
esphome::StaticVector< T, N >::operator std::span< T > ( )
inline

Definition at line 315 of file helpers.h.

◆ operator[]() [1/2]

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

Definition at line 299 of file helpers.h.

◆ operator[]() [2/2]

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

Definition at line 300 of file helpers.h.

◆ push_back()

template<typename T , size_t N>
void esphome::StaticVector< T, N >::push_back ( const T & value)
inline

Definition at line 265 of file helpers.h.

◆ rbegin() [1/2]

template<typename T , size_t N>
reverse_iterator esphome::StaticVector< T, N >::rbegin ( )
inline

Definition at line 309 of file helpers.h.

◆ rbegin() [2/2]

template<typename T , size_t N>
const_reverse_iterator esphome::StaticVector< T, N >::rbegin ( ) const
inline

Definition at line 311 of file helpers.h.

◆ rend() [1/2]

template<typename T , size_t N>
reverse_iterator esphome::StaticVector< T, N >::rend ( )
inline

Definition at line 310 of file helpers.h.

◆ rend() [2/2]

template<typename T , size_t N>
const_reverse_iterator esphome::StaticVector< T, N >::rend ( ) const
inline

Definition at line 312 of file helpers.h.

◆ size()

template<typename T , size_t N>
size_t esphome::StaticVector< T, N >::size ( ) const
inline

Definition at line 292 of file helpers.h.


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