re PR libstdc++/44708 (Enabling -std=c++0x results in ambiguous function overload in <ext/algorithm> header)

2010-06-29  Paolo Carlini  <paolo.carlini@oracle.com>

	PR libstdc++/44708
	* include/ext/algorithm (copy_n): Qualify __copy_n call with
	__gnu_cxx::
	* testsuite/ext/rope/44708.cc: New.

From-SVN: r161524
This commit is contained in:
Paolo Carlini 2010-06-29 10:03:36 +00:00 committed by Paolo Carlini
parent 5dfebe0a55
commit 6ff7e96435
3 changed files with 40 additions and 2 deletions

View File

@ -1,3 +1,10 @@
2010-06-29 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/44708
* include/ext/algorithm (copy_n): Qualify __copy_n call with
__gnu_cxx::
* testsuite/ext/rope/44708.cc: New.
2010-06-27 Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/regex_compiler.h: Trivial formatting / stylistic fixes.

View File

@ -123,8 +123,8 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
__glibcxx_function_requires(_OutputIteratorConcept<_OutputIterator,
typename iterator_traits<_InputIterator>::value_type>)
return __copy_n(__first, __count, __result,
std::__iterator_category(__first));
return __gnu_cxx::__copy_n(__first, __count, __result,
std::__iterator_category(__first));
}
template<typename _InputIterator1, typename _InputIterator2>

View File

@ -0,0 +1,31 @@
// { dg-options "-std=gnu++0x" }
// { dg-do compile }
// Copyright (C) 2010 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 <iostream>
#include <ext/rope>
using namespace std;
// libstdc++/44708
void test01()
{
__gnu_cxx::crope line("test-test-test");
cout << line.c_str() << endl;
}