OSDN Git Service

2010-10-28 Paolo Carlini <paolo.carlini@oracle.com>
[pf3gnuchains/gcc-fork.git] / libstdc++-v3 / include / profile / unordered_map
index 2dec1f2..18563d8 100644 (file)
@@ -191,6 +191,31 @@ namespace __profile
         return __res;
       }
 
+      template<typename _Pair, typename = typename
+              std::enable_if<std::is_convertible<_Pair,
+                                                 value_type>::value>::type>
+        std::pair<iterator, bool>
+        insert(_Pair&& __obj)
+        {
+         size_type __old_size =  _Base::bucket_count();
+         std::pair<iterator, bool> __res
+           = _Base::insert(std::forward<_Pair>(__obj));
+         _M_profile_resize(__old_size, _Base::bucket_count()); 
+         return __res;
+       }
+
+      template<typename _Pair, typename = typename
+              std::enable_if<std::is_convertible<_Pair,
+                                                 value_type>::value>::type>
+        iterator
+        insert(const_iterator __iter, _Pair&& __v)
+        { 
+         size_type __old_size = _Base::bucket_count(); 
+         iterator __res = _Base::insert(__iter, std::forward<_Pair>(__v));
+         _M_profile_resize(__old_size, _Base::bucket_count()); 
+         return __res;
+       }
+
       template<typename _InputIter>
         void
         insert(_InputIter __first, _InputIter __last)
@@ -420,11 +445,35 @@ namespace __profile
       insert(const_iterator __iter, const value_type& __v)
       { 
         size_type __old_size = _Base::bucket_count(); 
-        iterator __res =_Base::insert(__iter, __v);
+        iterator __res = _Base::insert(__iter, __v);
         _M_profile_resize(__old_size, _Base::bucket_count()); 
         return __res;
       }
 
+      template<typename _Pair, typename = typename
+              std::enable_if<std::is_convertible<_Pair,
+                                                 value_type>::value>::type>
+        iterator
+        insert(_Pair&& __obj)
+        {
+         size_type __old_size =  _Base::bucket_count();
+         iterator __res = _Base::insert(std::forward<_Pair>(__obj));
+         _M_profile_resize(__old_size, _Base::bucket_count()); 
+         return __res;
+       }
+
+      template<typename _Pair, typename = typename
+              std::enable_if<std::is_convertible<_Pair,
+                                                 value_type>::value>::type>
+        iterator
+        insert(const_iterator __iter, _Pair&& __v)
+        {
+         size_type __old_size = _Base::bucket_count(); 
+         iterator __res = _Base::insert(__iter, std::forward<_Pair>(__v));
+         _M_profile_resize(__old_size, _Base::bucket_count()); 
+         return __res;
+       }
+
       template<typename _InputIter>
         void
         insert(_InputIter __first, _InputIter __last)