timsong-cpp
timsong-cpp
```cpp // synthesize a sized-sentinel input view std::vector v{1,2,3,4,5}; ranges::any_view x = v; auto civ = ranges::views::counted(x.begin(), 5); auto cciv = civ | ranges::views::chunk(2); for(auto i = cciv.begin(); ; ++i)...
See [N4381](https://wg21.link/N4381). These are global function objects that should be documented like functions, rather than objects. They are used extensively in range-v3.
https://timsong-cpp.github.io/cppwp/iterator.requirements.general#3.sentence-2 defines it to mean "any type that models the `Iterator` concept". But sometimes we use the word to mean the object rather than the type, e.g., https://timsong-cpp.github.io/cppwp/iterator.requirements.general#1.sentence-3 And sometimes...
https://timsong-cpp.github.io/cppwp/ranges-ts/alg.generate ~~1. It still uses `Callable`. That's not a concept anymore.~~ 2. Also, why doesn't it use `OutputIterator`? (But the range version does use `OutputRange`...)
[concepts.lib.general.equality]/6 says that "implicit expression variants" are required when > a _requires-expression_ declares an expression that is non-modifying for some constant lvalue operand It's not clear what this means. First,...
We have at least several instances when we say "function object" but meant "callable object": - [defns.projection]: "\" - [concepts.lib.callable.general]: "The concepts in this section describe the requirements on function...
Today's discussion with Casey on Slack revealed that: 1. The _requires-expression_ ```c++ requires(T t, U&& u) { { t = std::forward(u) } -> Same&&; } ``` for `Assignable` implicitly requires...
https://github.com/Eelis/draft/commit/14268b09fbeecde9f059984ed66aef08941d652f uses `\oldconceptref` but I don't think the code to handle that has been pushed here.