Я попробовал два разных способа добавить int
в std::string
, и, к моему удивлению, у меня были разные результаты:
#include <string>
int main()
{
std::string s;
s += 2; // compiles correctly
s = s + 2; // compiler error
return 0;
}
Почему он компилируется и работает правильно, когда я использую оператор +=
, но сбой при использовании оператора +
?
Я не думаю, что вопрос похож на Как объединить std::string и int?
В этом вопросе ни один ответ не использует оператор +=
. И разница между +=
и +
оператора std::string
является ключом к решению моих сомнений.
Откровенно говоря, этот вопрос является хорошим примером для объяснения того, почему С++ настолько сложно освоить.