From faf989f93695d29099f6e152d5a2e117cd304183 Mon Sep 17 00:00:00 2001 From: MarcoFalke Date: Thu, 16 Apr 2020 12:26:01 -0400 Subject: [PATCH] util: Document why ArgsManager (con/de)structor is not inline --- src/util/settings.h | 2 +- src/util/system.cpp | 9 +++++---- src/util/system.h | 1 + 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/util/settings.h b/src/util/settings.h index bbb6abe2c096d..1d03639fa268b 100644 --- a/src/util/settings.h +++ b/src/util/settings.h @@ -9,7 +9,7 @@ #include #include -#include // For util::SettingsValue = UniValue +class UniValue; namespace util { diff --git a/src/util/system.cpp b/src/util/system.cpp index b0a538b52773e..69a7be96dc8e4 100644 --- a/src/util/system.cpp +++ b/src/util/system.cpp @@ -226,10 +226,11 @@ static bool CheckValid(const std::string& key, const util::SettingsValue& val, u return true; } -ArgsManager::ArgsManager() -{ - // nothing to do -} +// Define default constructor and destructor that are not inline, so code instantiating this class doesn't need to +// #include class definitions for all members. +// For example, m_settings has an internal dependency on univalue. +ArgsManager::ArgsManager() {} +ArgsManager::~ArgsManager() {} const std::set ArgsManager::GetUnsuitableSectionOnlyArgs() const { diff --git a/src/util/system.h b/src/util/system.h index 3138522b5c810..96f51e6074a3d 100644 --- a/src/util/system.h +++ b/src/util/system.h @@ -192,6 +192,7 @@ class ArgsManager public: ArgsManager(); + ~ArgsManager(); /** * Select the network in use