cartesian_product view, now with moar bugs
ericniebler opened this issue · 0 comments
ericniebler commented
The following program:
#include <range/v3/span.hpp>
#include <range/v3/size.hpp>
#include <range/v3/view/cartesian_product.hpp>
using namespace ranges;
int main()
{
int some_ints[] = {0,1,2,3};
char const * some_strings[] = {"John", "Paul", "George", "Ringo"};
auto rng = view::cartesian_product(
span<int, size(some_ints)>{some_ints},
span<char const*, size(some_strings)>{some_strings}
);
(void)(rng.end() - 1);
}
results in the following assertion:
prog.exe: /opt/wandbox/range-v3/include/range/v3/view/cartesian_product.hpp:194: void ranges::v3::
cartesian_product_view<ranges::v3::span<int, 4>, ranges::v3::span<const char *, 4> >::cursor<true>
::advance_(meta::size_t<N>, std::ptrdiff_t) [Views = <ranges::v3::span<int, 4>, ranges::v3::span<c
onst char *, 4>>, IsConst = true, N = 1]: Assertion `0 <= idx && idx < my_size' failed.
Aborted