| Age | Commit message (Collapse) | Author | Files | Lines | |
|---|---|---|---|---|---|
| 6 days | kstd: ring_buffer: implement from_range ctor | Felix Morgner | 2 | -0/+219 | |
| 6 days | kstd: ring_buffer: fix ctor exception safety | Felix Morgner | 1 | -18/+74 | |
| 6 days | kstd: ring_buffer: provide basic exception safety | Felix Morgner | 1 | -20/+39 | |
| 6 days | kstd: tests: remove nonsensical constexpr qualification | Felix Morgner | 1 | -5/+5 | |
| 6 days | kstd: ring_buffer: add missing noexcept specifications | Felix Morgner | 1 | -9/+18 | |
| 6 days | kstd: ring_buffer: implement iterator ctors | Felix Morgner | 3 | -0/+529 | |
| 9 days | kstd: ring_buffer: implement swap | Felix Morgner | 2 | -0/+285 | |
| 9 days | kstd: ring_buffer: implement emplace_back() | Felix Morgner | 2 | -0/+159 | |
| 9 days | kstd: ring_buffer: implement comparison | Felix Morgner | 2 | -1/+154 | |
| 9 days | kstd: ring_buffer: handle zero-capacity instantiations | Felix Morgner | 2 | -8/+249 | |
| 9 days | kstd: ring_buffer: add more iterator tests | Felix Morgner | 1 | -0/+64 | |
| 9 days | kstd: ring_buffer: add iterator documentation | Felix Morgner | 1 | -0/+84 | |
| 9 days | kstd: ring_buffer: implement front() and back() | Felix Morgner | 2 | -0/+131 | |
| 9 days | kstd: ring_buffer: add missing push/pop API tests | Felix Morgner | 1 | -0/+20 | |
| 9 days | kstd: ring_buffer: add try_pop_front dtor test | Felix Morgner | 1 | -0/+10 | |
| 9 days | kstd: ring_buffer: implement try_pop_front() | Felix Morgner | 2 | -0/+71 | |
| 9 days | kstd: ring_buffer: add more pop_front() tests | Felix Morgner | 1 | -0/+43 | |
| 9 days | kstd: ring_buffer: add missing nodiscard | Felix Morgner | 1 | -1/+1 | |
| 9 days | kstd: ring_buffer: fix documentation typo | Felix Morgner | 1 | -1/+1 | |
| 9 days | kstd: ring_buffer: implement pop_front() | Felix Morgner | 2 | -0/+53 | |
| 9 days | kstd: ring_buffer: implement try_push_back() | Felix Morgner | 2 | -0/+28 | |
| 9 days | kstd: ring_buffer: implement push_back() | Felix Morgner | 2 | -2/+271 | |
| 9 days | kstd: ring_buffer: clear moved-from buffer | Felix Morgner | 2 | -12/+42 | |
| While the standard says that a move-from object is in a valid but unspecified state, thus making it legal to leave the moved-from buffer in a non-empty state, we can do better here. For one, standard containers generally leave the moved-from object in an empty state. Secondly, destroying the contents of a ring_buffer object has linear complexity, as does moving the contents of a ring_buffer object. We can therefore clear the moved-from object while we are moving from it, without increasing the complexity of the move operation. At the same time, we can thereby reduce the amount of work that needs to be done when the moved-from object is finally destroyed. Note that during the move assignment operation, the moved-from buffer is in a somewhat peculiar state. Some of its elements have been destroyed, but its size has not changed. This is okay, because we are essentially still executing a transition from one valid state into another once. At the end of the move operation, we ensure that the size of the moved-from buffer is set to zero, thus reestablishing its invariant. | |||||
| 9 days | kstd: ring_buffer: implement clear() | Felix Morgner | 2 | -1/+62 | |
| 9 days | kstd: tests: extract static tracker types | Felix Morgner | 2 | -112/+109 | |
| 10 days | kstd: ring_buffer: implement copy and move assignment | Felix Morgner | 2 | -0/+239 | |
| 10 days | kstd: ring_buffer: implement move ctor | Felix Morgner | 2 | -0/+25 | |
| 10 days | kstd: ring_buffer: implement copy ctor | Felix Morgner | 2 | -0/+36 | |
| 10 days | kstd: ring_buffer: implement dtor | Felix Morgner | 2 | -0/+56 | |
| 10 days | kstd: ring_buffer: move construction tests | Felix Morgner | 1 | -32/+32 | |
| 10 days | kstd: ring_buffer: add missing [c]rend() tests | Felix Morgner | 1 | -0/+15 | |
| 10 days | kstd: ring_buffer: implement [cr][begin|end]() | Felix Morgner | 2 | -0/+180 | |
| 10 days | kstd: ring_buffer: fix empty() and size() | Felix Morgner | 2 | -11/+26 | |
| 10 days | kstd: ring_buffer: add more range-based tests | Felix Morgner | 1 | -0/+50 | |
| 10 days | kstd: ring_buffer: implement [c]end() | Felix Morgner | 2 | -1/+134 | |
| 10 days | kstd: ring_buffer: implement [c]begin() | Felix Morgner | 2 | -1/+140 | |
| 10 days | kstd: ring_buffer: implement iterator type | Felix Morgner | 2 | -0/+165 | |
| 10 days | kstd: ring_buffer: add n-value-initialized ctor | Felix Morgner | 2 | -0/+52 | |
| 10 days | kstd: ring_buffer: add write-through tests | Felix Morgner | 1 | -0/+32 | |
| 10 days | kstd: ring_buffer: fix const-overload tests | Felix Morgner | 1 | -3/+3 | |
| 10 days | kstd: ring_buffer: add ctor panic test | Felix Morgner | 1 | -0/+10 | |
| 10 days | kstd: ring_buffer: extract basic storage | Felix Morgner | 2 | -23/+127 | |
| 11 days | kstd: ring_buffer: add missing test tag | Felix Morgner | 1 | -1/+1 | |
| 11 days | kstd: ring_buffer: add interface type tests | Felix Morgner | 1 | -0/+82 | |
| 11 days | kstd: ring_buffer: implement operator[] | Felix Morgner | 2 | -5/+45 | |
| 11 days | kstd: ring_buffer: simplify element_at | Felix Morgner | 1 | -3/+3 | |
| 11 days | kstd: ring_buffer: rename element_at_index | Felix Morgner | 1 | -4/+4 | |
| 11 days | kstd: ring_buffer: implement n-values ctor. | Felix Morgner | 2 | -1/+99 | |
| 11 days | kstd: ring_buffer: add missing documentation | Felix Morgner | 1 | -4/+13 | |
| 11 days | kstd: ring_buffer: rename head and tail | Felix Morgner | 1 | -9/+9 | |
