From a8cf2a84c43ab2ef9ac2b19253ec2bdacd4006f6 Mon Sep 17 00:00:00 2001 From: Maxime Coste Date: Wed, 22 Jun 2016 22:17:13 +0100 Subject: [PATCH] Add an Optional::emplace method --- src/optional.hh | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/optional.hh b/src/optional.hh index 3aa3676f3..a4d15ff59 100644 --- a/src/optional.hh +++ b/src/optional.hh @@ -60,6 +60,14 @@ public: return false; } + template + void emplace(Args&&... args) + { + destruct_ifn(); + new (&m_value) T{std::forward(args)...}; + m_valid = true; + } + T& operator*() { kak_assert(m_valid);