Marius Mikučionis
Marius Mikučionis
I reran the benchmarks against `catch-2.13.8` using the benchmark scripts included in the doctest, using `Debian Testing`, `Linux-5.14.0-3` on `AMD Ryzen 9 5950X 16-Core/32-Thread`, plenty of memory. There were a...
The `Could not find cpp/string/basic_string_view/begin_end_nonmem` message is due to missing `std::begin(std::basic_string_view)` non-member function on [std::basic_string_view](https://en.cppreference.com/w/cpp/string/basic_string_view) page (I have added those on cppreference.com, so hopefully they will appear in the index...
I was wondering if there is a shorthand to install only the devhelp pages: `make doc_devhelp` seem to produce them but `make install` seem to trigger `make all` which consumes...
No problem, it's rather minor :-)
I replaced `coro::generator` with `std::views::iota` and it seems that `operator|` consumes the range by copy: ```cpp int main() { auto n = std::views::iota(1); for (auto i : n | std::views::take(3))...
Alternatively, `std::views::take` could be fixed not to request more values than necessary. Currently it requests one too many values and thus puts the generator into a unexpected state. Not sure...
Here is my replacement for `std::views::take` using `coro::generator`: ```cpp namespace coro { template coro::generator take(Range&& range, size_t count) { auto it = std::ranges::begin(range); auto e = std::ranges::end(range); if (count-->0 &&...
@jbaldwin the problem is the design decision, what do you prefer? 1) kill the bug by not supporting such case (disable the copy constructor just like `libstdc++` does for `std::views::iota`)....
I looked at `coro::generator` and found that the copy constructor/assignment are already deleted. I still cannot understand how `std::generator` is rejected while `coro::generator` is accepted when passed by lvalue reference....
Found one predicate which distinguishes the generators: ```cpp auto sn = StdNaturals(); static_assert(std::ranges::view, "is not a view"); // passes auto cn = CoroNaturals(); static_assert(std::ranges::view, "is not a view"); // fails...