Addresses #240, as well as finding a problem with iterator_facade not being able to model random_access_iterator.
Define tests on each container that it satisfies the intended range concept. (This will transitively validate the iterators as well)
Fix: champ_iterator() was not default_initializable, which is a required for semiregular, which is required for iterators.
Fix: iterator_facade::operator[] returned a reference_proxy, while iterator_facade::operator* returns a ReferenceT. The random_access_iterator concept requires that the operators return an identical type.
Addresses #240, as well as finding a problem with
iterator_facade
not being able to modelrandom_access_iterator
.Define tests on each container that it satisfies the intended range concept. (This will transitively validate the iterators as well)
champ_iterator()
was notdefault_initializable
, which is a required forsemiregular
, which is required for iterators.iterator_facade::operator[]
returned areference_proxy
, whileiterator_facade::operator*
returns aReferenceT
. Therandom_access_iterator
concept requires that the operators return an identical type.