On Jun 29, 5:14 pm, ricec...@gehennom.invalid (Marcus Kwok) wrote:

Is std::string::npos portably able to be incremented?

The obvious answer is that it's a constant, and you can't

increment a constant. But from the rest of your post, I gather

that what you really want to know is whether npos + 1 is

guaranteed to be zero.

Technically, the answer is no. npos is guaranteed to have the

value (size_t)(-1), and size_t is guaranteed to be an unsigned

type, so the value would be guaranteed to be 0, unless integral

promotion occurs. However:

-- I've never heard of an implementation where size_t was

smaller than an unsigned int, so integral promotion won't

occur, and

-- even if integral promotion occurs, if you immediately

reconvert the results back to a size_t, you're guaranteed to

end up with 0.

So in practice, I think you can count on it.

--

James Kanze (Gabi Software) email:

ja*********@gmail.com
Conseils en informatique orientée objet/

Beratung in objektorientierter Datenverarbeitung

9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34