[libcxx-commits] [PATCH] D96477: [libcxx] adds remaining callable concepts

Christopher Di Bella via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Thu Mar 18 11:33:06 PDT 2021

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

Comment at: libcxx/test/std/concepts/callable/equiv.compile.pass.cpp:25
+template <class F, class T, class U>
+requires std::equivalence_relation<F, T, U>
+constexpr void ModelsEquivalenceRelation(F, T&&, U&&) noexcept {}
Quuxplusone wrote:
> Please indent the `requires` line by one indent-level (which I guess is 2 spaces, in the style used by this file, blecch).
> However, as I say below, I'd rather eliminate these functions altogether...
I'm not interested in arguing over whitespace. Once clang-format handles concepts properly, I'll remove the more offensive `// clang-format off`.

Comment at: libcxx/test/std/concepts/callable/equiv.compile.pass.cpp:88
+    /// ModelsEquivalenceRelation(Relation::Greater, 0, 0);
+    /// ModelsEquivalenceRelation(Relation::Greater, 0.0, 0);
+    ModelsEquivalenceRelation(Relation::MaybeRelation(), 0, 0);
Quuxplusone wrote:
> I don't think it's useful to keep these as comments.
> What is your understanding of the requirements on libc++ as a conforming implementation of C++20? Is libc++ //permitted// to reject these lines if they were to be uncommented?
> If we're not permitted to reject them, then we must accept them, and so you might as well uncomment them permanently. OTOH, if they're supposed to be some sort of "library IFNDR," such that a conforming library might reject them, then it makes sense not to uncomment them (but in that case I'd just delete these lines permanently).
They're INFDR, and I want to document that they're not forgotten. See http://eel.is/c++draft/res.on.requirements.

  rG LLVM Github Monorepo



More information about the libcxx-commits mailing list