11. string(p471)
string::npos
It equals to the maximum value representable by the type size_type.
The exact meaning depends on context, but it is generally used
either as end of string indicator by the functions that expect a string index
or as the error indicator by the functions that return a string index.
note:
Although the definition uses -1, size_type is an unsigned integer type,
and the value of npos is the largest positive value it could hold,
due to signed-to-unsigned implicit conversion.
This is a portable way to specify the largest value of any.