From 17a6d11b793a67c254e368c66aaecd33608378ee Mon Sep 17 00:00:00 2001 From: Lasse Hinrichsen <lh1887@mi.fu-berlin.de> Date: Thu, 5 Apr 2018 16:42:43 +0200 Subject: [PATCH] [variant] forward, not move --- dune/subgrid/common/variant.hh | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/dune/subgrid/common/variant.hh b/dune/subgrid/common/variant.hh index e2132ea..484e5fe 100644 --- a/dune/subgrid/common/variant.hh +++ b/dune/subgrid/common/variant.hh @@ -125,10 +125,11 @@ namespace Impl { } template<typename Tp> - void set(Tp obj) { - Dune::Hybrid::ifElse(std::is_same<Tp, Head_>(), - [&](auto&& id) { head_=std::move(id(obj)); }, - [&](auto&& id) { return id(tail_).set(std::move(obj)); } + void set(Tp&& obj) { + using T = std::decay_t<Tp>; + Dune::Hybrid::ifElse(std::is_same<T, Head_>(), + [&](auto&& id) { id(head_)=std::forward<Tp>(obj); }, + [&](auto&& id) { return id(tail_).set(std::forward<Tp>(obj)); } ); } -- GitLab