You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Is your feature request related to a problem? Please describe.
Currently we are inconsistent whether we follow the standards constraints on whether a feature is available and whether it is constexpr or not.
Mostly we are on par with the standard except when we are not. This usually happens when we backport a feature (e.g std::optional) to an earlier standard mode. Usually we document those instances, but usually only for the "big" feature and not for all the necessary machinery.
Same goes for constexpr we need some functionality here and there and we usually just change it whenever needed.
I believe we should settle on a few global policies.
When will something be available.
Currently only some features are backported. So we be consistent and e.g say "We backport everything to C++14" as a baseline?
When will something be constexpr
Currently this is purely random. Should we define a consistent policy like. "Everything is constexpr at C++14" *if the language permits
Describe the solution you'd like
Make everything available at C++14 (exceptions exist such as ranges, where the implementation cost is too great)
Make everything constexpr at C++14. C++11 only allows single line functions, but C++14 more or less gives us all the tools we need.
Describe alternatives you've considered
We are docuumenting our standard extensions. Technically we would have to mention each backport and each constexpr extension by hand
Additional context
No response
The text was updated successfully, but these errors were encountered:
miscco
changed the title
[FEA]: Settle on a proper design for constexpr extensions
[FEA]: Settle on a proper design for non standard extensions
Sep 18, 2023
miscco
changed the title
[FEA]: Settle on a proper design for non standard extensions
[FEA]: Settle on a proper policy for non standard extensions
Sep 18, 2023
I wouldn't want to be beholden to a blanket requirement of backporting everything to C++14 if the effort isn't worth it.
Furthermore, we'll be dropping C++11/14 from Thrust/CUB in the medium term future. We'll always support C++11/14 standard library features in libcu++, but I don't think it is worth the effort to maintain support for older dialects in extensions and backports.
Is this a duplicate?
Area
libcu++
Is your feature request related to a problem? Please describe.
Currently we are inconsistent whether we follow the standards constraints on whether a feature is available and whether it is
constexpr
or not.Mostly we are on par with the standard except when we are not. This usually happens when we backport a feature (e.g std::optional) to an earlier standard mode. Usually we document those instances, but usually only for the "big" feature and not for all the necessary machinery.
Same goes for
constexpr
we need some functionality here and there and we usually just change it whenever needed.I believe we should settle on a few global policies.
Currently only some features are backported. So we be consistent and e.g say "We backport everything to C++14" as a baseline?
constexpr
Currently this is purely random. Should we define a consistent policy like. "Everything is constexpr at C++14" *if the language permits
Describe the solution you'd like
Make everything available at C++14 (exceptions exist such as ranges, where the implementation cost is too great)
Make everything constexpr at C++14. C++11 only allows single line functions, but C++14 more or less gives us all the tools we need.
Describe alternatives you've considered
We are docuumenting our standard extensions. Technically we would have to mention each backport and each constexpr extension by hand
Additional context
No response
The text was updated successfully, but these errors were encountered: