Toby <tjdonald...@gmail.com> writes:

> It seems that string's find_last_not_of method isn't returning
> string::npos:
>
> void test() {
>   string s = "  ";
>   int i = s.find_last_not_of(' ');
>   cout << "i = " << i << endl                       // prints -1
>        << "string::npos = " << string::npos
>        << endl;
> }
>
> On g++ (Ubuntu 4.3.2-1ubuntu12) 4.3. I get this output:
>
>   i = -1
>   string::npos = 4294967295
>
> Is this a bug? Or am I mis-reading the documentation?

Neither.

std::string::npos is of type std::string::size_type (which is an
unsigned type). Assigning this value to a signed type that isn't
sufficiently wide to hold it is asking for trouble.

What do you get from

void test()
{
  string s = "  ";
  cout << "s.find_last_not_of(' ') = " << s.find_last_not_of(' ') << endl
       << "string::npos = " << string::npos << endl;
}

?
_______________________________________________
help-gplusplus mailing list
help-gplusplus@gnu.org
http://lists.gnu.org/mailman/listinfo/help-gplusplus

Reply via email to