5 #ifndef _SPICA_QUEUE_H_
6 #define _SPICA_QUEUE_H_
18 static const int kInitSize = 512;
28 , _data(new T[kInitSize])
32 Stack(
const Stack<T>& stk)
45 this->operator=(std::move(stk));
53 Stack<T>& operator=(
const Stack<T>& stk) {
56 this->_pos = stk._pos;
57 this->_size = stk._size;
58 this->_data =
new T[stk._size];
59 memcpy(_data, stk._data,
sizeof(T) * stk._size);
64 Stack<T>& operator=(Stack<T>&& stk) {
67 this->_pos = stk._pos;
68 this->_size = stk._size;
69 this->_data = stk._data;
75 void push(
const T& v) {
77 T* tmp =
new T[_size * 2];
78 memcpy(tmp, _data,
sizeof(T) * _size);
88 Assertion(_pos > 0,
"No item remains!!");
89 return std::move(_data[--_pos]);
108 #endif // _SPICA_QUEUE_H_