From 0a540fffe444e2d50f35e62bc76e80fff52adb25 Mon Sep 17 00:00:00 2001 From: Nathan Hughes Date: Sat, 13 Jan 2024 13:54:52 -0500 Subject: [PATCH] fix template default errors and other warnings (#6) --- config_utilities/demos/demo_ros.cpp | 1 + config_utilities/include/config_utilities/factory.h | 2 +- .../config_utilities/internal/visitor_impl.hpp | 12 ++++++------ .../include/config_utilities/parsing/yaml.h | 2 +- config_utilities/test/tests/config_arrays.cpp | 1 + config_utilities/test/tests/virtual_config.cpp | 1 + 6 files changed, 11 insertions(+), 8 deletions(-) diff --git a/config_utilities/demos/demo_ros.cpp b/config_utilities/demos/demo_ros.cpp index 9bee7c7..9367676 100644 --- a/config_utilities/demos/demo_ros.cpp +++ b/config_utilities/demos/demo_ros.cpp @@ -108,6 +108,7 @@ void declare_config(SubConfig& config) { class Base { public: virtual void print() const = 0; + virtual ~Base() = default; }; class DerivedA : public Base { diff --git a/config_utilities/include/config_utilities/factory.h b/config_utilities/include/config_utilities/factory.h index 13e4aca..7828a59 100644 --- a/config_utilities/include/config_utilities/factory.h +++ b/config_utilities/include/config_utilities/factory.h @@ -203,7 +203,7 @@ struct ConfigWrapperImpl : public ConfigWrapper { explicit ConfigWrapperImpl(const std::string& _type) : ConfigWrapper(_type) {} ConfigT config; std::unique_ptr clone() const override { return std::make_unique>(*this); }; - void onDeclareConfig() { declare_config(config); } + void onDeclareConfig() override { declare_config(config); } std::unique_ptr createDefault() const override { return std::make_unique>(type); }; diff --git a/config_utilities/include/config_utilities/internal/visitor_impl.hpp b/config_utilities/include/config_utilities/internal/visitor_impl.hpp index d9fc1c4..1ad3a25 100644 --- a/config_utilities/include/config_utilities/internal/visitor_impl.hpp +++ b/config_utilities/include/config_utilities/internal/visitor_impl.hpp @@ -120,7 +120,7 @@ MetaData Visitor::subVisit(ConfigT& config, } // Visit a non-config field. -template (), bool>::type = true> +template (), bool>::type> void Visitor::visitField(T& field, const std::string& field_name, const std::string& unit) { Visitor& visitor = Visitor::instance(); if (visitor.mode == Visitor::Mode::kSet) { @@ -147,7 +147,7 @@ void Visitor::visitField(T& field, const std::string& field_name, const std::str } // Visits a non-config field with conversion. -template (), bool>::type = true> +template (), bool>::type> void Visitor::visitField(T& field, const std::string& field_name, const std::string& unit) { Visitor& visitor = Visitor::instance(); if (visitor.mode == Visitor::Mode::kSet) { @@ -188,7 +188,7 @@ void Visitor::visitField(T& field, const std::string& field_name, const std::str } // Visits a single subconfig field. -template (), bool>::type = true> +template (), bool>::type> void Visitor::visitField(ConfigT& config, const std::string& field_name, const std::string& name_space) { Visitor& visitor = Visitor::instance(); if (visitor.mode == Visitor::Mode::kGetDefaults) { @@ -208,7 +208,7 @@ void Visitor::visitField(ConfigT& config, const std::string& field_name, const s } // Visit a vector of subconfigs. -template (), bool>::type = true> +template (), bool>::type> void Visitor::visitField(std::vector& config, const std::string& field_name, const std::string& /* unit */) { Visitor& visitor = Visitor::instance(); if (visitor.mode == Visitor::Mode::kGetDefaults) { @@ -278,7 +278,7 @@ void Visitor::visitBase(ConfigT& config) { } } -template ::value, bool>::type = true> +template ::value, bool>::type> MetaData Visitor::getDefaults(const ConfigT& config) { Visitor visitor(Mode::kGetDefaults); ConfigT default_config; @@ -286,7 +286,7 @@ MetaData Visitor::getDefaults(const ConfigT& config) { return visitor.data; } -template ::value, bool>::type = true> +template ::value, bool>::type> MetaData Visitor::getDefaults(const ConfigT& config) { Visitor visitor(Mode::kGetDefaults); if (config.isSet()) { diff --git a/config_utilities/include/config_utilities/parsing/yaml.h b/config_utilities/include/config_utilities/parsing/yaml.h index f9c9567..7bccccc 100644 --- a/config_utilities/include/config_utilities/parsing/yaml.h +++ b/config_utilities/include/config_utilities/parsing/yaml.h @@ -130,7 +130,7 @@ bool toYamlFile(const ConfigT& config, const std::string& file_name) { // TODO(lschmid): Here should probably be some verification of the output and of the target file to be created, as // well as extension handling. For now let ofstream handle it. std::ofstream fout(file_name); - fout << std::string(out.c_str); + fout << std::string(out.c_str()); return true; } diff --git a/config_utilities/test/tests/config_arrays.cpp b/config_utilities/test/tests/config_arrays.cpp index bc4ee9d..d09ab38 100644 --- a/config_utilities/test/tests/config_arrays.cpp +++ b/config_utilities/test/tests/config_arrays.cpp @@ -85,6 +85,7 @@ void declare_config(ConfigWithArrays& config) { class ProcessorBase { public: virtual void process(std::string& s) const = 0; + virtual ~ProcessorBase() = default; }; class AddString : public ProcessorBase { diff --git a/config_utilities/test/tests/virtual_config.cpp b/config_utilities/test/tests/virtual_config.cpp index 1abd22f..042d3d7 100644 --- a/config_utilities/test/tests/virtual_config.cpp +++ b/config_utilities/test/tests/virtual_config.cpp @@ -49,6 +49,7 @@ namespace config::test { class Base2 { public: virtual std::string name() const = 0; + virtual ~Base2() = default; }; class Derived2 : public Base2 {