ESPHome 2026.11.0-dev
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

constexpr StaticVector () noexcept
 
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 ()
 
void resize (size_t n)
 
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
 

Static Public Member Functions

static constexpr size_t capacity ()
 

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 286 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 290 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 292 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 289 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 291 of file helpers.h.

◆ value_type

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

Definition at line 288 of file helpers.h.

Constructor & Destructor Documentation

◆ StaticVector() [1/4]

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

Definition at line 301 of file helpers.h.

◆ 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 304 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 311 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 320 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 338 of file helpers.h.

◆ begin() [1/2]

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

Definition at line 367 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 369 of file helpers.h.

◆ capacity()

template<typename T , size_t N>
static constexpr size_t esphome::StaticVector< T, N >::capacity ( )
inlinestaticconstexpr

Definition at line 356 of file helpers.h.

◆ clear()

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

Definition at line 332 of file helpers.h.

◆ data() [1/2]

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

Definition at line 360 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 361 of file helpers.h.

◆ emplace_next()

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

Definition at line 346 of file helpers.h.

◆ empty()

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

Definition at line 357 of file helpers.h.

◆ end() [1/2]

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

Definition at line 368 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 370 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 380 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 379 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 363 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 364 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 325 of file helpers.h.

◆ rbegin() [1/2]

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

Definition at line 373 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 375 of file helpers.h.

◆ rend() [1/2]

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

Definition at line 374 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 376 of file helpers.h.

◆ resize()

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

Definition at line 335 of file helpers.h.

◆ size()

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

Definition at line 355 of file helpers.h.


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