aboutsummaryrefslogtreecommitdiff
path: root/libbuild2/config/utility.hxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2019-10-18 08:37:27 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2019-10-18 09:36:55 +0200
commita566a3acc84386e4738711d27a250f63e59cbb6b (patch)
tree472fc3526d8207d0842f75305e803205cbfb578d /libbuild2/config/utility.hxx
parent75d9644c125006170e773d7bf9372c4d9676e7a1 (diff)
Optimize config::required() to move default value if possible
Diffstat (limited to 'libbuild2/config/utility.hxx')
-rw-r--r--libbuild2/config/utility.hxx11
1 files changed, 7 insertions, 4 deletions
diff --git a/libbuild2/config/utility.hxx b/libbuild2/config/utility.hxx
index b1995b6..cfb7177 100644
--- a/libbuild2/config/utility.hxx
+++ b/libbuild2/config/utility.hxx
@@ -43,7 +43,7 @@ namespace build2
pair<lookup, bool>
required (scope& root,
const variable&,
- const T& default_value,
+ T&& default_value,
bool override = false,
uint64_t save_flags = 0);
@@ -53,12 +53,15 @@ namespace build2
inline pair<lookup, bool>
required (scope& root,
const string& name,
- const T& default_value,
+ T&& default_value,
bool override = false,
uint64_t save_flags = 0)
{
- return required (
- root, root.ctx.var_pool[name], default_value, override, save_flags);
+ return required (root,
+ root.ctx.var_pool[name],
+ std::forward<T> (default_value), // VC14
+ override,
+ save_flags);
}
inline pair<lookup, bool>