Hello! I'm looking at the 2003 standard in section 22.214.171.124 on
basic_string::find. The first method discussed there allows one to
search a string for another string. It says that it returns a value,
xpos, such that
at(xpos + I) == str.at(I) for all elements I of the string
controlled by str.
In this situation 'str' is the string given as an argument to find.
However, in the "Notes" section the standard says "Uses traits::eq()".
The use of traits::eq() makes sense. Otherwise, for example, building
case insensitive strings by providing alternate traits wouldn't work as
expected. However, shouldn't the earlier condition really be
traits::eq( at(xpos + I), str.at(I) ) for all elements I of the
string controlled by str.
There seems to be a contradition here. The method is supposed to use
traits::eq() yet it returns a value based on applications of operator==.
Is this a standard bug or am I misunderstanding something?
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]