[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[lmi-commits] [lmi] master 8c961b81 3/6: Call assert_sanity() iff approp
From: |
Greg Chicares |
Subject: |
[lmi-commits] [lmi] master 8c961b81 3/6: Call assert_sanity() iff appropriate |
Date: |
Sat, 16 Jul 2022 11:13:48 -0400 (EDT) |
branch: master
commit 8c961b81ea410622576a7bb10dd4b7d3bcf20c9b
Author: Gregory W. Chicares <gchicares@sbcglobal.net>
Commit: Gregory W. Chicares <gchicares@sbcglobal.net>
Call assert_sanity() iff appropriate
See:
https://lists.nongnu.org/archive/html/lmi/2022-07/msg00078.html
| Consider assert_sanity(). Aside from block_keyword_values()
| (which was used in the past, but is no longer used), only
| base-class ctors call assert_sanity(). Because it's called
| only in base-class ctors, it tests the sanity only of the
| base-class state--the derived classes override the function
| calls it makes, but no derived class exists at this point.
It's appropriate to call assert_sanity() in each derived class's
ctor. It's inappropriate to call it in the base class (where it
incidentally did succeed) because that prevents the functions it
uses from being declared pure (which is more desirable than a
tautological assertion).
---
datum_sequence.cpp | 12 ++++++++++--
datum_sequence.hpp | 1 -
2 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/datum_sequence.cpp b/datum_sequence.cpp
index ba3fbbe9..4775f9d6 100644
--- a/datum_sequence.cpp
+++ b/datum_sequence.cpp
@@ -31,7 +31,6 @@
sequence_base::sequence_base()
{
- assert_sanity();
}
/// Construct from string.
@@ -41,7 +40,6 @@ sequence_base::sequence_base()
sequence_base::sequence_base(std::string const& s)
:datum_string_base {s}
{
- assert_sanity();
}
sequence_base& sequence_base::operator=(std::string const& s)
@@ -132,11 +130,13 @@ bool operator==(sequence_base const& lhs, sequence_base
const& rhs)
numeric_sequence::numeric_sequence()
{
+ assert_sanity();
}
numeric_sequence::numeric_sequence(std::string const& s)
:sequence_base(s)
{
+ assert_sanity();
}
numeric_sequence& numeric_sequence::operator=(std::string const& s)
@@ -159,11 +159,13 @@ bool operator==(numeric_sequence const& lhs,
numeric_sequence const& rhs)
payment_sequence::payment_sequence()
{
+ assert_sanity();
}
payment_sequence::payment_sequence(std::string const& s)
:sequence_base(s)
{
+ assert_sanity();
}
payment_sequence& payment_sequence::operator=(std::string const& s)
@@ -199,11 +201,13 @@ bool operator==(payment_sequence const& lhs,
payment_sequence const& rhs)
mode_sequence::mode_sequence()
{
+ assert_sanity();
}
mode_sequence::mode_sequence(std::string const& s)
:sequence_base(s)
{
+ assert_sanity();
}
mode_sequence& mode_sequence::operator=(std::string const& s)
@@ -240,11 +244,13 @@ bool operator==(mode_sequence const& lhs, mode_sequence
const& rhs)
specamt_sequence::specamt_sequence()
{
+ assert_sanity();
}
specamt_sequence::specamt_sequence(std::string const& s)
:sequence_base(s)
{
+ assert_sanity();
}
specamt_sequence& specamt_sequence::operator=(std::string const& s)
@@ -285,11 +291,13 @@ bool operator==(specamt_sequence const& lhs,
specamt_sequence const& rhs)
dbo_sequence::dbo_sequence()
{
+ assert_sanity();
}
dbo_sequence::dbo_sequence(std::string const& s)
:sequence_base(s)
{
+ assert_sanity();
}
dbo_sequence& dbo_sequence::operator=(std::string const& s)
diff --git a/datum_sequence.hpp b/datum_sequence.hpp
index 6e386c50..7598d1dd 100644
--- a/datum_sequence.hpp
+++ b/datum_sequence.hpp
@@ -76,7 +76,6 @@ class sequence_base
sequence_base& operator=(std::string const&);
- private:
void assert_sanity() const;
};
- [lmi-commits] [lmi] master updated (9effa535 -> a984aa65), Greg Chicares, 2022/07/16
- [lmi-commits] [lmi] master b2c2bea1 2/6: Write certain ctors out of line, Greg Chicares, 2022/07/16
- [lmi-commits] [lmi] master 2aeeb582 4/6: Increase concinnity, Greg Chicares, 2022/07/16
- [lmi-commits] [lmi] master 53cb60b1 5/6: Make a class abstract in a different way, Greg Chicares, 2022/07/16
- [lmi-commits] [lmi] master a984aa65 6/6: Strengthen sanity preconditions, Greg Chicares, 2022/07/16
- [lmi-commits] [lmi] master 493403d0 1/6: Expunge facility for blocking keywords at run time, Greg Chicares, 2022/07/16
- [lmi-commits] [lmi] master 8c961b81 3/6: Call assert_sanity() iff appropriate,
Greg Chicares <=