Agregar int a std :: string

Intenté dos formas diferentes de agregar unint a unstd::string, y para mi sorpresa, obtuve resultados diferentes:

#include <string>

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

    return 0;
}

¿Por qué se compila y funciona correctamente cuando uso el+= operador, pero falla cuando uso el+ ¿operador?

No creo que la pregunta sea como¿Cómo concatenar un std :: string y un int?

En esa pregunta, ninguna respuesta usa+= operador.Y la diferencia entre+= y+ operador destd::string Es la clave para resolver mi duda.

Francamente, la pregunta es un buen ejemplo para explicar por qué c ++ es tan difícil de dominar.

Respuestas a la pregunta(4)

Su respuesta a la pregunta