summaryrefslogtreecommitdiffstats
path: root/libstdc++-v3/include/profile
diff options
context:
space:
mode:
authorpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>2012-07-13 08:59:58 +0000
committerpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>2012-07-13 08:59:58 +0000
commit4f2884deb130f66338c261eefda1b6be06e2c82a (patch)
tree98cbf83c315fe42c65c2ddcf8b73005612e9ba99 /libstdc++-v3/include/profile
parentba187736c174c79b085c205027799b62ae14634b (diff)
downloadppe42-gcc-4f2884deb130f66338c261eefda1b6be06e2c82a.tar.gz
ppe42-gcc-4f2884deb130f66338c261eefda1b6be06e2c82a.zip
2012-07-13 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/53657 * include/bits/stl_pair.h (pair<>::pair(pair&&)): Declare defaulted, per C++11. * include/bits/stl_map.h (map<>::insert(_Pair&&), map<>::insert (const_iterator, _Pair&&)): Constrain with std::is_constructible, per LWG2005. * include/bits/stl_multimap.h (multimap<>::insert(_Pair&&), multimap<>::insert(const_iterator, _Pair&&)): Likewise. * include/bits/hashtable_policy.h (_Insert<>::insert(_Pair&&), _Insert<>::insert(const_iterator, _Pair&&)): Likewise. * include/debug/unordered_map: Adjust. * include/debug/map.h: Likewise. * include/debug/multimap.h: Likewise. * include/profile/unordered_map: Likewise. * include/profile/map.h: Likewise. * include/profile/multimap.h: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@189456 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libstdc++-v3/include/profile')
-rw-r--r--libstdc++-v3/include/profile/map.h10
-rw-r--r--libstdc++-v3/include/profile/multimap.h10
-rw-r--r--libstdc++-v3/include/profile/unordered_map18
3 files changed, 19 insertions, 19 deletions
diff --git a/libstdc++-v3/include/profile/map.h b/libstdc++-v3/include/profile/map.h
index 200da370d73..42c32aae4ce 100644
--- a/libstdc++-v3/include/profile/map.h
+++ b/libstdc++-v3/include/profile/map.h
@@ -1,6 +1,6 @@
// Profiling map implementation -*- C++ -*-
-// Copyright (C) 2009, 2010, 2011 Free Software Foundation, Inc.
+// Copyright (C) 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -248,8 +248,8 @@ namespace __profile
#ifdef __GXX_EXPERIMENTAL_CXX0X__
template<typename _Pair, typename = typename
- std::enable_if<std::is_convertible<_Pair,
- value_type>::value>::type>
+ std::enable_if<std::is_constructible<value_type,
+ _Pair&&>::value>::type>
std::pair<iterator, bool>
insert(_Pair&& __x)
{
@@ -289,8 +289,8 @@ namespace __profile
#ifdef __GXX_EXPERIMENTAL_CXX0X__
template<typename _Pair, typename = typename
- std::enable_if<std::is_convertible<_Pair,
- value_type>::value>::type>
+ std::enable_if<std::is_constructible<value_type,
+ _Pair&&>::value>::type>
iterator
insert(const_iterator __position, _Pair&& __x)
{
diff --git a/libstdc++-v3/include/profile/multimap.h b/libstdc++-v3/include/profile/multimap.h
index b71be4570bd..608d6b76c68 100644
--- a/libstdc++-v3/include/profile/multimap.h
+++ b/libstdc++-v3/include/profile/multimap.h
@@ -1,6 +1,6 @@
// Profiling multimap implementation -*- C++ -*-
-// Copyright (C) 2009, 2010, 2011 Free Software Foundation, Inc.
+// Copyright (C) 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -186,8 +186,8 @@ namespace __profile
#ifdef __GXX_EXPERIMENTAL_CXX0X__
template<typename _Pair, typename = typename
- std::enable_if<std::is_convertible<_Pair,
- value_type>::value>::type>
+ std::enable_if<std::is_constructible<value_type,
+ _Pair&&>::value>::type>
iterator
insert(_Pair&& __x)
{ return iterator(_Base::insert(std::forward<_Pair>(__x))); }
@@ -209,8 +209,8 @@ namespace __profile
#ifdef __GXX_EXPERIMENTAL_CXX0X__
template<typename _Pair, typename = typename
- std::enable_if<std::is_convertible<_Pair,
- value_type>::value>::type>
+ std::enable_if<std::is_constructible<value_type,
+ _Pair&&>::value>::type>
iterator
insert(const_iterator __position, _Pair&& __x)
{ return iterator(_Base::insert(__position,
diff --git a/libstdc++-v3/include/profile/unordered_map b/libstdc++-v3/include/profile/unordered_map
index 36f34e0a105..266e804fe36 100644
--- a/libstdc++-v3/include/profile/unordered_map
+++ b/libstdc++-v3/include/profile/unordered_map
@@ -1,6 +1,6 @@
// Profiling unordered_map/unordered_multimap implementation -*- C++ -*-
-// Copyright (C) 2009, 2010, 2011 Free Software Foundation, Inc.
+// Copyright (C) 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -214,8 +214,8 @@ namespace __profile
}
template<typename _Pair, typename = typename
- std::enable_if<std::is_convertible<_Pair,
- value_type>::value>::type>
+ std::enable_if<std::is_constructible<value_type,
+ _Pair&&>::value>::type>
std::pair<iterator, bool>
insert(_Pair&& __obj)
{
@@ -227,8 +227,8 @@ namespace __profile
}
template<typename _Pair, typename = typename
- std::enable_if<std::is_convertible<_Pair,
- value_type>::value>::type>
+ std::enable_if<std::is_constructible<value_type,
+ _Pair&&>::value>::type>
iterator
insert(const_iterator __iter, _Pair&& __v)
{
@@ -503,8 +503,8 @@ namespace __profile
}
template<typename _Pair, typename = typename
- std::enable_if<std::is_convertible<_Pair,
- value_type>::value>::type>
+ std::enable_if<std::is_constructible<value_type,
+ _Pair&&>::value>::type>
iterator
insert(_Pair&& __obj)
{
@@ -515,8 +515,8 @@ namespace __profile
}
template<typename _Pair, typename = typename
- std::enable_if<std::is_convertible<_Pair,
- value_type>::value>::type>
+ std::enable_if<std::is_constructible<value_type,
+ _Pair&&>::value>::type>
iterator
insert(const_iterator __iter, _Pair&& __v)
{
OpenPOWER on IntegriCloud