This is still a little fuzzy to me. The :: (scope resolution operator) tells me (and compiler) that size_type is within the scope of the string class. Considering:
Code:
string::size_type index = str.find("XXX");
index is a string of size_type, which is big or long enogh to "represent the length of any controlled sequence". Is this the correct interpretation?

and,
"string::npos" in
Code:
if(index < string::npos) cerr<<"No Vin Desil either" << endl;
int i = str.find("ugly hack");
if(i<0) cerr << "No hacks but this one" << endl;
does what?

I would appreciate more explanation and examples.