plugify 1.2.8
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Member Functions | Friends | List of all members
plg::inplace_vector< T, N > Class Template Reference
Inheritance diagram for plg::inplace_vector< T, N >:
Inheritance graph
[legend]
Collaboration diagram for plg::inplace_vector< T, N >:
Collaboration graph
[legend]

Public Types

using value_type = T
 
using pointer = T *
 
using const_pointer = const T *
 
using reference = T &
 
using const_reference = const T &
 
using size_type = size_t
 
using difference_type = ptrdiff_t
 
using iterator = T *
 
using const_iterator = const T *
 
using reverse_iterator = std::reverse_iterator< iterator >
 
using const_reverse_iterator = std::reverse_iterator< const_iterator >
 

Public Member Functions

 inplace_vector (inplace_vector &&)=default
 
 inplace_vector (const inplace_vector &)=default
 
inplace_vectoroperator= (inplace_vector &&)=default
 
inplace_vectoroperator= (const inplace_vector &)=default
 
inplace_vectoroperator= (std::initializer_list< value_type > il)
 
constexpr inplace_vector (std::initializer_list< value_type > il)
 
constexpr inplace_vector (size_t n)
 
constexpr inplace_vector (size_t n, const value_type &value)
 
template<std::input_iterator InputIterator>
requires std::constructible_from<T, typename std::iterator_traits<InputIterator>::value_type>
constexpr inplace_vector (InputIterator first, InputIterator last)
 
constexpr void assign (std::initializer_list< value_type > il)
 
constexpr void assign (size_t n, const value_type &value)
 
template<std::input_iterator InputIterator>
requires std::is_constructible_v<T, typename std::iterator_traits<InputIterator>::value_type>
constexpr void assign (InputIterator first, InputIterator last)
 
constexpr iterator begin () noexcept
 
constexpr iterator end () noexcept
 
constexpr const_iterator begin () const noexcept
 
constexpr const_iterator end () const noexcept
 
constexpr reverse_iterator rbegin () noexcept
 
constexpr reverse_iterator rend () noexcept
 
constexpr const_reverse_iterator rbegin () const noexcept
 
constexpr const_reverse_iterator rend () const noexcept
 
constexpr const_iterator cbegin () const noexcept
 
constexpr const_iterator cend () const noexcept
 
constexpr const_reverse_iterator crbegin () const noexcept
 
constexpr const_reverse_iterator crend () const noexcept
 
constexpr void resize (size_type n)
 
constexpr void resize (size_type n, const value_type &value)
 
constexpr reference operator[] (size_type pos)
 
constexpr reference front ()
 
constexpr reference back ()
 
constexpr const_reference operator[] (size_type pos) const
 
constexpr const_reference front () const
 
constexpr const_reference back () const
 
constexpr reference at (size_type i)
 
constexpr const_reference at (size_type i) const
 
constexpr T * data () noexcept
 
constexpr const T * data () const noexcept
 
constexpr size_type size () const noexcept
 
constexpr bool empty () const noexcept
 
template<class... Args>
requires std::is_constructible_v<T, Args...>
value_type & unchecked_emplace_back (Args &&... args)
 
value_type & unchecked_push_back (const value_type &value)
 
value_type & unchecked_push_back (value_type &&value)
 
template<class... Args>
requires std::is_constructible_v<T, Args...>
constexpr value_type * try_emplace_back (Args &&... args)
 
constexpr value_type * try_push_back (const value_type &value)
 
constexpr value_type * try_push_back (value_type &&value)
 
template<class... Args>
requires std::is_constructible_v<T, Args...>
value_type & emplace_back (Args &&... args)
 
value_type & push_back (const value_type &value)
 
value_type & push_back (value_type &&value)
 
void pop_back ()
 
template<class... Args>
requires std::is_constructible_v<T, Args...>
iterator emplace (const_iterator pos, Args &&... args)
 
iterator insert (const_iterator pos, const value_type &value)
 
iterator insert (const_iterator pos, value_type &&value)
 
iterator insert (const_iterator pos, size_type n, const value_type &value)
 
template<std::input_iterator InputIterator>
requires (std::is_constructible_v<T, typename std::iterator_traits<InputIterator>::value_type> && !std::is_const_v<T>)
iterator insert (const_iterator pos, InputIterator first, InputIterator last)
 
iterator insert (const_iterator pos, std::initializer_list< value_type > il)
 
iterator erase (const_iterator pos)
 
iterator erase (const_iterator first, const_iterator last)
 
constexpr void clear () noexcept
 
constexpr void swap (inplace_vector &b) noexcept(N==0||(std::is_nothrow_swappable_v< T > &&std::is_nothrow_move_constructible_v< T >))
 

