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 C++ 및 g ++에서 테스트 한 결과 위와 같은 결과가 나타납니다. 그래서 저는 표준에 의해 정의 된 것을 놓친다 고 생각합니다. 이게 뭐야?std :: string + = 연산자는 인수로 0을 전달할 수 없습니다.
'int'는'char'으로 변환 될 것입니다. 그러나'0'에 대해서는'NULL' 또는'int 0'인지 여부를 알기가 어렵습니다. – Praveen