Append int to std::string

Viewed 25941

I tried two different ways to append an int to a std::string, and to my surprise, I got different results:

#include <string>

int main()
{
    std::string s;
    s += 2;     // compiles correctly
    s = s + 2;  // compiler error

    return 0;
}

Why does it compile and work correctly when I use the += operator, but fail when I use the + operator?

I don't think the question is like How to concatenate a std::string and an int?

In that question,no answer uses += operator.And the difference between += and + operator of std::string is the key to solve my doubt.

Frankly,the question is a good example for explaining why c++ is so difficult to master.

4 Answers
Related