aboutsummaryrefslogtreecommitdiff
path: root/build2/cli
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2022-04-15 10:03:36 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2022-04-15 10:03:36 +0200
commit65fadc6003259719161be650d2ede16c30e0bb3b (patch)
treeb47730c4ec8988829a0255da2aca759a697b0aa5 /build2/cli
parentaa29434a2feebc8925307372c27a5f56021620fc (diff)
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.
Diffstat (limited to 'build2/cli')
-rw-r--r--build2/cli/target.hxx16
1 files changed, 10 insertions, 6 deletions
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;}
};
}
}