diff --git a/src/util/settings.h b/src/util/settings.h index bbb6abe2c09..1d03639fa26 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 b0a538b5277..69a7be96dc8 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 3138522b5c8..96f51e6074a 100644 --- a/src/util/system.h +++ b/src/util/system.h @@ -192,6 +192,7 @@ protected: public: ArgsManager(); + ~ArgsManager(); /** * Select the network in use