Update ranges Dependency
I think we should think about updating our ranges library sooner than later. It's going to be a big effort, as we use ranges all over the codebase and the syntax has changed significantly. But updating soon is probably better than generating more code we'll need to update later.
I see two big reasons to update:
- We can't currently use the documentation of the
rangeslibrary, as it reflects modern syntax, not the snapshot we use. As a newcomer to the project (and really to C++), this is rather frustrating. - Our test suite seems overly fragile, as I've found a number of errors that are compiler- or platform-dependent, and all the errors I've seen have cited calls to
rangesas the errors. I don't know if updating will fix these problems or not, but it provides some motivation nevertheless.
And of course, getting closer to the C++20 standard is a plus, even if it's way too early to think seriously about C++20.
This is a good idea, except for one thing. We must finish RECONR this year. I'm happy to tackle updating the ranges library as soon as that gets checked off. That won't happen for a couple more months, but as soon as it is done, we should update ranges and start using the C++20 syntax.
We should be careful doing this, some of the ranges capabilities are NOT in the C++20 standard yet.
Do we know which of the ranges capabilities are not in the C++20 standard? I suspect (but don't know) that everything we use is in the standard.
actions, like drop, take, etc.