diff --git a/docs/dev/clang-tidy-fixes-2026-04.md b/docs/dev/clang-tidy-fixes-2026-04.md index 9fa96e5c..37ea4833 100644 --- a/docs/dev/clang-tidy-fixes-2026-04.md +++ b/docs/dev/clang-tidy-fixes-2026-04.md @@ -48,7 +48,8 @@ - [PR #542](https://github.com/Framework-R-D/phlex/pull/542) - [ ] [cppcoreguidelines-avoid-const-or-ref-data-members](https://clang.llvm.org/extra/clang-tidy/checks/cppcoreguidelines/avoid-const-or-ref-data-members.html) (26) - [ ] [cppcoreguidelines-avoid-non-const-global-variables](https://clang.llvm.org/extra/clang-tidy/checks/cppcoreguidelines/avoid-non-const-global-variables.html) (47) -- [ ] [cppcoreguidelines-explicit-virtual-functions](https://clang.llvm.org/extra/clang-tidy/checks/cppcoreguidelines/explicit-virtual-functions.html) (19) +- [x] [cppcoreguidelines-explicit-virtual-functions](https://clang.llvm.org/extra/clang-tidy/checks/cppcoreguidelines/explicit-virtual-functions.html) (19) + - [PR #545](https://github.com/Framework-R-D/phlex/pull/545) - [ ] [cppcoreguidelines-init-variables](https://clang.llvm.org/extra/clang-tidy/checks/cppcoreguidelines/init-variables.html) (9) - [ ] [cppcoreguidelines-missing-std-forward](https://clang.llvm.org/extra/clang-tidy/checks/cppcoreguidelines/missing-std-forward.html) (2) - [ ] [cppcoreguidelines-no-malloc](https://clang.llvm.org/extra/clang-tidy/checks/cppcoreguidelines/no-malloc.html) (1) diff --git a/form/persistence/persistence_reader.hpp b/form/persistence/persistence_reader.hpp index 97e8600d..b630f5ae 100644 --- a/form/persistence/persistence_reader.hpp +++ b/form/persistence/persistence_reader.hpp @@ -23,7 +23,7 @@ namespace form::detail::experimental { class PersistenceReader : public IPersistenceReader { public: PersistenceReader(); - ~PersistenceReader() = default; + ~PersistenceReader() override = default; void configureTechSettings( form::experimental::config::tech_setting_config const& tech_config_settings) override; diff --git a/form/persistence/persistence_writer.hpp b/form/persistence/persistence_writer.hpp index edd3a64d..b5f3043c 100644 --- a/form/persistence/persistence_writer.hpp +++ b/form/persistence/persistence_writer.hpp @@ -23,7 +23,7 @@ namespace form::detail::experimental { class PersistenceWriter : public IPersistenceWriter { public: PersistenceWriter(); - ~PersistenceWriter() = default; + ~PersistenceWriter() override = default; void configureTechSettings( form::experimental::config::tech_setting_config const& tech_config_settings) override; diff --git a/form/root_storage/root_tbranch_read_container.hpp b/form/root_storage/root_tbranch_read_container.hpp index 29eaf049..4be4d4d2 100644 --- a/form/root_storage/root_tbranch_read_container.hpp +++ b/form/root_storage/root_tbranch_read_container.hpp @@ -17,7 +17,7 @@ namespace form::detail::experimental { class ROOT_TBranch_Read_ContainerImp : public Storage_Read_Container { public: ROOT_TBranch_Read_ContainerImp(std::string const& name); - ~ROOT_TBranch_Read_ContainerImp() = default; + ~ROOT_TBranch_Read_ContainerImp() override = default; void setFile(std::shared_ptr file) override; diff --git a/form/root_storage/root_tbranch_write_container.hpp b/form/root_storage/root_tbranch_write_container.hpp index 0e2280c1..25a967fb 100644 --- a/form/root_storage/root_tbranch_write_container.hpp +++ b/form/root_storage/root_tbranch_write_container.hpp @@ -17,7 +17,7 @@ namespace form::detail::experimental { class ROOT_TBranch_Write_ContainerImp : public Storage_Associative_Write_Container { public: ROOT_TBranch_Write_ContainerImp(std::string const& name); - ~ROOT_TBranch_Write_ContainerImp() = default; + ~ROOT_TBranch_Write_ContainerImp() override = default; void setAttribute(std::string const& key, std::string const& value) override; diff --git a/form/root_storage/root_tfile.hpp b/form/root_storage/root_tfile.hpp index ce5846c6..989b9522 100644 --- a/form/root_storage/root_tfile.hpp +++ b/form/root_storage/root_tfile.hpp @@ -15,7 +15,7 @@ namespace form::detail::experimental { class ROOT_TFileImp : public Storage_File { public: ROOT_TFileImp(std::string const& name, char mode); - ~ROOT_TFileImp(); + ~ROOT_TFileImp() override; void setAttribute(std::string const& key, std::string const& value) override; diff --git a/form/root_storage/root_ttree_write_container.hpp b/form/root_storage/root_ttree_write_container.hpp index f9af0465..72b4ce7e 100644 --- a/form/root_storage/root_ttree_write_container.hpp +++ b/form/root_storage/root_ttree_write_container.hpp @@ -16,7 +16,7 @@ namespace form::detail::experimental { class ROOT_TTree_Write_ContainerImp : public Storage_Write_Association { public: ROOT_TTree_Write_ContainerImp(std::string const& name); - ~ROOT_TTree_Write_ContainerImp(); + ~ROOT_TTree_Write_ContainerImp() override; ROOT_TTree_Write_ContainerImp(ROOT_TTree_Write_ContainerImp const& other) = delete; ROOT_TTree_Write_ContainerImp& operator=(ROOT_TTree_Write_ContainerImp& other) = delete; diff --git a/form/storage/storage_associative_write_container.hpp b/form/storage/storage_associative_write_container.hpp index 2b2524fd..58ab1d13 100644 --- a/form/storage/storage_associative_write_container.hpp +++ b/form/storage/storage_associative_write_container.hpp @@ -12,7 +12,7 @@ namespace form::detail::experimental { class Storage_Associative_Write_Container : public Storage_Write_Container { public: Storage_Associative_Write_Container(std::string const& name); - ~Storage_Associative_Write_Container(); + ~Storage_Associative_Write_Container() override; std::string const& top_name(); std::string const& col_name(); diff --git a/form/storage/storage_file.hpp b/form/storage/storage_file.hpp index 1419a021..7bce729c 100644 --- a/form/storage/storage_file.hpp +++ b/form/storage/storage_file.hpp @@ -11,7 +11,7 @@ namespace form::detail::experimental { class Storage_File : public IStorage_File { public: Storage_File(std::string const& name, char mode); - ~Storage_File() = default; + ~Storage_File() override = default; std::string const& name() override; char const mode() override; diff --git a/form/storage/storage_read_container.hpp b/form/storage/storage_read_container.hpp index be16d36a..4446a267 100644 --- a/form/storage/storage_read_container.hpp +++ b/form/storage/storage_read_container.hpp @@ -13,7 +13,7 @@ namespace form::detail::experimental { class Storage_Read_Container : public IStorage_Read_Container { public: Storage_Read_Container(std::string const& name); - ~Storage_Read_Container() = default; + ~Storage_Read_Container() override = default; std::string const& name() override; diff --git a/form/storage/storage_reader.hpp b/form/storage/storage_reader.hpp index 8d552d08..41ff6f0f 100644 --- a/form/storage/storage_reader.hpp +++ b/form/storage/storage_reader.hpp @@ -17,7 +17,7 @@ namespace form::detail::experimental { class StorageReader : public IStorageReader { public: StorageReader() = default; - ~StorageReader() = default; + ~StorageReader() override = default; using table_t = form::experimental::config::tech_setting_config::table_t; diff --git a/form/storage/storage_write_association.hpp b/form/storage/storage_write_association.hpp index d11bd83e..43f7362e 100644 --- a/form/storage/storage_write_association.hpp +++ b/form/storage/storage_write_association.hpp @@ -12,7 +12,7 @@ namespace form::detail::experimental { class Storage_Write_Association : public Storage_Write_Container { public: Storage_Write_Association(std::string const& name); - ~Storage_Write_Association() = default; + ~Storage_Write_Association() override = default; void setAttribute(std::string const& key, std::string const& value) override; }; diff --git a/form/storage/storage_write_container.hpp b/form/storage/storage_write_container.hpp index a13e0200..c6151d6d 100644 --- a/form/storage/storage_write_container.hpp +++ b/form/storage/storage_write_container.hpp @@ -13,7 +13,7 @@ namespace form::detail::experimental { class Storage_Write_Container : public IStorage_Write_Container { public: Storage_Write_Container(std::string const& name); - ~Storage_Write_Container() = default; + ~Storage_Write_Container() override = default; std::string const& name() override; diff --git a/form/storage/storage_writer.hpp b/form/storage/storage_writer.hpp index 55cc77f8..50679d31 100644 --- a/form/storage/storage_writer.hpp +++ b/form/storage/storage_writer.hpp @@ -17,7 +17,7 @@ namespace form::detail::experimental { class StorageWriter : public IStorageWriter { public: StorageWriter() = default; - ~StorageWriter() = default; + ~StorageWriter() override = default; using table_t = form::experimental::config::tech_setting_config::table_t; void createContainers( diff --git a/phlex/core/declared_fold.hpp b/phlex/core/declared_fold.hpp index 44d0ae8b..29f10787 100644 --- a/phlex/core/declared_fold.hpp +++ b/phlex/core/declared_fold.hpp @@ -41,7 +41,7 @@ namespace phlex::experimental { declared_fold(algorithm_name name, std::vector predicates, product_queries input_products); - virtual ~declared_fold(); + ~declared_fold() override; virtual tbb::flow::sender& output_port() = 0; virtual tbb::flow::receiver& flush_port() = 0; diff --git a/phlex/core/declared_observer.hpp b/phlex/core/declared_observer.hpp index 4a70f26f..204e0db0 100644 --- a/phlex/core/declared_observer.hpp +++ b/phlex/core/declared_observer.hpp @@ -37,7 +37,7 @@ namespace phlex::experimental { declared_observer(algorithm_name name, std::vector predicates, product_queries input_products); - virtual ~declared_observer(); + ~declared_observer() override; }; using declared_observer_ptr = std::unique_ptr; diff --git a/phlex/core/declared_predicate.hpp b/phlex/core/declared_predicate.hpp index 82334667..8fe93424 100644 --- a/phlex/core/declared_predicate.hpp +++ b/phlex/core/declared_predicate.hpp @@ -39,7 +39,7 @@ namespace phlex::experimental { declared_predicate(algorithm_name name, std::vector predicates, product_queries input_products); - virtual ~declared_predicate(); + ~declared_predicate() override; virtual tbb::flow::sender& sender() = 0; }; diff --git a/phlex/core/declared_transform.hpp b/phlex/core/declared_transform.hpp index 7e64a4f3..c4f59588 100644 --- a/phlex/core/declared_transform.hpp +++ b/phlex/core/declared_transform.hpp @@ -43,7 +43,7 @@ namespace phlex::experimental { declared_transform(algorithm_name name, std::vector predicates, product_queries input_products); - virtual ~declared_transform(); + ~declared_transform() override; virtual tbb::flow::sender& output_port() = 0; virtual product_specifications const& output() const = 0; diff --git a/phlex/core/declared_unfold.hpp b/phlex/core/declared_unfold.hpp index b9d2c5ef..3b6d165d 100644 --- a/phlex/core/declared_unfold.hpp +++ b/phlex/core/declared_unfold.hpp @@ -61,7 +61,7 @@ namespace phlex::experimental { std::vector predicates, product_queries input_products, std::string child_layer); - virtual ~declared_unfold(); + ~declared_unfold() override; virtual tbb::flow::sender& output_port() = 0; virtual tbb::flow::sender& output_index_port() = 0; diff --git a/phlex/core/detail/repeater_node.hpp b/phlex/core/detail/repeater_node.hpp index e7409987..cc34d6bc 100644 --- a/phlex/core/detail/repeater_node.hpp +++ b/phlex/core/detail/repeater_node.hpp @@ -29,7 +29,7 @@ namespace phlex::experimental::detail { bool cache_is_empty() const; std::size_t cache_size() const; - ~repeater_node(); + ~repeater_node() override; private: using base_t = tbb::flow::composite_node>;