3#if _cpp_lib_inplace_vector >= 202406L
5#include <inplace_vector>
14template <
typename T,
size_t N>
15using InplaceStack = std::stack<T, std::inplace_vector<T, N>>;
30template <
typename T,
size_t N>
34 const T&
top()
const { assert( size_ > 0 );
return data_[size_-1]; }
35 T&
top() { assert( size_ > 0 );
return data_[size_-1]; }
37 bool empty()
const {
return size_ == 0; }
38 size_t size()
const {
return size_; }
40 void push(
const T& value ) { assert( size_ < N ); data_[size_++] = value; }
41 void push( T&& value ) { assert( size_ < N ); data_[size_++] = std::move( value ); }
43 void pop() { assert( size_ > 0 ); size_--; }
46 std::array<T, N> data_;
Container class implementing in-place static sized stack.
Definition MRInplaceStack.h:32
const T & top() const
Definition MRInplaceStack.h:34
void pop()
Definition MRInplaceStack.h:43
bool empty() const
Definition MRInplaceStack.h:37
size_t size() const
Definition MRInplaceStack.h:38
void push(const T &value)
Definition MRInplaceStack.h:40
void push(T &&value)
Definition MRInplaceStack.h:41
T & top()
Definition MRInplaceStack.h:35
only for bindings generation
Definition MRCameraOrientationPlugin.h:8