[libcxx-commits] [PATCH] D88131: adds [concepts.arithmetic]

Christopher Di Bella via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Wed Jan 20 18:38:17 PST 2021

cjdb marked an inline comment as done.
cjdb added a comment.

@CaseyCarter @miscco @ldionne @EricWF I think this has addressed all the comments and should be good to merge.
Input from @CaseyCarter on the new `CheckSubsumption` appreciated, since that check always trips me up.

Comment at: libcxx/include/concepts:164
 concept derived_from =
   __is_base_of(_Bp, _Dp) && __is_convertible_to(const volatile _Dp*, const volatile _Bp*);
CaseyCarter wrote:
> Pre-existing: did GCC start supporting `__is_convertible_to` while I wasn't looking, or is this clang-only?
I've done something weird here with Git because D74292 is still open.

Comment at: libcxx/test/std/concepts/lang/arithmetic.pass.cpp:75-77
+  struct WithMember {
+    int Sneaky;
+  };
CaseyCarter wrote:
> None of these `Sneaky` members are used - they could be elided. Of course it's then odd to have a dozen-ish empty `struct`s with different names; you could as well use `EmptyStruct` for all of these. (A type `T` doesn't need to have any members of type `U` for us to form the pointer-to-member type `U T::*`.)
Thanks, that simplifies things a lot!



More information about the libcxx-commits mailing list