[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[lmi-commits] [lmi] odd/move_semantics f09746b4 3/5: Expand commentary
From: |
Greg Chicares |
Subject: |
[lmi-commits] [lmi] odd/move_semantics f09746b4 3/5: Expand commentary |
Date: |
Mon, 1 Aug 2022 19:37:41 -0400 (EDT) |
branch: odd/move_semantics
commit f09746b48d1cb60ac20dc1f71daa0ce4bc5eec7c
Author: Gregory W. Chicares <gchicares@sbcglobal.net>
Commit: Gregory W. Chicares <gchicares@sbcglobal.net>
Expand commentary
---
sandbox_test.cpp | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/sandbox_test.cpp b/sandbox_test.cpp
index a84b89b4..326ed83e 100644
--- a/sandbox_test.cpp
+++ b/sandbox_test.cpp
@@ -50,6 +50,12 @@ struct ambiguator
operator T&&();
};
+// Terse alternatives
+// well_move_a5able for well_move_assignable
+// well_move_c8ible for well_move_constructible
+// were considered, but they looked too much like
+// a Sable, c Bible
+
template<typename T> constexpr bool equiplausible_construct()
{
return !std::is_constructible_v<T,ambiguator<T>>;
@@ -60,6 +66,14 @@ template<typename T> constexpr bool equiplausible_assign()
return !std::is_assignable_v<T,ambiguator<T>>;
}
+// This thing is mercifully unnecessary: unnecessary because nothing
+// in this file depends upon it, and mercifully so because there are
+// at least three different notions in the standard:
+// std::is_copy_constructible
+// std::copy_constructible
+// std::copyable
+// and using the name of one as an alias for another is nightmarish.
+
template<typename T> constexpr bool copyable()
{
return std::is_copy_constructible_v<T>;