How to Design C++ Implementations of Complex Combinatorial Algorithms