diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2017-07-28 09:28:28 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2017-07-28 09:28:28 +0200 |
commit | e84eedc54348e268ca95200b70caede9884076ea (patch) | |
tree | 47adec094b24d8cb6934bbf28434e746ad9f564f /build2/algorithm.hxx | |
parent | 566bcb8c4c36d12e398f00349c5f27cae06fa7a9 (diff) |
Add support for custom data storage in target::preprequisite_targets
Diffstat (limited to 'build2/algorithm.hxx')
-rw-r--r-- | build2/algorithm.hxx | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/build2/algorithm.hxx b/build2/algorithm.hxx index aef72cb..58bdf2f 100644 --- a/build2/algorithm.hxx +++ b/build2/algorithm.hxx @@ -208,8 +208,11 @@ namespace build2 // dependencies. Similar in semantics to match_prerequisites(). Any marked // target pointers are skipped. // + // T can only be const target* or prerequisite_target. + // + template <typename T> void - match_members (action, target&, const target*[], size_t); + match_members (action, target&, T[], size_t); template <size_t N> inline void @@ -219,7 +222,7 @@ namespace build2 } inline void - match_members (action a, target& t, vector<const target*>& ts, size_t start) + match_members (action a, target& t, prerequisite_targets& ts, size_t start) { match_members (a, t, ts.data () + start, ts.size () - start); } @@ -372,11 +375,15 @@ namespace build2 // Execute members of a group or similar prerequisite-like dependencies. // Similar in semantics to execute_prerequisites(). // + // T can only be const target* or prerequisite_target. + // + template <typename T> target_state - straight_execute_members (action, const target&, const target*[], size_t); + straight_execute_members (action, const target&, T[], size_t); + template <typename T> target_state - reverse_execute_members (action, const target&, const target*[], size_t); + reverse_execute_members (action, const target&, T[], size_t); // Call straight or reverse depending on the current mode. // |