[libsigc++2/variadic_bind3: 41/45] Avoid std::make_tuple().



commit fc92cc7ca9e32448b6ffebdd957f36e4cf4438ca
Author: Murray Cumming <murrayc murrayc com>
Date:   Fri Feb 19 11:33:56 2016 +0100

    Avoid std::make_tuple().
    
    To preserve std::ref()ed elements.

 sigc++/adaptors/bind.h |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
---
diff --git a/sigc++/adaptors/bind.h b/sigc++/adaptors/bind.h
index 3e69a4c..0dbe755 100644
--- a/sigc++/adaptors/bind.h
+++ b/sigc++/adaptors/bind.h
@@ -132,7 +132,7 @@ struct bind_functor : public adapts<T_functor>
       //we would want to call operator() with (_A_arg0, bound, _A_arg1, _A_arg2).
       
       using tuple_type_args = std::tuple<type_trait_pass_t<T_arg>...>;
-      auto t_args = std::make_tuple(_A_arg...);
+      auto t_args = std::tuple<T_arg...>(_A_arg...);
       constexpr auto t_args_size = std::tuple_size<tuple_type_args>::value;
       
       auto t_start = tuple_start<I_location>(t_args);
@@ -200,7 +200,7 @@ struct bind_functor<-1, T_functor, T_type...> : public adapts<T_functor>
       //For instance, if _A_arg has 4 arguments,
       //we would want to call operator() with (_A_arg0, _A_arg1, _A_arg2, bound).
       
-      auto t_args = std::make_tuple(_A_arg...);
+      auto t_args = std::tuple<T_arg...>(_A_arg...);
       auto t_bound = tuple_transform_each<internal::TransformEachInvoker>(bound_);
       auto t_with_bound = std::tuple_cat(t_args, t_bound);
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]