Phase 2.5 of UDPOR Integration: Add Iterators for Subsets
Overview
After some more discussion today with @mquinson, the code is ready to be merged. The diff is relatively small as the primary focus will now be to implement a different, more efficient algorithm than what had been planned.
Changes
The biggest addition is that of an iterator which traverses all possible subsets of a collection, as well as two convenience collections LazyKSubsets<T>
and LazyPowerset<T>
wrapping these methods (they simply provide a begin()
and an end()
method with the appropriate arguments to the two new iterators). While these iterators won't be used to traverse the "compatibility graph", they will re-appear later down the line when computing K-partial alternatives which requires such iteration.
Additionally, a couple of fixes were made to address some of the C++ code warnings provided by SonarCloud. There will still be some warnings that remain here or there mostly from unmarked "TODO"s, but most of the important changes pointed out should be fixed. Subsequent phases will eliminate also any new/remaining such issues as they are pointed out.