aboutsummaryrefslogtreecommitdiff
path: root/libbuild2/utility.hxx
diff options
context:
space:
mode:
authorMatthew Krupcale <mkrupcale@matthewkrupcale.com>2020-08-09 09:37:19 -0400
committerBoris Kolpackov <boris@codesynthesis.com>2020-08-12 13:57:35 +0200
commitca2283bdc00529967f9ccd9bf0097714447af351 (patch)
tree3db34d7239556aa8ba8c708487f325f3edd85073 /libbuild2/utility.hxx
parentd72e5f95e70976f9b8bc29a7ace3c354e815ca49 (diff)
Add iterator-based versions of find_option{,_prefix}
This allows one to use all of the properties of iterators to manipulate the found option.
Diffstat (limited to 'libbuild2/utility.hxx')
-rw-r--r--libbuild2/utility.hxx16
1 files changed, 13 insertions, 3 deletions
diff --git a/libbuild2/utility.hxx b/libbuild2/utility.hxx
index 7a6ada2..b747667 100644
--- a/libbuild2/utility.hxx
+++ b/libbuild2/utility.hxx
@@ -633,7 +633,8 @@ namespace build2
F&& get = [] (const string& s) {return s;});
// Check if a specified option is present in the variable or value. T is
- // either target or scope.
+ // either target or scope. For the interator version use rbegin()/rend() to
+ // search backwards.
//
template <typename T>
bool
@@ -649,6 +650,10 @@ namespace build2
const char* variable,
bool ignore_case = false);
+ template <typename I>
+ I
+ find_option (const char* option, I begin, I end, bool ignore_case = false);
+
LIBBUILD2_SYMEXPORT bool
find_option (const char* option, const lookup&, bool ignore_case = false);
@@ -691,8 +696,9 @@ namespace build2
// As above but look for an option that has the specified prefix. Return the
// pointer to option or NULL if not found (thus can be used as bool).
- // Search backward (which is normall consistent with how options override
- // each other).
+ // Search backward (which is normally consistent with how options override
+ // each other). For the interator version use rbegin()/rend() to do the
+ // same.
//
template <typename T>
const string*
@@ -702,6 +708,10 @@ namespace build2
const string*
find_option_prefix (const char* prefix, T&, const char*, bool = false);
+ template <typename I>
+ I
+ find_option_prefix (const char* prefix, I begin, I end, bool = false);
+
LIBBUILD2_SYMEXPORT const string*
find_option_prefix (const char* prefix, const lookup&, bool = false);