52 for (
auto node =
front(); node !=
nullptr; node = node->next_intrusive_queue_node()) {
62 if ((newNode->next_intrusive_queue_node() !=
nullptr) || (newNode ==
_tail)) {
66 if (
_head ==
nullptr) {
70 if (
_tail !=
nullptr) {
71 _tail->set_next_intrusive_queue_node(newNode);
92 ret->set_next_intrusive_queue_node(
nullptr);
98 bool remove(T removeNode)
101 if (removeNode ==
_head) {
102 if (
_head->next_intrusive_queue_node() !=
nullptr) {
112 for (T node =
_head; node !=
nullptr; node = node->next_intrusive_queue_node()) {
114 if (node->next_intrusive_queue_node() == removeNode) {
116 if (node->next_intrusive_queue_node() !=
nullptr) {
117 node->set_next_intrusive_queue_node(node->next_intrusive_queue_node()->next_intrusive_queue_node());
120 node->set_next_intrusive_queue_node(
nullptr);
134 operator T()
const {
return node; }
135 operator T &() {
return node; }
140 node = node->next_intrusive_queue_node();
166 T _next_intrusive_queue_node{
nullptr};
T next_intrusive_queue_node() const
void set_next_intrusive_queue_node(T new_next)