beldmit: (Программизм)
Dmitry Belyavskiy ([personal profile] beldmit) wrote2005-01-25 11:01 pm

Программистское

Вчера попробовали протестировать приложение, которое писал по крайней мере полтора месяца прошлого года. Под всеми платформами, которые поддерживаем. В DJGPP нашел глюк в реализации STL: попытка вызвать конструктор std::string(NULL) приводит к выбрасыванию исключения.

Устав, вечером не читал, а сел играть в Palm'овый Quest of the Hero. Благо нашел совершенно изумительную карту. После 65535 опыт персонажа обнулился. Требуемая для достижения уровня цифра осталась прежней - 67200. Вот теперь думаю, как удалось достичь такого результата...

[identity profile] dottedmag.livejournal.com 2005-01-26 05:16 am (UTC)(link)
Стандарт C++, пункт 21.3.1, строфа 9 говорит, что std::string(NULL) есть Undefined Behavior.

[identity profile] beldmit.livejournal.com 2005-01-26 07:53 am (UTC)(link)
Век живи - век учись...
Интересно, почему так.

[identity profile] dottedmag.livejournal.com 2005-01-26 08:01 am (UTC)(link)
Потому что NULL не является NULL-terminated string, и поэтому std::basic_string из него конструировать не стоит.