Remove redundant destructors

Classes will automatically inherit the virtual-ness of their base
class destructors. If the base class already has a virtual
destructor and the derived class needs default destructor semantics
then the derived class can omit defining the destructor in favor of
the compiler automatically defining it.

This has an additional benefit of reenabling move semantics. The
presence of a user-specified destructor automatically disables move
operations.
This commit is contained in:
Chris Thrasher 2023-12-28 16:39:19 -06:00 committed by Martin Hořeňovský
parent d79bfa05c7
commit 05786fa7ec
No known key found for this signature in database
GPG Key ID: DE48307B8B0D381A
8 changed files with 0 additions and 32 deletions

View File

@ -7304,12 +7304,6 @@ namespace Detail {
} }
public: public:
~IGenerator() override = default;
IGenerator() = default;
IGenerator(IGenerator const&) = default;
IGenerator& operator=(IGenerator const&) = default;
// Returns the current element of the generator // Returns the current element of the generator
// //
// \Precondition The generator is either freshly constructed, // \Precondition The generator is either freshly constructed,
@ -10707,8 +10701,6 @@ namespace Catch {
class TestRegistry : public ITestCaseRegistry { class TestRegistry : public ITestCaseRegistry {
public: public:
~TestRegistry() override = default;
void registerTest( Detail::unique_ptr<TestCaseInfo> testInfo, Detail::unique_ptr<ITestInvoker> testInvoker ); void registerTest( Detail::unique_ptr<TestCaseInfo> testInfo, Detail::unique_ptr<ITestInvoker> testInvoker );
std::vector<TestCaseInfo*> const& getAllInfos() const override; std::vector<TestCaseInfo*> const& getAllInfos() const override;
@ -13376,8 +13368,6 @@ namespace Catch {
public: public:
JunitReporter(ReporterConfig&& _config); JunitReporter(ReporterConfig&& _config);
~JunitReporter() override = default;
static std::string getDescription(); static std::string getDescription();
void testRunStarting(TestRunInfo const& runInfo) override; void testRunStarting(TestRunInfo const& runInfo) override;
@ -13618,8 +13608,6 @@ namespace Catch {
m_shouldStoreSuccesfulAssertions = false; m_shouldStoreSuccesfulAssertions = false;
} }
~SonarQubeReporter() override = default;
static std::string getDescription() { static std::string getDescription() {
using namespace std::string_literals; using namespace std::string_literals;
return "Reports test results in the Generic Test Data SonarQube XML format"s; return "Reports test results in the Generic Test Data SonarQube XML format"s;
@ -13666,7 +13654,6 @@ namespace Catch {
StreamingReporterBase( CATCH_MOVE(config) ) { StreamingReporterBase( CATCH_MOVE(config) ) {
m_preferences.shouldReportAllAssertions = true; m_preferences.shouldReportAllAssertions = true;
} }
~TAPReporter() override = default;
static std::string getDescription() { static std::string getDescription() {
using namespace std::string_literals; using namespace std::string_literals;

View File

@ -37,12 +37,6 @@ namespace Detail {
} }
public: public:
~IGenerator() override = default;
IGenerator() = default;
IGenerator(IGenerator const&) = default;
IGenerator& operator=(IGenerator const&) = default;
// Returns the current element of the generator // Returns the current element of the generator
// //
// \Precondition The generator is either freshly constructed, // \Precondition The generator is either freshly constructed,

View File

@ -80,7 +80,6 @@ namespace Detail {
CATCH_ENFORCE( !m_ofs.fail(), "Unable to open file: '" << filename << '\'' ); CATCH_ENFORCE( !m_ofs.fail(), "Unable to open file: '" << filename << '\'' );
m_ofs << std::unitbuf; m_ofs << std::unitbuf;
} }
~FileStream() override = default;
public: // IStream public: // IStream
std::ostream& stream() override { std::ostream& stream() override {
return m_ofs; return m_ofs;
@ -95,7 +94,6 @@ namespace Detail {
// Store the streambuf from cout up-front because // Store the streambuf from cout up-front because
// cout may get redirected when running tests // cout may get redirected when running tests
CoutStream() : m_os( Catch::cout().rdbuf() ) {} CoutStream() : m_os( Catch::cout().rdbuf() ) {}
~CoutStream() override = default;
public: // IStream public: // IStream
std::ostream& stream() override { return m_os; } std::ostream& stream() override { return m_os; }
@ -109,7 +107,6 @@ namespace Detail {
// Store the streambuf from cerr up-front because // Store the streambuf from cerr up-front because
// cout may get redirected when running tests // cout may get redirected when running tests
CerrStream(): m_os( Catch::cerr().rdbuf() ) {} CerrStream(): m_os( Catch::cerr().rdbuf() ) {}
~CerrStream() override = default;
public: // IStream public: // IStream
std::ostream& stream() override { return m_os; } std::ostream& stream() override { return m_os; }
@ -127,8 +124,6 @@ namespace Detail {
m_os( m_streamBuf.get() ) m_os( m_streamBuf.get() )
{} {}
~DebugOutStream() override = default;
public: // IStream public: // IStream
std::ostream& stream() override { return m_os; } std::ostream& stream() override { return m_os; }
}; };

View File

@ -38,7 +38,6 @@ namespace Catch {
TrackerContext& ctx, TrackerContext& ctx,
ITracker* parent ): ITracker* parent ):
TrackerBase( CATCH_MOVE( nameAndLocation ), ctx, parent ) {} TrackerBase( CATCH_MOVE( nameAndLocation ), ctx, parent ) {}
~GeneratorTracker() override = default;
static GeneratorTracker* static GeneratorTracker*
acquire( TrackerContext& ctx, acquire( TrackerContext& ctx,

View File

@ -30,8 +30,6 @@ namespace Catch {
class TestRegistry : public ITestCaseRegistry { class TestRegistry : public ITestCaseRegistry {
public: public:
~TestRegistry() override = default;
void registerTest( Detail::unique_ptr<TestCaseInfo> testInfo, Detail::unique_ptr<ITestInvoker> testInvoker ); void registerTest( Detail::unique_ptr<TestCaseInfo> testInfo, Detail::unique_ptr<ITestInvoker> testInvoker );
std::vector<TestCaseInfo*> const& getAllInfos() const override; std::vector<TestCaseInfo*> const& getAllInfos() const override;

View File

@ -19,8 +19,6 @@ namespace Catch {
public: public:
JunitReporter(ReporterConfig&& _config); JunitReporter(ReporterConfig&& _config);
~JunitReporter() override = default;
static std::string getDescription(); static std::string getDescription();
void testRunStarting(TestRunInfo const& runInfo) override; void testRunStarting(TestRunInfo const& runInfo) override;

View File

@ -25,8 +25,6 @@ namespace Catch {
m_shouldStoreSuccesfulAssertions = false; m_shouldStoreSuccesfulAssertions = false;
} }
~SonarQubeReporter() override = default;
static std::string getDescription() { static std::string getDescription() {
using namespace std::string_literals; using namespace std::string_literals;
return "Reports test results in the Generic Test Data SonarQube XML format"s; return "Reports test results in the Generic Test Data SonarQube XML format"s;

View File

@ -19,7 +19,6 @@ namespace Catch {
StreamingReporterBase( CATCH_MOVE(config) ) { StreamingReporterBase( CATCH_MOVE(config) ) {
m_preferences.shouldReportAllAssertions = true; m_preferences.shouldReportAllAssertions = true;
} }
~TAPReporter() override = default;
static std::string getDescription() { static std::string getDescription() {
using namespace std::string_literals; using namespace std::string_literals;