[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>);
- [lmi-commits] [lmi] master updated (a07a61b8 -> 3d6f262f), Greg Chicares, 2022/07/29
- [lmi-commits] [lmi] master 9131e7c6 2/9: Also test polymorphic-ness,
Greg Chicares <=
- [lmi-commits] [lmi] master 52e11311 3/9: Print type name with garniture, Greg Chicares, 2022/07/29
- [lmi-commits] [lmi] master 27fbf8ca 8/9: Rewrite unit-test macros to allow invocation with terminal '; ', Greg Chicares, 2022/07/29
- [lmi-commits] [lmi] master 6b384aee 1/9: Explicitly test derivation from class polymorphic_base, Greg Chicares, 2022/07/29
- [lmi-commits] [lmi] master b380d114 5/9: Preclude UB, Greg Chicares, 2022/07/29
- [lmi-commits] [lmi] master ac56835b 7/9: Remove null statements, Greg Chicares, 2022/07/29
- [lmi-commits] [lmi] master 3d6f262f 9/9: Enable '-Wextra-semi' for clang, Greg Chicares, 2022/07/29
- [lmi-commits] [lmi] master 2ca1e113 6/9: Comment out superfluous semicolons, Greg Chicares, 2022/07/29
- [lmi-commits] [lmi] master cb353f7b 4/9: Assert that a type is not default constructible, Greg Chicares, 2022/07/29