algorithms and iterators and rows
Pre-releaseThe original implementation of frame_iterator didn't really allow for mutation - there was no frame_iterator::value_type that standard algorithms like std::sort() could use as temp values to do their work, because the proxy object that frame_iterator used was a bunch of series iterators.
The existing proxy object has been enhanced to allow better assignment behaviour, and at the same time there's now a type for frame_iterator::value_type - frame_row. frame_row contains actual values and can be used by std::sort() as a temp variable. frame_row will continue to be enhanced and will serve as a sort of "row-builder" object type to make parsing into frame objects a bit easier.
Other than that, the iterator type, frame_iterator, has an improved implementation with fewer strange corner-cases.