[libcxx-commits] [PATCH] D96742: [libcxx] adds concept `std::assignable_from`

Christopher Di Bella via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Mon Feb 22 22:27:21 PST 2021

cjdb added a comment.

In D96742#2576896 <https://reviews.llvm.org/D96742#2576896>, @cjdb wrote:

> In D96742#2575681 <https://reviews.llvm.org/D96742#2575681>, @ldionne wrote:
>> In D96742#2575636 <https://reviews.llvm.org/D96742#2575636>, @cjdb wrote:
>>> Agreed. I'll add a few for `vector<int>` and `string`. Any other commonly used types that we should care about (e.g. `map`) or are `vector` and `string` "good enough"?
>> The more the better, IMO. `map`, `deque`, `unique_ptr`, `variant` (?), just a few of the common ones. I doubt it'll actually help us find any issues with the concepts themselves, but it could potentially find us issues with those types!
> I think it's a great idea, and one I'm happy to take on; but if we do it right now, any latent bugs in other types that we uncover will become blockers for getting the rest of the concepts merged into libc++ (see my recent email <https://lists.llvm.org/pipermail/libcxx-dev/2021-February/001081.html> for a potentially large blocker). I propose making a separate patch for each concept where we test all the frequently used standard types. Those patches can be indefinitely blocked, which isn't great, but at least it doesn't prevent libc++ from being C++20 feature-complete in a reasonable amount of time.
> To reiterate: I'm not shrugging off this work, but I'd like to defer it to after `__cpp_lib_concepts` is defined. If someone is motivated to pick it up before then, feel free to do so: I can confirm at least one major issue will fall out of `std::ranges::swap`.

I decided it's better to do it here and now, so done.

  rG LLVM Github Monorepo



More information about the libcxx-commits mailing list