Use std::unique_ptr instead of manually managed raw pointers.
I suggest beginning the review in Accidental_placement_entry. The
algorithm in stagger_apes () took me the most time to come to term
with. With unique_ptr, it's much easier to be confident that there
isn't a memory leak there.
unique_ptr deletes its object when it goes out of scope. Transferring
ownership of the object to another instance of unique_ptr is done with
std::move(). A unique_ptr can not be copied, but one can get an alias
(a raw pointer) from it with p.get().
Using unique_ptr makes the flower junk_pointers() function
unnecessary. I can't remove junk_pointers() yet because MIDI code
still uses it, and I don't want to wade into that high water now.
I'm aware that some lines are longer than 80 characters. I plan to
try clang-format after Han-Wen's config file makes it through the
countdown.
Diff:
Passes make, make check and a full make doc
Patch on countdown for Feb 6th.
Patch counted down - please push.