Static Public Member Functions

static constexpr void reserve (size_type n)
 
static constexpr void shrink_to_fit () noexcept
 
static constexpr size_type max_size () noexcept
 
static constexpr size_type capacity () noexcept
 

Friends

constexpr void swap (inplace_vector &a, inplace_vector &b) noexcept(noexcept(a.swap(b)))
 
constexpr friend bool operator== (const inplace_vector &lhs, const inplace_vector &rhs)
 
constexpr friend bool operator< (const inplace_vector &a, const inplace_vector &b)
 
constexpr friend bool operator> (const inplace_vector &a, const inplace_vector &b)
 
constexpr friend bool operator<= (const inplace_vector &a, const inplace_vector &b)
 
constexpr friend bool operator>= (const inplace_vector &a, const inplace_vector &b)
 
constexpr friend bool operator!= (const inplace_vector &a, const inplace_vector &b)
 

Detailed Description

template<class T, size_t N>
class plg::inplace_vector< T, N >

Definition at line 204 of file inplace_vector.hpp.

Member Typedef Documentation

◆ const_iterator

template<class T , size_t N>
using plg::inplace_vector< T, N >::const_iterator = const T*

Definition at line 216 of file inplace_vector.hpp.

◆ const_pointer

template<class T , size_t N>
using plg::inplace_vector< T, N >::const_pointer = const T*

Definition at line 210 of file inplace_vector.hpp.

◆ const_reference

template<class T , size_t N>
using plg::inplace_vector< T, N >::const_reference = const T&

Definition at line 212 of file inplace_vector.hpp.

◆ const_reverse_iterator

template<class T , size_t N>
using plg::inplace_vector< T, N >::const_reverse_iterator = std::reverse_iterator<const_iterator>

Definition at line 218 of file inplace_vector.hpp.

◆ difference_type

template<class T , size_t N>
using plg::inplace_vector< T, N >::difference_type = ptrdiff_t

Definition at line 214 of file inplace_vector.hpp.

◆ iterator

template<class T , size_t N>
using plg::inplace_vector< T, N >::iterator = T*

Definition at line 215 of file inplace_vector.hpp.

◆ pointer

template<class T , size_t N>
using plg::inplace_vector< T, N >::pointer = T*

Definition at line 209 of file inplace_vector.hpp.

◆ reference

template<class T , size_t N>
using plg::inplace_vector< T, N >::reference = T&

Definition at line 211 of file inplace_vector.hpp.

◆ reverse_iterator

template<class T , size_t N>
using plg::inplace_vector< T, N >::reverse_iterator = std::reverse_iterator<iterator>

Definition at line 217 of file inplace_vector.hpp.

◆ size_type

template<class T , size_t N>
using plg::inplace_vector< T, N >::size_type = size_t

Definition at line 213 of file inplace_vector.hpp.

◆ value_type

template<class T , size_t N>
using plg::inplace_vector< T, N >::value_type = T

Definition at line 208 of file inplace_vector.hpp.

Constructor & Destructor Documentation

◆ inplace_vector() [1/4]

template<class T , size_t N>
constexpr plg::inplace_vector< T, N >::inplace_vector ( std::initializer_list< value_type >  il)
inlineconstexpr

Definition at line 234 of file inplace_vector.hpp.

◆ inplace_vector() [2/4]

template<class T , size_t N>
constexpr plg::inplace_vector< T, N >::inplace_vector ( size_t  n)
inlineexplicitconstexpr

Definition at line 236 of file inplace_vector.hpp.

◆ inplace_vector() [3/4]

template<class T , size_t N>
constexpr plg::inplace_vector< T, N >::inplace_vector ( size_t  n,
const value_type &  value 
)
inlineexplicitconstexpr

Definition at line 245 of file inplace_vector.hpp.

◆ inplace_vector() [4/4]

template<class T , size_t N>
template<std::input_iterator InputIterator>
requires std::constructible_from<T, typename std::iterator_traits<InputIterator>::value_type>
constexpr plg::inplace_vector< T, N >::inplace_vector ( InputIterator  first,
InputIterator  last 
)
inlineexplicitconstexpr

Definition at line 253 of file inplace_vector.hpp.

Member Function Documentation

◆ assign() [1/3]

template<class T , size_t N>
template<std::input_iterator InputIterator>
requires std::is_constructible_v<T, typename std::iterator_traits<InputIterator>::value_type>
constexpr void plg::inplace_vector< T, N >::assign ( InputIterator  first,
InputIterator  last 
)
inlineconstexpr

Definition at line 292 of file inplace_vector.hpp.

