Range-v3
Range algorithms, views, and actions for the Standard Library
ranges::v1::fixed_vector< T, N > Struct Template Reference

Description

template<typename T, std::size_t N>
struct ranges::v1::fixed_vector< T, N >

Like std::vector, but with a fixed-size buffer, guaranteed to do no dynamic allocation ever.

Friends

template<int _concept_requires___LINE__ = 42, typename std::enable_if< (_concept_requires___LINE__==43)||(Swappable< T & >()), int >::type = 0>
void swap (fixed_vector &lhs, fixed_vector &rhs) noexcept(is_nothrow_swappable< T & >::value)
 

Public Types

using const_iterator = T const *
 
using iterator = T *
 
using size_type = std::size_t
 
using value_type = T
 

Public Member Functions

T & at (std::size_t n)
 
T const & at (std::size_t n) const
 
T & back ()
 
T const & back () const
 
T * begin () noexcept
 
T const * begin () const noexcept
 
void clear ()
 
T * data () noexcept
 
T const * data () const noexcept
 
template<typename... Ts, int _concept_requires___LINE__ = 42, typename std::enable_if< (_concept_requires___LINE__==43)||(Constructible< T, Ts &&... >()), int >::type = 0>
void emplace_back (Ts &&...ts)
 
bool empty () const
 
T * end () noexcept
 
T const * end () const noexcept
 
template<int _concept_requires___LINE__ = 42, typename std::enable_if< (_concept_requires___LINE__==43)||(MoveConstructible< T >()), int >::type = 0>
 fixed_vector (fixed_vector &&that)
 
template<int _concept_requires___LINE__ = 42, typename std::enable_if< (_concept_requires___LINE__==43)||(CopyConstructible< T >()), int >::type = 0>
 fixed_vector (fixed_vector const &that)
 
template<int _concept_requires___LINE__ = 42, typename std::enable_if< (_concept_requires___LINE__==43)||(CopyConstructible< T >()), int >::type = 0>
 fixed_vector (std::initializer_list< T > il)
 
template<typename R , int _concept_requires___LINE__ = 42, typename std::enable_if< (_concept_requires___LINE__==43)||(InputRange< R >()&&Constructible< T, range_reference_t< R > && >()), int >::type = 0>
 fixed_vector (R &&r)
 
template<typename I , typename S , int _concept_requires___LINE__ = 42, typename std::enable_if< (_concept_requires___LINE__==43)||(IteratorRange< I, S >()&&InputIterator< I >()&& Constructible< T, iterator_reference_t< I > && >()), int >::type = 0>
 fixed_vector (I first, S last)
 
T & front ()
 
T const & front () const
 
template<int _concept_requires___LINE__ = 42, typename std::enable_if< (_concept_requires___LINE__==43)||(Copyable< T >()), int >::type = 0>
T * insert (T const *where, T const &value)
 
template<int _concept_requires___LINE__ = 42, typename std::enable_if< (_concept_requires___LINE__==43)||(Movable< T >()), int >::type = 0>
T * insert (T const *where, T &&value)
 
T * insert (T const *where, std::size_t count, T const &value)
 
template<typename I , typename S , int _concept_requires___LINE__ = 42, typename std::enable_if< (_concept_requires___LINE__==43)||(IteratorRange< I, S >()&&Readable< I >()&&Movable< T >()&& Constructible< T, iterator_reference_t< I > && >()&& Assignable< T &, iterator_reference_t< I > && >()), int >::type = 0>
T * insert (T const *where, I first, S last)
 
template<int _concept_requires___LINE__ = 42, typename std::enable_if< (_concept_requires___LINE__==43)||(Copyable< T >()), int >::type = 0>
T * insert (T const *where, std::initializer_list< T > il)
 
template<typename R , int _concept_requires___LINE__ = 42, typename std::enable_if< (_concept_requires___LINE__==43)||(InputRange< R >()&&Constructible< T, range_reference_t< R > && >()&& Movable< T >()&&Assignable< T &, range_reference_t< R > && >()), int >::type = 0>
T * insert (T const *where, R &&r)
 
template<int _concept_requires___LINE__ = 42, typename std::enable_if< (_concept_requires___LINE__==43)||(Movable< T >()), int >::type = 0>
fixed_vectoroperator= (fixed_vector &&that)
 
template<int _concept_requires___LINE__ = 42, typename std::enable_if< (_concept_requires___LINE__==43)||(Copyable< T >()), int >::type = 0>
fixed_vectoroperator= (fixed_vector const &that)
 
template<int _concept_requires___LINE__ = 42, typename std::enable_if< (_concept_requires___LINE__==43)||(Movable< T >()), int >::type = 0>
fixed_vectoroperator= (std::initializer_list< T > il)
 
template<typename R , int _concept_requires___LINE__ = 42, typename std::enable_if< (_concept_requires___LINE__==43)||(InputRange< R >()&&Constructible< T, range_reference_t< R > && >()&& Assignable< T &, range_reference_t< R > && >()), int >::type = 0>
fixed_vectoroperator= (R &&r)
 
T & operator[] (std::size_t n) noexcept
 
T const & operator[] (std::size_t n) const noexcept
 
void pop_back ()
 
template<int _concept_requires___LINE__ = 42, typename std::enable_if< (_concept_requires___LINE__==43)||(CopyConstructible< T >()), int >::type = 0>
void push_back (T const &t)
 
template<int _concept_requires___LINE__ = 42, typename std::enable_if< (_concept_requires___LINE__==43)||(MoveConstructible< T >()), int >::type = 0>
void push_back (T &&t)
 
template<int _concept_requires___LINE__ = 42, typename std::enable_if< (_concept_requires___LINE__==43)||(DefaultConstructible< T >()), int >::type = 0>
void resize (std::size_t count)
 
template<int _concept_requires___LINE__ = 42, typename std::enable_if< (_concept_requires___LINE__==43)||(CopyConstructible< T >()), int >::type = 0>
void resize (std::size_t count, T const &value)
 
std::size_t size () const noexcept
 
template<int _concept_requires___LINE__ = 42, typename std::enable_if< (_concept_requires___LINE__==43)||(Swappable< T & >()), int >::type = 0>
void swap (fixed_vector &that) noexcept(is_nothrow_swappable< T & >::value)
 

Static Public Member Functions

static constexpr std::size_t capacity () noexcept
 
static constexpr std::size_t max_size () noexcept