OSDN Git Service

2010-05-17 Paolo Carlini <paolo.carlini@oracle.com>
[pf3gnuchains/gcc-fork.git] / libstdc++-v3 / include / std / type_traits
index a2748c5..9831851 100644 (file)
@@ -638,7 +638,6 @@ namespace std
       typedef typename
         common_type<typename common_type<_Tp, _Up>::type, _Vp...>::type type;
     };
-  // @} group metaprogramming
 
   /// declval
   template<typename _Tp>
@@ -656,6 +655,20 @@ namespace std
                    "declval() must not be used!");
       return __declval_protector<_Tp>::__delegate();
     }
+
+  /// result_of
+  template<typename _Signature>
+    class result_of;
+
+  template<typename _Functor, typename... _ArgTypes>
+    struct result_of<_Functor(_ArgTypes...)>
+    {
+      typedef
+        decltype( std::declval<_Functor>()(std::declval<_ArgTypes>()...) )
+        type;
+    };
+
+  // @} group metaprogramming
 }
 
 #endif  // __GXX_EXPERIMENTAL_CXX0X__