Как инициализировать std :: string с помощью «»?

У меня возникают проблемы с инициализацией переменной std :: string с использованием "" (т.е. пустой строки). Это вызывает странное поведение в коде, который ранее работал. Неправильно ли следующее утверждение?

std::string operationalReason = "";

Когда я использую следующий код, все работает нормально:

std::string operationalReason;
operationalReason.clear();

Я считаю, что строковые литералы хранятся в отдельной области памяти, которая зависит от компилятора. Может ли проблема, которую я вижу, действительно указывать на повреждение этого хранилища? Если это так, то это будет скрыто при использовании мной функции clear () .

Спасибо.

8
задан Björn Pollex 18 March 2011 в 15:25
поделиться