-
Notifications
You must be signed in to change notification settings - Fork 28
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
Support for the Concepts TS #74
Comments
Hi @h-2, thanks for your interest in NanoRange! The very short answer to your question is that no, I don't plan to add any support for language concepts at this time. The longer answer is that, as you correctly point out, properly supporting concepts is not just a simple matter of redefining the Range-V3 trunk handles this using a lot of preprocessor magic, which in principle we could adopt for NanoRange too (under the Boost licence). However, I'm reluctant to do so, because:
The other thing to mention is that unlike Range-V3 (which has tons of views and actions which have not yet been proposed for the standard), NanoRange intentionally only provides what will be in C++20 (that's the "nano" part, for large values of "nano"!). By the time we have conforming C++20 compilers, I'm hopeful that their standard libraries will also come with implementations of I hope this answers your question, even if it's not the answer you might have been hoping for. If you have any more questions about NanoRange, please let me know :-). |
The concepts emulation and metaprogramming magic is probably a major contributor to why C++17 "conformant" MSVC prior to VS2019 can't compile C++14 library range-v3 at all, and even then the 2019 compiler can only do so with some special switches, including the still experimental C99 preprocessor. Whinging aside, it'd likely have a negative effect on this library's platform compatibility. |
In fairness, NanoRange also requires the |
Do you plan to support C++20 concepts and possibly also the Concepts TS? I guess redefining
NANO_CONCEPT
asconcept
/concept bool
is not sufficient as you need to make sure the subsumption rules work, as well...Thanks!
The text was updated successfully, but these errors were encountered: