Question about basic_string::find

  • Follow


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
Reply Peter 8/23/2004 10:11:44 PM


0 Replies
113 Views

(page loaded in 0.322 seconds)

Similiar Articles:













7/30/2012 3:39:53 AM


Reply: