3#if _cpp_lib_inplace_vector >= 202406L
5#include <inplace_vector>
11template <
typename T,
size_t N>
12using InplaceStack = std::stack<T, std::inplace_vector<T, N>>;
24template <
typename T,
size_t N>
28 const T&
top()
const { assert( size_ > 0 );
return data_[size_-1]; }
29 T&
top() { assert( size_ > 0 );
return data_[size_-1]; }
31 bool empty()
const {
return size_ == 0; }
32 size_t size()
const {
return size_; }
34 void push(
const T& value ) { assert( size_ < N ); data_[size_++] = value; }
35 void push( T&& value ) { assert( size_ < N ); data_[size_++] = std::move( value ); }
37 void pop() { assert( size_ > 0 ); size_--; }
40 std::array<T, N> data_;
Container class implementing in-place static sized stack.
Definition MRInplaceStack.h:26
const T & top() const
Definition MRInplaceStack.h:28
void pop()
Definition MRInplaceStack.h:37
bool empty() const
Definition MRInplaceStack.h:31
size_t size() const
Definition MRInplaceStack.h:32
void push(const T &value)
Definition MRInplaceStack.h:34
void push(T &&value)
Definition MRInplaceStack.h:35
T & top()
Definition MRInplaceStack.h:29
Definition MRCameraOrientationPlugin.h:8