From 6e91cb7cdb0c4f000a79d20d8578890d56bcdc84 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Fri, 22 Jan 2021 08:39:10 +0200 Subject: Add support for optional pair halves in variable values --- libbuild2/variable.ixx | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'libbuild2/variable.ixx') diff --git a/libbuild2/variable.ixx b/libbuild2/variable.ixx index c8f9541..9b24b9d 100644 --- a/libbuild2/variable.ixx +++ b/libbuild2/variable.ixx @@ -728,6 +728,31 @@ namespace build2 : s); } + // optional + // + template + inline int value_traits>:: + compare (const optional& l, const optional& r) + { + return l + ? (r ? value_traits::compare (*l, *r) : 1) + : (r ? -1 : 0); + } + + // pair value + // + template + inline int value_traits>:: + compare (const pair& l, const pair& r) + { + int i (value_traits::compare (l.first, r.first)); + + if (i == 0) + i = value_traits::compare (l.second, r.second); + + return i; + } + // vector value // template -- cgit v1.1