From 59ce413ef3dc4a11425eb121e23027cc1efe63a9 Mon Sep 17 00:00:00 2001 From: q66 Date: Fri, 2 Sep 2016 18:52:47 +0100 Subject: [PATCH] maybe enhancements --- ostd/maybe.hh | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/ostd/maybe.hh b/ostd/maybe.hh index 9235e82..47ed4de 100644 --- a/ostd/maybe.hh +++ b/ostd/maybe.hh @@ -51,7 +51,8 @@ namespace detail { constexpr MaybeStorage(Value const &v): p_value(v), p_engaged(true) {} constexpr MaybeStorage(Value &&v): p_value(move(v)), p_engaged(true) {} - template constexpr MaybeStorage(InPlace, A &&...args): + template + constexpr MaybeStorage(InPlace, A &&...args): p_value(forward(args)...), p_engaged(true) {} @@ -468,6 +469,16 @@ inline constexpr Maybe> make_maybe(T &&v) { return Maybe>(forward(v)); } +template +inline constexpr Maybe make_maybe(A &&...args) { + return Maybe(InPlace, forward(args)...); +} + +template +inline constexpr Maybe make_maybe(std::initializer_list il, A &&...args) { + return Maybe(InPlace, il, forward(args)...); +} + } /* namespace ostd */ #endif