(C++17) | ||||
| Sequence | ||||
(C++11) | ||||
(C++26) | ||||
(C++26) | ||||
(C++11) | ||||
| Associative | ||||
| Unordered associative | ||||
(C++11) | ||||
(C++11) | ||||
(C++11) | ||||
(C++11) | ||||
| Adaptors | ||||
(C++23) | ||||
(C++23) | ||||
(C++23) | ||||
(C++23) | ||||
| Views | ||||
(C++20) | ||||
(C++23) | ||||
| Tables | ||||
| Iterator invalidation | ||||
| Member function table | ||||
| Non-member function table |
| Member types | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Non-member functions | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
constexpr pointer try_push_back(const T& value); | (1) | (since C++26) |
constexpr pointer try_push_back( T&& value); | (2) | (since C++26) |
Conditionally appends the given elementvalue to the end of the container.
Ifsize()== capacity() istrue, there are no effects. Otherwise, appends an object of typeT:
No iterators or references are invalidated, exceptend(), which is invalidated if the insertion occurs.
Contents |
| value | - | the value of the element to append |
| Type requirements | ||
-T must meet the requirements ofEmplaceConstructible. | ||
std::addressof(back()) ifsize()< capacity(),nullptr otherwise.
Constant.
Any exception thrown by initialization of inserted element.
If an exception is thrown for any reason, these functions have no effect (strong exception safety guarantee).
| This section is incomplete Reason: Explain the purpose of this API. |
#include <cassert>#include <inplace_vector>#include <string> int main(){std::inplace_vector<std::string,2> pets;std::string dog{"dog"}; std::string* p1= pets.try_push_back("cat");// overload (1)assert(*p1=="cat" and pets.size()==1); std::string* p2= pets.try_push_back(std::move(dog));// overload (2)assert(*p2=="dog" and pets.size()==2); assert(pets[0]=="cat" and pets[1]=="dog");assert(pets.size()== pets.capacity()); std::string* p3= pets.try_push_back("bug");assert(p3== nullptr and pets.size()==2);}
| adds an element to the end (public member function)[edit] | |
| constructs an element in-place at the end (public member function)[edit] | |
| adds a range of elements to the end (public member function)[edit] | |
| tries to construct an element in-place at the end (public member function)[edit] | |
| tries to add a range of elements to the end (public member function)[edit] | |
| unconditionally constructs an element in-place at the end (public member function)[edit] | |
| unconditionally adds an element to the end (public member function)[edit] | |
| removes the last element (public member function)[edit] | |
| creates astd::back_insert_iterator of type inferred from the argument (function template)[edit] |