Handle reverse iterators internally (don't require them in the interface); silently permit __first == __last.
Remove old Rosetta Code implementation and required header files.
Use 1 << i instead of pow(2, i), duh.