lmi-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[lmi-commits] [lmi] master 9131e7c6 2/9: Also test polymorphic-ness


From: Greg Chicares
Subject: [lmi-commits] [lmi] master 9131e7c6 2/9: Also test polymorphic-ness
Date: Fri, 29 Jul 2022 20:42:33 -0400 (EDT)

branch: master
commit 9131e7c6d87bae583fa85a8017d8ec4098db3d3d
Author: Gregory W. Chicares <gchicares@sbcglobal.net>
Commit: Gregory W. Chicares <gchicares@sbcglobal.net>

    Also test polymorphic-ness
---
 crtp_base_test.cpp | 29 ++++++++++++++++++-----------
 1 file changed, 18 insertions(+), 11 deletions(-)

diff --git a/crtp_base_test.cpp b/crtp_base_test.cpp
index 128a3272..77f984a3 100644
--- a/crtp_base_test.cpp
+++ b/crtp_base_test.cpp
@@ -68,8 +68,9 @@ class D final : private C
 
 void test_polymorphic_base()
 {
-    static_assert(!std::is_abstract_v <A>);
-    static_assert(!std::is_final_v    <A>);
+    static_assert( std::is_polymorphic_v           <A>);
+    static_assert(!std::is_abstract_v              <A>);
+    static_assert(!std::is_final_v                 <A>);
 
     static_assert( std::is_default_constructible_v <A>);
     static_assert( std::is_destructible_v          <A>);
@@ -89,15 +90,21 @@ void test_polymorphic_base()
 
 void test_abstract_or_final()
 {
-    static_assert( std::is_abstract_v <B0>);
-    static_assert( std::is_abstract_v <B1>);
-    static_assert( std::is_abstract_v <C>); // abstract by inheritance
-    static_assert(!std::is_abstract_v <D>);
-
-    static_assert(!std::is_final_v    <B0>);
-    static_assert(!std::is_final_v    <B1>);
-    static_assert(!std::is_final_v    <C>);
-    static_assert( std::is_final_v    <D>);
+    static_assert( std::is_polymorphic_v           <B0>);
+    static_assert( std::is_polymorphic_v           <B1>);
+    static_assert( std::is_polymorphic_v           <C>);
+    static_assert( std::is_polymorphic_v           <D>);
+
+    static_assert( std::is_abstract_v              <B0>);
+    static_assert( std::is_abstract_v              <B1>);
+    // class C is abstract by inheritance:
+    static_assert( std::is_abstract_v              <C>);
+    static_assert(!std::is_abstract_v              <D>);
+
+    static_assert(!std::is_final_v                 <B0>);
+    static_assert(!std::is_final_v                 <B1>);
+    static_assert(!std::is_final_v                 <C>);
+    static_assert( std::is_final_v                 <D>);
 
     static_assert(!std::is_default_constructible_v <B0>);
     static_assert(!std::is_default_constructible_v <B1>);



reply via email to

[Prev in Thread] Current Thread [Next in Thread]