-
Notifications
You must be signed in to change notification settings - Fork 27
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Need a better explanation of the difference from ranges-v3 #66
Comments
Thanks for the message. To be honest, the whole readme is now somewhat out of date and could do with a refresh. With regard to Range-V3 specifically, when NanoRange began there were more differences -- Range-V3 could not be used with MSVC, NanoRange adhered somewhat more closely to the standard proposals, and Range-V3's concepts emulation was C++11-compatible and so a little slower in terms of compile times than the C++14 approach NanoRange used. Since then, Eric has updated Range-V3 considerably so that it's now very close to the final ranges spec, it can now optionally use real language concepts if available (and uses a scheme quite similar to NanoRange's when they are not), and Microsoft have updated their compiler so it can now handle all the template metaprogramming required. All in all, to be honest there is probably little to choose between them today if you're sticking to the subset of Range-V3 that has been proposed for standardisation -- hence the current vague statement in the README. |
Well, I hope you find the time to update the README more generally, then... |
Yep, it's on the TODO list :). I'll leave this bug report open as a reminder too. |
As a general remark, it's also lighter than range-v3 (as in, less dependencies/features/views/backwards compatibility kludges, which helps readability of the code as a consumer of it) and if you need to support MSVC prior to VS 2019, you're basically left looking here. That's what brought me here at least. Well, that and the cppcon talk. ;) |
The repository's README says it is intended for people who "don't want to (or can't) use the full-blown Range-V3". This is a vague statement. difficult to understand. I mean, other than the fact that Nano is missing some Ranges-V3 features - what's the difference? Why would someone want to use the same functionality from Nano rather than from Ranges-V3? The explanation should be more detailed and explicit.
The text was updated successfully, but these errors were encountered: