Releases: coveooss/linq
2.0.2
2.0.1
Bugfix for the 2.0 release that replaces coveo::enumerable<T>::const_iterator
's class by a typedef for iterator
. This fixes some generic code that doesn't handle well the fact that begin()
and cbegin()
are both const but return different types.
2.0
Several changes and bug fixes, including:
- Breaking change:
coveo::enumerable
now supports returning non-const references. This means that acoveo::enumerable<int>
returns references to non-const ints. To return references to const objects, use something likecoveo::enumerable<const int>
. - Optimized
skip()
andtake()
, including support forfast_size
when possible. - Breaking change: several operators now return values instead of references to avoid dangling references. This includes
min()
,max()
,first()
, etc.
2.0-alpha2
coveo::enumerable
has been refactored again. Having both iterator
and const_iterator
didn't make much sense since it was possible to simply copy the enumerable
to access the non-const
methods. So now enumerable
only has an iterator
, and begin
/end
are const
methods. Also added an as_const
method to return a const version of a given enumerable.
2.0-alpha
coveo::enumerable
has been refactored to support returning non-const references. This means that a coveo::enumerable<int>
's iterators will return int&
instead of const int&
. coveo::enumerable
now has two iterator types like most sequences, an iterator
and a const_iterator
. They work as expected, as well as begin()/cbegin()/end()/cend()
.
Please note that this is a breaking change. If you used coveo::enumerable
in your interface and intended to return const references, you will have to update from coveo::enumerable<Foo>
to coveo::enumerable<const Foo>
.
1.1
Added cast
operator.
1.0
First source release.