From f86f5272c27b4af1037045482135480a4bac3cd4 Mon Sep 17 00:00:00 2001 From: Kitsune Ral Date: Sun, 8 Jul 2018 10:52:57 +0900 Subject: Omittable: support perfect forwarding --- lib/util.h | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/lib/util.h b/lib/util.h index aa44893f..4fdf7aa0 100644 --- a/lib/util.h +++ b/lib/util.h @@ -77,17 +77,12 @@ namespace QMatrixClient public: explicit Omittable() : Omittable(none) { } Omittable(NoneTag) : _omitted(true) { } - Omittable(const T& val) : _value(val) { } - Omittable(T&& val) : _value(std::move(val)) { } - Omittable& operator=(const T& val) + template + Omittable(TT&& val) : _value(std::forward(val)) { } + template + Omittable& operator=(TT& val) { - _value = val; - _omitted = false; - return *this; - } - Omittable& operator=(T&& val) - { - _value = std::move(val); + _value = std::forward(val); _omitted = false; return *this; } -- cgit v1.2.3