Issue Details (XML | Word | Printable)

Key: STDCXX-632
Type: Bug Bug
Status: Reopened Reopened
Priority: Minor Minor
Assignee: Unassigned
Reporter: Farid Zaripov
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
C++ Standard Library

std::string::insert (iterator, InputIterator, InputIterator) inserting self incorrect

Created: 01/Nov/07 06:22 PM   Updated: 11/Jul/09 12:06 AM
Return to search
Component/s: 21. Strings
Affects Version/s: 4.1.2, 4.1.3, 4.1.4, 4.2.0
Fix Version/s: 4.3.0

Time Tracking:
Not Specified

Environment: All
Issue Links:
Dependants
 
dependent
 

Severity: Incorrect Behavior


 Description  « Hide
The 21.string.insert.cpp test has been failing a number of assertions for self-referential test cases that exercise the ability to insert a substring of a string into itself using the insert(iterator, InputIterator, InputIterator) member template specialization for InputIterator being an actual Input Iterator. The program below reproduces the problem in a small isolated test case.

#include <cassert>
#include <string>

int main ()
{
std::string s ("abc");

typedef const unsigned char UChar;
s.insert (s.begin (), (UChar*)&s [1], (UChar*)&s [2]);

assert ("babc" == s);
}



 All   Comments   Work Log   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
Farid Zaripov added a comment - 01/Nov/07 06:22 PM
Since string::insert() is implemented in terms of replace() resolving STDCXX-170 will also resolve this issue.

Farid Zaripov added a comment - 22/Feb/08 05:42 PM
Fixed in STDCXX-170.

Will be closed after adding the regression test for the issue.


Farid Zaripov added a comment - 17/Mar/08 02:32 PM
The STDCXX-170 issue is reverted and deferred to 4.3 release.
Deferring this issue too.

Farid Zaripov added a comment - 17/Mar/08 04:16 PM
The regression test added in trunk thus: http://svn.apache.org/viewvc?rev=637959&view=rev