expand <type_traits> and <concepts> #554
Draft
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Changes:
<type_traits>
<concepts>
std::unreachable
to<utility>
I have added to
<type_traits>
by replacing__has_feature(is_foo)
to__has_builtin(__is_foo)
. From this, almost all of C++17<type_traits>
has been implemented except for:I also replaced existing functions in
<type_traits>
with builtins if possible. I still need to do testing to ensure that all transformations are correct.__has_builtin
is the same as__has_feature
, except that the latter is "deprecated", so it won't return true for newer builtins https://releases.llvm.org/15.0.0/tools/clang/docs/LanguageExtensions.html#builtin-functions