aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaolo Carlini <paolo.carlini@oracle.com>2011-02-12 21:26:21 +0000
committerPaolo Carlini <paolo@gcc.gnu.org>2011-02-12 21:26:21 +0000
commit60a40f62c855e2cfe008dacf3998982e95c84bc6 (patch)
tree9c506ccdc4ce001a34caea59236d0c71a5cd0fb7
parent8957a0ecb7d3b5c1ecbd4dc0a8911252b0f1cb21 (diff)
downloadgcc-60a40f62c855e2cfe008dacf3998982e95c84bc6.zip
gcc-60a40f62c855e2cfe008dacf3998982e95c84bc6.tar.gz
gcc-60a40f62c855e2cfe008dacf3998982e95c84bc6.tar.bz2
re PR libstdc++/47709 (is_heap(standard iterator) becomes ambiguous in C++0x mode)
2011-02-12 Paolo Carlini <paolo.carlini@oracle.com> PR libstdc++/47709 * include/ext/algorithm (is_heap): In C++0x mode import from namespace std. * testsuite/ext/is_heap/47709.cc: New. From-SVN: r170089
-rw-r--r--libstdc++-v3/ChangeLog7
-rw-r--r--libstdc++-v3/include/ext/algorithm7
-rw-r--r--libstdc++-v3/testsuite/ext/is_heap/47709.cc29
3 files changed, 42 insertions, 1 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index f25b6cf..c67b5e4 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,10 @@
+2011-02-12 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR libstdc++/47709
+ * include/ext/algorithm (is_heap): In C++0x mode import from
+ namespace std.
+ * testsuite/ext/is_heap/47709.cc: New.
+
2011-02-12 Jakub Jelinek <jakub@redhat.com>
Jonathan Wakely <jwakely.gcc@gmail.com>
diff --git a/libstdc++-v3/include/ext/algorithm b/libstdc++-v3/include/ext/algorithm
index bfe454c..368b591 100644
--- a/libstdc++-v3/include/ext/algorithm
+++ b/libstdc++-v3/include/ext/algorithm
@@ -1,6 +1,7 @@
// Algorithm extensions -*- C++ -*-
-// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
+// 2009, 2010, 2011
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -426,6 +427,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
__out_last - __out_first);
}
+#ifdef __GXX_EXPERIMENTAL_CXX0X__
+ using std::is_heap;
+#else
/**
* This is an SGI extension.
* @ingroup SGIextensions
@@ -465,6 +469,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
return std::__is_heap(__first, __comp, __last - __first);
}
+#endif
// is_sorted, a predicated testing whether a range is sorted in
// nondescending order. This is an extension, not part of the C++
diff --git a/libstdc++-v3/testsuite/ext/is_heap/47709.cc b/libstdc++-v3/testsuite/ext/is_heap/47709.cc
new file mode 100644
index 0000000..5eeaf58
--- /dev/null
+++ b/libstdc++-v3/testsuite/ext/is_heap/47709.cc
@@ -0,0 +1,29 @@
+// { dg-do compile }
+// { dg-options "-std=gnu++0x" }
+
+// Copyright (C) 2011 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
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3. If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <ext/algorithm>
+#include <vector>
+
+// libstdc++/47709
+void foo()
+{
+ std::vector<int> v;
+ is_heap(v.begin(), v.end());
+}