diff options
| author | Dan Goodliffe <dan@randomdan.homeip.net> | 2020-12-28 11:52:52 +0000 | 
|---|---|---|
| committer | Dan Goodliffe <dan@randomdan.homeip.net> | 2020-12-28 11:52:52 +0000 | 
| commit | bd8b41d78d2dbcbd60528e2bb30e4bcc84556d43 (patch) | |
| tree | 3c66871e6774b098a95ba07b2173d9a1fc1bc7a2 | |
| parent | Modern LTO options (diff) | |
| download | icespider-bd8b41d78d2dbcbd60528e2bb30e4bcc84556d43.tar.bz2 icespider-bd8b41d78d2dbcbd60528e2bb30e4bcc84556d43.tar.xz icespider-bd8b41d78d2dbcbd60528e2bb30e4bcc84556d43.zip | |
Add moving variant of operator/ for optionals
| -rw-r--r-- | icespider/core/util.h | 20 | 
1 files changed, 20 insertions, 0 deletions
| 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<typename T, typename TF> +	auto +	operator/(Ice::optional<T> && 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<typename T, typename TF> +	auto +	operator/(std::optional<T> && o, const TF & tf) -> decltype(tf()) +	{ +		if (o) { +			return std::move(*o); +		} +		return tf(); +	}  }  template<typename T> | 
