prime/include/rstl/list.hpp

38 lines
565 B
C++
Raw Normal View History

#ifndef _RSTL_LIST_HPP
#define _RSTL_LIST_HPP
#include "types.h"
#include "rstl/rmemory_allocator.hpp"
namespace rstl {
template < typename T, typename Alloc = rmemory_allocator >
class list {
public:
~list() {
node* cur = x4_start;
while (cur != nullptr) {
delete cur->x8_item;
cur = cur->x4_next;
}
}
private:
struct node {
node* x0_prev;
node* x4_next;
union {
T* x8_item;
u32 x8_count;
};
};
Alloc x0_allocator;
node* x4_start;
node* x8_end;
node xc_empty;
};
} // namespace rstl
#endif