Multiple calls on same std::string object

S

Suman

Hello All,

Is the following fragment well defined?

std::string some_str("Hello World");
....
some_str.replace(some_str.find("Wor"), strlen("Wor"), other_str);

Or does the nested call on the same string object invoke UB?

Regards,
Suman
 
A

Alf P. Steinbach

* Suman:
Hello All,

Is the following fragment well defined?

std::string some_str("Hello World");
...
some_str.replace(some_str.find("Wor"), strlen("Wor"), other_str);

Or does the nested call on the same string object invoke UB?

Arguments are evaluated before a function is called.

So, no UB on that account.
 
B

Boris

Hello All,

Is the following fragment well defined?

std::string some_str("Hello World");
...
some_str.replace(some_str.find("Wor"), strlen("Wor"), other_str);

Or does the nested call on the same string object invoke UB?

Why should it? The nested call returns before replace() is called?

Boris
 
S

Suman

Why should it? The nested call returns before replace() is called?

I forgot about the 'argument evaluation before call' part.
Thank you all for your express responses.

Regards,
Suman
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,744
Messages
2,569,482
Members
44,901
Latest member
Noble71S45

Latest Threads

Top