Generic intrusive linked list class.
authorSteven Perron <stevenperron@google.com>
Tue, 10 Oct 2017 13:47:01 +0000 (09:47 -0400)
committerDavid Neto <dneto@google.com>
Thu, 12 Oct 2017 16:40:18 +0000 (12:40 -0400)
commit720beb161a7c3802cbc086c05466b52e8f187e07
tree65a45eccbd878ec3755fd3524d2ea2cbe7129ca4
parent63064bd9eba297a6c2d0cc45564c753e8757be27
Generic intrusive linked list class.

This commit is the initial implementation of the intrusive linked list
class.  It includes the implementation in the header files, and unit
test.

The iterators are circular: incrementing end() gives begin() and
decrementing begin() gives end().  Also made it valid to
decrement end().

Expliticly defines move constructor and move assignment
- Visual Studio 2013 does not implicitly generate the move constructor or
  move assignments.  So they need to be explicit, otherwise it will try to
  use the copy constructor, which we explicitly deleted.
- Can't use "= default" either.
  Seems like VS2013 does not support explicitly using the default move
  constructors and move assignments, so I wrote them out.
source/util/ilist.h [new file with mode: 0644]
source/util/ilist_node.h [new file with mode: 0644]
test/CMakeLists.txt
test/util/CMakeLists.txt [new file with mode: 0644]
test/util/ilist_test.cpp [new file with mode: 0644]