#include <string>
using namespace std;
string&
string_handler( string& str )
{
str += "a";
return str;
}
int _tmain(int argc, _TCHAR* argv[])
{
string a;
a = string_handler( a );
string b = string_handler( b );
return 0;
}
второй вызов string_handler приводит к непредсказуемым последствиям, при чем причина этого видна невооруженным глазом. Тем не менее, VC8.0 компилирует при w4 без всяких предупреждений. Собственно вопрос: тут все чисто с точки зрения С++ и компилятор и не должен отслеживать подобные косяки в коде?