◆ assign() [2/3]

template<class T , size_t N>
constexpr void plg::inplace_vector< T, N >::assign ( size_t  n,
const value_type &  value 
)
inlineconstexpr

Definition at line 275 of file inplace_vector.hpp.

◆ assign() [3/3]

template<class T , size_t N>
constexpr void plg::inplace_vector< T, N >::assign ( std::initializer_list< value_type >  il)
inlineconstexpr

Definition at line 269 of file inplace_vector.hpp.

◆ at() [1/2]

template<class T , size_t N>
constexpr reference plg::inplace_vector< T, N >::at ( size_type  i)
inlineconstexpr

Definition at line 422 of file inplace_vector.hpp.

◆ at() [2/2]

template<class T , size_t N>
constexpr const_reference plg::inplace_vector< T, N >::at ( size_type  i) const
inlineconstexpr

Definition at line 428 of file inplace_vector.hpp.

◆ back() [1/2]

template<class T , size_t N>
constexpr reference plg::inplace_vector< T, N >::back ( )
inlineconstexpr

Definition at line 404 of file inplace_vector.hpp.

◆ back() [2/2]

template<class T , size_t N>
constexpr const_reference plg::inplace_vector< T, N >::back ( ) const
inlineconstexpr

Definition at line 417 of file inplace_vector.hpp.

◆ begin() [1/2]

template<class T , size_t N>
constexpr const_iterator plg::inplace_vector< T, N >::begin ( ) const
inlineconstexprnoexcept

Definition at line 348 of file inplace_vector.hpp.

◆ begin() [2/2]

template<class T , size_t N>
constexpr iterator plg::inplace_vector< T, N >::begin ( )
inlineconstexprnoexcept

Definition at line 346 of file inplace_vector.hpp.

◆ capacity()

template<class T , size_t N>
static constexpr size_type plg::inplace_vector< T, N >::capacity ( )
inlinestaticconstexprnoexcept

Definition at line 441 of file inplace_vector.hpp.

◆ cbegin()

template<class T , size_t N>
constexpr const_iterator plg::inplace_vector< T, N >::cbegin ( ) const
inlineconstexprnoexcept

Definition at line 354 of file inplace_vector.hpp.

◆ cend()

template<class T , size_t N>
constexpr const_iterator plg::inplace_vector< T, N >::cend ( ) const
inlineconstexprnoexcept

Definition at line 355 of file inplace_vector.hpp.

◆ clear()

template<class T , size_t N>
constexpr void plg::inplace_vector< T, N >::clear ( )
inlineconstexprnoexcept

Definition at line 694 of file inplace_vector.hpp.

◆ crbegin()

template<class T , size_t N>
constexpr const_reverse_iterator plg::inplace_vector< T, N >::crbegin ( ) const
inlineconstexprnoexcept

Definition at line 356 of file inplace_vector.hpp.

◆ crend()

template<class T , size_t N>
constexpr const_reverse_iterator plg::inplace_vector< T, N >::crend ( ) const
inlineconstexprnoexcept

Definition at line 357 of file inplace_vector.hpp.

◆ data() [1/2]

template<class T , size_t N>
constexpr const T * plg::inplace_vector< T, N >::data ( ) const
inlineconstexprnoexcept

Definition at line 438 of file inplace_vector.hpp.

◆ data() [2/2]

template<class T , size_t N>
constexpr T * plg::inplace_vector< T, N >::data ( )
inlineconstexprnoexcept

Definition at line 437 of file inplace_vector.hpp.

◆ emplace()

template<class T , size_t N>
template<class... Args>
requires std::is_constructible_v<T, Args...>
iterator plg::inplace_vector< T, N >::emplace ( const_iterator  pos,
Args &&...  args 
)
inline

Definition at line 521 of file inplace_vector.hpp.

◆ emplace_back()

template<class T , size_t N>
template<class... Args>
requires std::is_constructible_v<T, Args...>
value_type & plg::inplace_vector< T, N >::emplace_back ( Args &&...  args)
inline

Definition at line 487 of file inplace_vector.hpp.

◆ empty()

template<class T , size_t N>
constexpr bool plg::inplace_vector< T, N >::empty ( ) const
inlineconstexprnoexcept

Definition at line 442 of file inplace_vector.hpp.

◆ end() [1/2]

template<class T , size_t N>
constexpr const_iterator plg::inplace_vector< T, N >::end ( ) const
inlineconstexprnoexcept

Definition at line 349 of file inplace_vector.hpp.

◆ end() [2/2]

template<class T , size_t N>
constexpr iterator plg::inplace_vector< T, N >::end ( )
inlineconstexprnoexcept

Definition at line 347 of file inplace_vector.hpp.

◆ erase() [1/2]

template<class T , size_t N>
iterator plg::inplace_vector< T, N >::erase ( const_iterator  first,
const_iterator  last 
)
inline

Definition at line 672 of file inplace_vector.hpp.

◆ erase() [2/2]

template<class T , size_t N>
iterator plg::inplace_vector< T, N >::erase ( const_iterator  pos)
inline

Definition at line 653 of file inplace_vector.hpp.

◆ front() [1/2]

template<class T , size_t N>
constexpr reference plg::inplace_vector< T, N >::front ( )
inlineconstexpr

Definition at line 400 of file inplace_vector.hpp.

◆ front() [2/2]

template<class T , size_t N>
constexpr const_reference plg::inplace_vector< T, N >::front ( ) const
inlineconstexpr

Definition at line 413 of file inplace_vector.hpp.

◆ insert() [1/5]

template<class T , size_t N>
iterator plg::inplace_vector< T, N >::insert ( const_iterator  pos,
const value_type &  value 
)
inline

Definition at line 527 of file inplace_vector.hpp.

◆ insert() [2/5]

template<class T , size_t N>
template<std::input_iterator InputIterator>
requires (std::is_constructible_v<T, typename std::iterator_traits<InputIterator>::value_type> && !std::is_const_v<T>)
iterator plg::inplace_vector< T, N >::insert ( const_iterator  pos,
InputIterator  first,
InputIterator  last 
)
inline

Definition at line 569 of file inplace_vector.hpp.

◆ insert() [3/5]

template<class T , size_t N>
iterator plg::inplace_vector< T, N >::insert ( const_iterator  pos,
size_type  n,
const value_type &  value 
)
inline

Definition at line 538 of file inplace_vector.hpp.

◆ insert() [4/5]

template<class T , size_t N>
iterator plg::inplace_vector< T, N >::insert ( const_iterator  pos,
std::initializer_list< value_type >  il 
)
inline

Definition at line 647 of file inplace_vector.hpp.

◆ insert() [5/5]

template<class T , size_t N>
iterator plg::inplace_vector< T, N >::insert ( const_iterator  pos,
value_type &&  value 
)
inline

Definition at line 532 of file inplace_vector.hpp.

◆ max_size()

template<class T , size_t N>
static constexpr size_type plg::inplace_vector< T, N >::max_size ( )
inlinestaticconstexprnoexcept

Definition at line 440 of file inplace_vector.hpp.

◆ operator=()

template<class T , size_t N>
inplace_vector & plg::inplace_vector< T, N >::operator= ( std::initializer_list< value_type >  il)
inline

Definition at line 227 of file inplace_vector.hpp.

◆ operator[]() [1/2]

template<class T , size_t N>
constexpr reference plg::inplace_vector< T, N >::operator[] ( size_type  pos)
inlineconstexpr

Definition at line 396 of file inplace_vector.hpp.

◆ operator[]() [2/2]

template<class T , size_t N>
constexpr const_reference plg::inplace_vector< T, N >::operator[] ( size_type  pos) const
inlineconstexpr

Definition at line 409 of file inplace_vector.hpp.

◆ pop_back()

template<class T , size_t N>
void plg::inplace_vector< T, N >::pop_back ( )
inline

Definition at line 514 of file inplace_vector.hpp.

◆ push_back() [1/2]

template<class T , size_t N>
value_type & plg::inplace_vector< T, N >::push_back ( const value_type &  value)
inline

Definition at line 493 of file inplace_vector.hpp.

◆ push_back() [2/2]

template<class T , size_t N>
value_type & plg::inplace_vector< T, N >::push_back ( value_type &&  value)
inline

Definition at line 498 of file inplace_vector.hpp.

◆ rbegin() [1/2]

template<class T , size_t N>
constexpr const_reverse_iterator plg::inplace_vector< T, N >::rbegin ( ) const
inlineconstexprnoexcept

Definition at line 352 of file inplace_vector.hpp.

◆ rbegin() [2/2]

template<class T , size_t N>
constexpr reverse_iterator plg::inplace_vector< T, N >::rbegin ( )
inlineconstexprnoexcept

Definition at line 350 of file inplace_vector.hpp.

◆ rend() [1/2]

template<class T , size_t N>
constexpr const_reverse_iterator plg::inplace_vector< T, N >::rend ( ) const
inlineconstexprnoexcept

Definition at line 353 of file inplace_vector.hpp.

◆ rend() [2/2]

template<class T , size_t N>
constexpr reverse_iterator plg::inplace_vector< T, N >::rend ( )
inlineconstexprnoexcept

Definition at line 351 of file inplace_vector.hpp.

◆ reserve()

template<class T , size_t N>
static constexpr void plg::inplace_vector< T, N >::reserve ( size_type  n)
inlinestaticconstexpr

Definition at line 387 of file inplace_vector.hpp.

◆ resize() [1/2]

template<class T , size_t N>
constexpr void plg::inplace_vector< T, N >::resize ( size_type  n)
inlineconstexpr

Definition at line 359 of file inplace_vector.hpp.

◆ resize() [2/2]

template<class T , size_t N>
constexpr void plg::inplace_vector< T, N >::resize ( size_type  n,
const value_type &  value 
)
inlineconstexpr

Definition at line 373 of file inplace_vector.hpp.

◆ shrink_to_fit()

template<class T , size_t N>
static constexpr void plg::inplace_vector< T, N >::shrink_to_fit ( )
inlinestaticconstexprnoexcept

Definition at line 392 of file inplace_vector.hpp.

◆ size()

template<class T , size_t N>
constexpr size_type plg::inplace_vector< T, N >::size ( ) const
inlineconstexprnoexcept

Definition at line 439 of file inplace_vector.hpp.

◆ swap()

template<class T , size_t N>
constexpr void plg::inplace_vector< T, N >::swap ( inplace_vector< T, N > &  b)
inlineconstexprnoexcept

Definition at line 699 of file inplace_vector.hpp.

◆ try_emplace_back()

template<class T , size_t N>
template<class... Args>
requires std::is_constructible_v<T, Args...>
constexpr value_type * plg::inplace_vector< T, N >::try_emplace_back ( Args &&...  args)
inlineconstexpr

Definition at line 468 of file inplace_vector.hpp.

◆ try_push_back() [1/2]

template<class T , size_t N>
constexpr value_type * plg::inplace_vector< T, N >::try_push_back ( const value_type &  value)
inlineconstexpr

Definition at line 474 of file inplace_vector.hpp.

◆ try_push_back() [2/2]

template<class T , size_t N>
constexpr value_type * plg::inplace_vector< T, N >::try_push_back ( value_type &&  value)
inlineconstexpr

Definition at line 479 of file inplace_vector.hpp.

◆ unchecked_emplace_back()

template<class T , size_t N>
template<class... Args>
requires std::is_constructible_v<T, Args...>
value_type & plg::inplace_vector< T, N >::unchecked_emplace_back ( Args &&...  args)
inline

Definition at line 448 of file inplace_vector.hpp.

◆ unchecked_push_back() [1/2]

template<class T , size_t N>
value_type & plg::inplace_vector< T, N >::unchecked_push_back ( const value_type &  value)
inline

Definition at line 455 of file inplace_vector.hpp.

◆ unchecked_push_back() [2/2]

template<class T , size_t N>
value_type & plg::inplace_vector< T, N >::unchecked_push_back ( value_type &&  value)
inline

Definition at line 460 of file inplace_vector.hpp.

Friends And Related Symbol Documentation

◆ operator!=

template<class T , size_t N>
constexpr friend bool operator!= ( const inplace_vector< T, N > &  a,
const inplace_vector< T, N > &  b 
)
friend

Definition at line 753 of file inplace_vector.hpp.

◆ operator<

template<class T , size_t N>
constexpr friend bool operator< ( const inplace_vector< T, N > &  a,
const inplace_vector< T, N > &  b 
)
friend

Definition at line 737 of file inplace_vector.hpp.

◆ operator<=

template<class T , size_t N>
constexpr friend bool operator<= ( const inplace_vector< T, N > &  a,
const inplace_vector< T, N > &  b 
)
friend

Definition at line 751 of file inplace_vector.hpp.

◆ operator==

template<class T , size_t N>
constexpr friend bool operator== ( const inplace_vector< T, N > &  lhs,
const inplace_vector< T, N > &  rhs 
)
friend

Definition at line 727 of file inplace_vector.hpp.

◆ operator>

template<class T , size_t N>
constexpr friend bool operator> ( const inplace_vector< T, N > &  a,
const inplace_vector< T, N > &  b 
)
friend

Definition at line 750 of file inplace_vector.hpp.

◆ operator>=

template<class T , size_t N>
constexpr friend bool operator>= ( const inplace_vector< T, N > &  a,
const inplace_vector< T, N > &  b 
)
friend

Definition at line 752 of file inplace_vector.hpp.

◆ swap

template<class T , size_t N>
constexpr void swap ( inplace_vector< T, N > &  a,
inplace_vector< T, N > &  b 
)
friend

Definition at line 723 of file inplace_vector.hpp.


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