* include/std/functional (__is_socketlike): Change from class
authorredi <redi@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 26 Nov 2012 23:53:36 +0000 (23:53 +0000)
committerredi <redi@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 26 Nov 2012 23:53:36 +0000 (23:53 +0000)
template to alias template.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193832 138bc75d-0d04-0410-961f-82ee72b054a4

libstdc++-v3/ChangeLog
libstdc++-v3/include/std/functional

index f7f43fe..c6d0687 100644 (file)
@@ -1,5 +1,10 @@
 2012-11-26  Jonathan Wakely  <jwakely.gcc@gmail.com>
 
+       * include/std/functional (__is_socketlike): Change from class
+       template to alias template.
+
+2012-11-26  Jonathan Wakely  <jwakely.gcc@gmail.com>
+
        PR libstdc++/55463
        * include/std/functional (_Mem_fn): Handle rvalue objects. Add
        noexcept-specifications.
index 1a98127..0d8fbd6 100644 (file)
@@ -1503,14 +1503,8 @@ _GLIBCXX_HAS_NESTED_TYPE(result_type)
   // Trait type used to remove std::bind() from overload set via SFINAE
   // when first argument has integer type, so that std::bind() will
   // not be a better match than ::bind() from the BSD Sockets API.
-  template<typename _Tp>
-    class __is_socketlike
-    {
-      typedef typename decay<_Tp>::type _Tp2;
-    public:
-      static const bool value =
-       is_integral<_Tp2>::value || is_enum<_Tp2>::value;
-    };
+  template<typename _Tp, typename _Tp2 = typename decay<_Tp>::type>
+    using __is_socketlike = __or_<is_integral<_Tp2>, is_enum<_Tp2>>;
 
   template<bool _SocketLike, typename _Func, typename... _BoundArgs>
     struct _Bind_helper