From bd8b41d78d2dbcbd60528e2bb30e4bcc84556d43 Mon Sep 17 00:00:00 2001 From: Dan Goodliffe Date: Mon, 28 Dec 2020 11:52:52 +0000 Subject: Add moving variant of operator/ for optionals --- icespider/core/util.h | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/icespider/core/util.h b/icespider/core/util.h index 406faba..cb4f42a 100644 --- a/icespider/core/util.h +++ b/icespider/core/util.h @@ -15,6 +15,16 @@ namespace std::experimental::Ice { } return tf(); } + + template + auto + operator/(Ice::optional && o, const TF & tf) -> decltype(tf()) + { + if (o) { + return std::move(*o); + } + return tf(); + } } namespace std { @@ -27,6 +37,16 @@ namespace std { } return tf(); } + + template + auto + operator/(std::optional && o, const TF & tf) -> decltype(tf()) + { + if (o) { + return std::move(*o); + } + return tf(); + } } template -- cgit v1.2.3