From 65fadc6003259719161be650d2ede16c30e0bb3b Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Fri, 15 Apr 2022 10:03:36 +0200 Subject: Get rid of target::dynamic_type() virtual function Instead of overriding this function, derived targets must now set the dynamic_type variable to their static_type in their constructor body. --- build2/cli/target.hxx | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) (limited to 'build2/cli') diff --git a/build2/cli/target.hxx b/build2/cli/target.hxx index 722bb5f..f27ee89 100644 --- a/build2/cli/target.hxx +++ b/build2/cli/target.hxx @@ -18,11 +18,14 @@ namespace build2 class cli: public file { public: - using file::file; + cli (context& c, dir_path d, dir_path o, string n) + : file (c, move (d), move (o), move (n)) + { + dynamic_type = &static_type; + } public: static const target_type static_type; - virtual const target_type& dynamic_type () const {return static_type;} }; // Standard layout type compatible with group_view's const target*[3]. @@ -37,16 +40,17 @@ namespace build2 class cli_cxx: public mtime_target, public cli_cxx_members { public: - using mtime_target::mtime_target; + cli_cxx (context& c, dir_path d, dir_path o, string n) + : mtime_target (c, move (d), move (o), move (n)) + { + dynamic_type = &static_type; + } virtual group_view group_members (action) const override; public: static const target_type static_type; - - virtual const target_type& - dynamic_type () const override {return static_type;} }; } } -- cgit v1.1