Implements parts of:
- P0898R3 Standard Library Concepts
- P1754 Rename concepts to standard_case for C++20, while we still can
Depends on D96657
Paths
| Differential D96660
[libcxx] adds concept `std::common_reference_with` ClosedPublic Authored by cjdb on Feb 13 2021, 11:50 PM.
Details
Summary Implements parts of:
Depends on D96657
Diff Detail
Unit TestsFailed Event Timeline
Comment Actions
@miscco what would that buy us? cjdb added a child revision: D96742: [libcxx] adds concept `std::assignable_from`.Feb 15 2021, 6:59 PM Comment Actions As far as I can tell the last clause from common_reference is specifically made for something like reference_wrapper types Comment Actions
It's specifically for "Pre-LWG-2993 reference_wrapper"-like types; modern reference_wrapper doesn't need it. In fact the only test case I know of for that last clause is to implement pre-LWG-2993 reference_wrapper and check common_reference_t<old_reference_wrapper<meow>, meow&>. Comment Actions
@CaseyCarter does MSVC test this? I couldn't find it when I looked for an example. Comment Actions
Comment Actions Getting the easy stuff out of the way first, before I dive into common_reference proper. Thanks! This revision is now accepted and ready to land.Feb 19 2021, 1:54 PM Comment Actions (I assume we'll handle types behaving like the old reference_wrapper correctly in your common_reference patch) cjdb added a child revision: D97176: [libcxx] adds concepts std::equality_comparable[_with].Feb 21 2021, 8:12 PM Closed by commit rG3f5438c46cc8: [libcxx] adds concept `std::common_reference_with` (authored by cjdb). · Explain WhyMar 3 2021, 5:54 PM This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 323596 libcxx/include/concepts
libcxx/test/std/concepts/lang/commonreference.compile.pass.cpp
|
Minor nitpick the section is called [concept.commonref].