f



Question about basic_string::find

Hello! I'm looking at the 2003 standard in section 21.3.6.1 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?

Peter

      [ See http://www.gotw.ca/resources/clcm.htm for info about ]
      [ comp.lang.c++.moderated.    First time posters: Do this! ]
0
Peter
8/23/2004 10:11:44 PM
comp.lang.c++.moderated 10738 articles. 1 followers. allnor (8506) is leader. Post Follow

0 Replies
370 Views

Similar Articles

[PageSpeed] 20

Reply: