[Homeros] Fwd: Ошибки в Voiceman

Michael Pozhidaev msp на altlinux.ru
Вт Сен 20 19:42:06 UTC 2011


Hello, Дмитрий Падучих!

> MP> int знаковый.
>
> Ну и хорошо, что знаковый. При работе с беззнаковыми типами требуется
> быть более аккуратным, потому что он не очень интуитивно ведёт себя
> при

Не-а, далеко не хорошо. если сильно увлекаться знаковыми типами,
компилятор тебя засыпет предупреждениями типа signed/unsigned
comparison. Вот на это я действительно наступал. Избежать этого
невозможно, поскольку в стандартной библиотеке везде наставлены
беззнаковые значения. Размеры строк, списков, индексы символов в строке
- всё беззнаковое. Даже тривиальный strlen(), и тот желает отдавать
результат строго без знака. Для всех таких вещей в C++ заведены типы
size_type, вроде std::string::size_type, std::vector::size_type и пр,
которые определены через size_t. 

> синтезатора речи, он без проблем совместим с printf и подобными ей
> функциями, не требует дополнительного внимания, как беззнаковые типы
> (см. выше). То же самое относится и к ssize_t, плюс, как ты заметил,
> ssize_t очень легко перепутать с size_t.

Дима, его без моей воли повсюду расставили по всей библиотеке классов в
C++. Ты почитай определения std::string, там сплошной size_t (скрытый
под std::string::size_type). Тут личное мнение разработчика давно никто
не спрашивает. Приходится быть конформистом.  

-- 
Michael Pozhidaev. Tomsk, Russia.
Russian info page: http://www.marigostra.ru/


Подробная информация о списке рассылки Homeros