diff mbox

Simplify construction of _Bind_simple in <functional>

Message ID 20141104025158.GC3961@redhat.com
State New
Headers show

Commit Message

Jonathan Wakely Nov. 4, 2014, 2:51 a.m. UTC
With the arity-checking I added recently we don't need the SFINAE
constraints on the number of arguments to _Bind_simple's constructors.

Tested x86_64-linux, committed to trunk.
commit d78bba658af1677b873d391649ee237150b3c916
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Mon Nov 3 14:52:15 2014 +0000

    	* include/std/functional (_Bind_simple): Simplify construction.
diff mbox

Patch

diff --git a/libstdc++-v3/include/std/functional b/libstdc++-v3/include/std/functional
index f615ae4..f8e9b54 100644
--- a/libstdc++-v3/include/std/functional
+++ b/libstdc++-v3/include/std/functional
@@ -1582,18 +1582,10 @@  _GLIBCXX_HAS_NESTED_TYPE(result_type)
     {
       typedef typename result_of<_Callable(_Args...)>::type result_type;
 
-      template<typename... _Args2, typename = typename
-               enable_if< sizeof...(_Args) == sizeof...(_Args2)>::type>
+      template<typename _Tp, typename... _Up>
         explicit
-        _Bind_simple(const _Callable& __callable, _Args2&&... __args)
-        : _M_bound(__callable, std::forward<_Args2>(__args)...)
-        { }
-
-      template<typename... _Args2, typename = typename
-               enable_if< sizeof...(_Args) == sizeof...(_Args2)>::type>
-        explicit
-        _Bind_simple(_Callable&& __callable, _Args2&&... __args)
-        : _M_bound(std::move(__callable), std::forward<_Args2>(__args)...)
+        _Bind_simple(_Tp&& __f, _Up&&... __args)
+        : _M_bound(std::forward<_Tp>(__f), std::forward<_Up>(__args)...)
         { }
 
       _Bind_simple(const _Bind_simple&) = default;
@@ -1607,7 +1599,6 @@  _GLIBCXX_HAS_NESTED_TYPE(result_type)
       }
 
     private:
-
       template<std::size_t... _Indices>
         typename result_of<_Callable(_Args...)>::type
         _M_invoke(_Index_tuple<_Indices...>)