mirror of https://github.com/PrimeDecomp/prime.git
38 lines
560 B
C++
38 lines
560 B
C++
|
#ifndef _RSTL_LIST_HPP
|
||
|
#define _RSTL_LIST_HPP
|
||
|
|
||
|
#include "types.h"
|
||
|
|
||
|
#include "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
|