std::string tmp;
tmp +=0;//compile error:ambiguous overload for 'operator+=' (operand types are 'std::__cxx11::string {aka std::__cxx11::basic_string<char>}' and 'int')
tmp +=1;//ok
tmp += '\0';//ok...expected
tmp +=INT_MAX;//ok
tmp +=int(INT_MAX);//still ok...what?
Первый утверждает, что передача целого в качестве аргумента, правильно? Почему другие передают компиляцию? Я тестировал на Visual С++ и g++, и я получил тот же результат выше. Поэтому я считаю, что мне не хватает чего-то определенного по стандарту. Что это?