From c0743592bfae808b61a8146fd97af94b50156f0e Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Tue, 12 Nov 2019 12:20:34 +0200 Subject: Add support for vector> variable values --- libbuild2/variable.ixx | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'libbuild2/variable.ixx') diff --git a/libbuild2/variable.ixx b/libbuild2/variable.ixx index d341c26..d6bf119 100644 --- a/libbuild2/variable.ixx +++ b/libbuild2/variable.ixx @@ -707,6 +707,37 @@ namespace build2 new (&v.data_) vector (move (x)); } + // vector> value + // + template + inline void value_traits>>:: + assign (value& v, vector>&& x) + { + if (v) + v.as>> () = move (x); + else + new (&v.data_) vector> (move (x)); + } + + template + inline void value_traits>>:: + append (value& v, vector>&& x) + { + if (v) + { + vector>& y (v.as>> ()); + + if (y.empty ()) + y.swap (x); + else + y.insert (y.end (), + make_move_iterator (x.begin ()), + make_move_iterator (x.end ())); + } + else + new (&v.data_) vector> (move (x)); + } + // map value // template -- cgit v1.1