◆ ArenaLinkedList() [1/2]
19983 : arena(arena) {
19984 }
◆ ArenaLinkedList() [2/2]
19989 : head(other.head), tail(other.tail) {
19990 other.head = nullptr;
19991 other.tail = nullptr;
19992 }
◆ operator=()
19993 {
19994 if (this != &other) {
19995 head = other.head;
19996 tail = other.tail;
19997 other.head = nullptr;
19998 other.tail = nullptr;
19999 }
20000 return *this;
20001 }
◆ empty()
20004 {
20005 return head == nullptr;
20006 }
◆ size()
20008 {
20009 return _size;
20010 }
◆ push_back()
20012 {
20013 auto node = arena.Make<Node>(value);
20014 auto ptr = head ? &tail->next : &head;
20015 *ptr = node;
20016 tail = node;
20017 _size++;
20018 }
◆ emplace_back()
20021 {
20022 auto node = arena.Make<Node>(std::forward<ARGS>(args)...);
20023 auto ptr = head ? &tail->next : &head;
20024 *ptr = node;
20025 tail = node;
20026 _size++;
20027 }
◆ operator[]() [1/2]
FIXME: eventually remove this.
20030 {
20031 idx_t i = 0;
20032 for (auto &elem : *this) {
20033 if (i == index) {
20034 return elem;
20035 }
20036 i++;
20037 }
20038 throw InternalException("index out of bounds in ArenaLinkedList");
20039 }
◆ operator[]() [2/2]
FIXME: eventually remove this.
20042 {
20043 idx_t i = 0;
20044 for (const auto &elem : *this) {
20045 if (i == index) {
20046 return elem;
20047 }
20048 i++;
20049 }
20050 throw InternalException("index out of bounds in ArenaLinkedList");
20051 }
◆ begin() [1/2]
20118 {
20119 return Iterator(head);
20120}
◆ end() [1/2]
20123 {
20124 return Iterator(nullptr);
20125}
◆ begin() [2/2]
20128 {
20129 return ConstIterator(head);
20130}
◆ end() [2/2]
20133 {
20134 return ConstIterator(nullptr);
20135}
The documentation for this class was generated from the following file: