2008-03-28

Unicode

http://www.codinghorror.com/blog/archives/001084.html Я тоже! :-) В своём домашнем С++ проекте я поменял Unicode (а точнее widechar) на UTF-8. Не нарадуюсь. Весь код стал проще. И никаких TCHAR или wchar_t, обычные char. Никаких макросов _T. Разбор текстового файла, который тоже в UTF-8, ускорился на порядок. Разбор файла в Windows-1251 ускорился существенно, раза в 3, поскольку большая часть разделителей - ASCII. Уменьшилось количество отъедаемой памяти. Уменьшился размер кода, поскольку 16-битовые операции в 32-битовом коде требуют специального префикса, а 8-битовые - не требуют. Единственное неудобство, что все вызовы функций Windows делаются через специальные wrapper-ы. Но это даже хорошо. При необходимости будет легче адаптировать код под Linux. Я все обращения к функциям ОС вынес в отдельный namespace. Более того, я include заключил в namespace, чего его авторы, видимо, не ожидали. А вот так! Добро пожаловать за окошко с решёткой! И я не стал объявлять его using. Только явно, Win::CreateFileW.

No comments: