Namespaces
Variants
Actions

Standard library header <inplace_vector> (C++26)

From cppreference.com
< cpp‎ | header
 
 
Standard library headers
 

This header is part of the containers library.

Contents

Includes

(C++20)
Three-way comparison operator support[edit]
std::initializer_list class template[edit]

Classes

resizable, fixed capacity, inplace contiguous array
(class template)[edit]

Functions

erases all elements satisfying specific criteria
(function template)[edit]

[edit]Synopsis

// mostly freestanding#include <compare>#include <initializer_list>   namespace std {// class template inplace_vectortemplate<class T, size_t N>class inplace_vector;// partially freestanding   // erasuretemplate<class T, size_t N, class U = T>constexprtypename inplace_vector<T, N>::size_type erase(inplace_vector<T, N>& c, const U& value);template<class T, size_t N, class Predicate>constexprtypename inplace_vector<T, N>::size_type erase_if(inplace_vector<T, N>& c, Predicate pred);}

[edit]Class template std::inplace_vector

namespace std {template<class T, size_t N>class inplace_vector {public:// types:using value_type = T;using pointer = T*;using const_pointer =const T*;using reference = value_type&;using const_reference =const value_type&;using size_type = size_t;using difference_type = ptrdiff_t;using iterator =/* implementation-defined */;using const_iterator =/* implementation-defined */;using reverse_iterator =std::reverse_iterator<iterator>;using const_reverse_iterator =std::reverse_iterator<const_iterator>;   // construct/copy/destroyconstexpr inplace_vector()noexcept;constexprexplicit inplace_vector(size_type n);// freestanding-deletedconstexpr inplace_vector(size_type n, const T& value);// freestanding-deletedtemplate<class InputIter>constexpr inplace_vector(InputIter first, InputIter last);// freestanding-deletedtemplate<container-compatible-range<T> R>constexpr inplace_vector(from_range_t, R&& rg);// freestanding-deletedconstexpr inplace_vector(const inplace_vector&);constexpr inplace_vector(inplace_vector&&)noexcept( N ==0|| is_nothrow_move_constructible_v<T>);constexpr inplace_vector(initializer_list<T> il);// freestanding-deletedconstexpr ~inplace_vector();constexpr inplace_vector& operator=(const inplace_vector& other);constexpr inplace_vector& operator=(inplace_vector&& other)noexcept( N ==0||(is_nothrow_move_assignable_v<T>&& is_nothrow_move_constructible_v<T>));constexpr inplace_vector& operator=(initializer_list<T>);// freestanding-deletedtemplate<class InputIter>constexprvoid assign(InputIter first, InputIter last);// freestanding-deletedtemplate<container-compatible-range<T> R>constexprvoid assign_range(R&& rg);// freestanding-deletedconstexprvoid assign(size_type n, const T& u);// freestanding-deletedconstexprvoid assign(initializer_list<T> il);// freestanding-deleted   // iteratorsconstexpr iterator begin()noexcept;constexpr const_iterator begin()constnoexcept;constexpr iterator end()noexcept;constexpr const_iterator end()constnoexcept;constexpr reverse_iterator rbegin()noexcept;constexpr const_reverse_iterator rbegin()constnoexcept;constexpr reverse_iterator rend()noexcept;constexpr const_reverse_iterator rend()constnoexcept;   constexpr const_iterator cbegin()constnoexcept;constexpr const_iterator cend()constnoexcept;constexpr const_reverse_iterator crbegin()constnoexcept;constexpr const_reverse_iterator crend()constnoexcept;   // size/capacityconstexprbool empty()constnoexcept;constexpr size_type size()constnoexcept;staticconstexpr size_type max_size()noexcept;staticconstexpr size_type capacity()noexcept;constexprvoid resize(size_type sz);// freestanding-deletedconstexprvoid resize(size_type sz, const T& c);// freestanding-deletedstaticconstexprvoid reserve(size_type n);// freestanding-deletedstaticconstexprvoid shrink_to_fit()noexcept;   // element accessconstexpr reference operator[](size_type n);constexpr const_reference operator[](size_type n)const;constexpr reference at(size_type n);// freestanding-deletedconstexpr const_reference at(size_type n)const;// freestanding-deletedconstexpr reference front();constexpr const_reference front()const;constexpr reference back();constexpr const_reference back()const;   // data accessconstexpr T* data()noexcept;constexprconst T* data()constnoexcept;   // modifierstemplate<class... Args>constexpr reference emplace_back(Args&&... args);// freestanding-deletedconstexpr reference push_back(const T& x);// freestanding-deletedconstexpr reference push_back(T&& x);// freestanding-deletedtemplate<container-compatible-range<T> R>constexprvoid append_range(R&& rg);// freestanding-deletedconstexprvoid pop_back();   template<class... Args>constexpr pointer try_emplace_back(Args&&... args);constexpr pointer try_push_back(const T& x);constexpr pointer try_push_back(T&& x);template<container-compatible-range<T> R>constexprranges::borrowed_iterator_t<R> try_append_range(R&& rg);   template<class... Args>constexpr reference unchecked_emplace_back(Args&&... args);constexpr reference unchecked_push_back(const T& x);constexpr reference unchecked_push_back(T&& x);   template<class... Args>constexpr iterator emplace(const_iterator position, Args&&... args);// freestanding-deletedconstexpr iterator insert(const_iterator position, const T& x);// freestanding-deletedconstexpr iterator insert(const_iterator position, T&& x);// freestanding-deletedconstexpr iterator insert(const_iterator position, size_type n, // freestanding-deletedconst T& x);template<class InputIter>constexpr iterator insert(const_iterator position, // freestanding-deleted InputIter first, InputIter last);template<container-compatible-range<T> R>constexpr iterator insert_range(const_iterator position, R&& rg);// freestanding-deletedconstexpr iterator insert(const_iterator position, // freestanding-deleted initializer_list<T> il);constexpr iterator erase(const_iterator position);constexpr iterator erase(const_iterator first, const_iterator last);constexprvoid swap(inplace_vector& x)noexcept(N ==0||(is_nothrow_swappable_v<T>&& is_nothrow_move_constructible_v<T>));constexprvoid clear()noexcept;   constexprfriendbool operator==(const inplace_vector& x, const inplace_vector& y);constexprfriend/*synth-three-way-result*/<T> operator<=>(const inplace_vector& x, const inplace_vector& y);constexprfriendvoid swap(inplace_vector& x, inplace_vector& y)noexcept( N ==0||(is_nothrow_swappable_v<T>&& is_nothrow_move_constructible_v<T>)){ x.swap(y);}};}
close