re PR c++/64422 (basic_string::erase is unresloved)
2015-01-02 Bernd Edlinger <bernd.edlinger@hotmail.de> PR libstdc++/64422 * src/c++98/misc-inst.cc (string::erase): Add missing overloads. (string::insert): Likewise. (string::replace): Likewise. (wstring::erase): Likewise. (wstring::insert): Likewise. (wstring::replace): Likewise. * testsuite/21_strings/basic_string/modifiers/64422.cc: New testcase. From-SVN: r219149
This commit is contained in:
parent
09de7c2578
commit
e4dd5b691d
|
@ -1,3 +1,14 @@
|
|||
2015-01-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
|
||||
|
||||
PR libstdc++/64422
|
||||
* src/c++98/misc-inst.cc (string::erase): Add missing overloads.
|
||||
(string::insert): Likewise.
|
||||
(string::replace): Likewise.
|
||||
(wstring::erase): Likewise.
|
||||
(wstring::insert): Likewise.
|
||||
(wstring::replace): Likewise.
|
||||
* testsuite/21_strings/basic_string/modifiers/64422.cc: New testcase.
|
||||
|
||||
2015-01-02 Jonathan Wakely <jwakely@redhat.com>
|
||||
|
||||
PR libstdc++/64468
|
||||
|
|
|
@ -68,20 +68,36 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
|||
// C++98 members that are not instantiated by src/c++11/string-inst.cc
|
||||
// because they changed in C++11 to take const_iterator parameters.
|
||||
template string::iterator string::erase(iterator);
|
||||
template string::iterator string::erase(iterator, iterator);
|
||||
template void string::insert(iterator, size_type, char);
|
||||
template void string::insert(iterator, iterator, iterator);
|
||||
template string::iterator string::insert(iterator, char);
|
||||
template string& string::replace(iterator, iterator, const string&);
|
||||
template string&
|
||||
string::replace(iterator, iterator, const char*, size_type);
|
||||
template string& string::replace(iterator, iterator, const char*);
|
||||
template string& string::replace(iterator, iterator, size_type, char);
|
||||
template string& string::replace(iterator, iterator, char*, char*);
|
||||
template string&
|
||||
string::replace(iterator, iterator, const char*, const char*);
|
||||
template string& string::replace(iterator, iterator, iterator, iterator);
|
||||
template string&
|
||||
string::replace(iterator, iterator, const_iterator, const_iterator);
|
||||
|
||||
#ifdef _GLIBCXX_USE_WCHAR_T
|
||||
template wstring::iterator wstring::erase(iterator);
|
||||
template wstring::iterator wstring::erase(iterator, iterator);
|
||||
template void wstring::insert(iterator, size_type, wchar_t);
|
||||
template void wstring::insert(iterator, iterator, iterator);
|
||||
template wstring::iterator wstring::insert(iterator, wchar_t);
|
||||
template wstring& wstring::replace(iterator, iterator, const wstring&);
|
||||
template wstring&
|
||||
wstring::replace(iterator, iterator, const wchar_t*, size_type);
|
||||
template wstring& wstring::replace(iterator, iterator, const wchar_t*);
|
||||
template wstring& wstring::replace(iterator, iterator, size_type, wchar_t);
|
||||
template wstring& wstring::replace(iterator, iterator, wchar_t*, wchar_t*);
|
||||
template wstring&
|
||||
wstring::replace(iterator, iterator, const wchar_t*, const wchar_t*);
|
||||
template wstring& wstring::replace(iterator, iterator, iterator, iterator);
|
||||
template wstring&
|
||||
wstring::replace(iterator, iterator, const_iterator, const_iterator);
|
||||
|
|
|
@ -0,0 +1,49 @@
|
|||
// 2015-01-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
|
||||
|
||||
// Copyright (C) 2005-2015 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/>.
|
||||
|
||||
/* { dg-do link } */
|
||||
/* { dg-options "-O0" } */
|
||||
|
||||
#include <string>
|
||||
|
||||
int
|
||||
main ()
|
||||
{
|
||||
std::string x;
|
||||
x.insert (x.begin (), 10, 'x');
|
||||
const char test[] = "test";
|
||||
x.replace (x.begin (), x.end (), test, 4);
|
||||
x.replace (x.begin (), x.end (), test);
|
||||
char best[] = "best";
|
||||
x.replace (x.begin (), x.end (), best, best + 4);
|
||||
x.replace (x.begin (), x.end (), x);
|
||||
x.erase (x.begin (), x.end ());
|
||||
#ifdef _GLIBCXX_USE_WCHAR_T
|
||||
std::wstring w;
|
||||
w.insert (w.begin (), 10, L'x');
|
||||
const wchar_t west[] = L"west";
|
||||
w.replace (w.begin (), w.end (), west, 4);
|
||||
w.replace (w.begin (), w.end (), west);
|
||||
wchar_t rest[] = L"rest";
|
||||
w.replace (w.begin (), w.end (), rest, rest + 4);
|
||||
w.replace (w.begin (), w.end (), w);
|
||||
w.erase (w.begin (), w.end ());
|
||||
#endif
|
||||
return 0;
|
||||
}
|
Loading…
Reference in New Issue