// 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);
--- /dev/null
+// 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;
+}