Implements parts of:
- P0898R3 Standard Library Concepts
- P1754 Rename concepts to standard_case for C++20, while we still can
Differential D74292
[libcxx] adds concept std::derived_from cjdb on Feb 8 2020, 9:16 PM. Authored by
Details
Implements parts of:
Diff Detail Event Timeline
Comment Actions Updates tests to check for fundamental(ish) types, cv-qualifiers, references, pointers, void, functions, pointer-to-functions, reference-to-functions, pointer-to-member(-functions), and arrays.
Comment Actions One correctness comment and some minor nits
Comment Actions I added the LLVM Monorepo to the revision - this will allow CI to trigger if you update the patch. Can you please rebase and re-upload? This LGTM if CI passes, but I think you might need to use is_convertible_v to fix the build on GCC. CI will tell.
|
As before, this needs _Uglification.
Also note that is_base_of_v directly goes back to __is_base_of and you have the chain
__is_base_of -> i_base_of -> is_base_of_v
(See https://github.com/miscco/llvm-project/blob/bc29069dc401572ba62f7dd692a3474c1ead76c9/libcxx/include/type_traits#L1417-L1425)
So throughput would be better it you would again specialize for __clang__ and use __Is_base_of directly