b>j)΄!Pԫ&;"kB޶}pSVT(wę!j x;-m@JnQ+պכ7MajfJͱ4jѲ撆RxZMz7vIW/dٞТזcZM~ji ߒsQzԠDW3Den"M+/B:-uIJ7j委9p='mANޭ=/B:-n&nUfqxZM~c Ϲ+,&ᾺܢF[(1*" ϒ"Jԧ<;b" "jܢF[x ,!q қ*]/؝27SMcs"ޭDQ/应ܢF_! :s" 7`F+SVTn"IJnQ/应B 4 wD"IJ׭-`S9DrjiEJ߅gJ应矁[xZM~n"IB؃!'Тѕ+(mIKʭ/|ϐܢF[xZMzG %嬩/c[[ Вести с полей

Вести с полей

Привет всем.

На сайт загружен новый триал IBProvider, сборку которого (3.45.0.26658) планируется довести до релиза.

В новой сборке откорректирована поддержка UTF8. Ранее, UTF8 символ отображался на два UTF16 (WCHAR) символа. Это обеспечивало поддержку всех допустимых символов UTF8, но создавало определенные трудности с определение максимального количества символов в колонке/параметре. Эти трудности начали приносить невыносимые страдания одному из наших последних клиентов, поэтому я решил вернуть отношение один UTF16 символ на один UTF8 символ и добавить свойство инициализации wchars_in_utf8_symbol, которое позволяет вернуться к двум UTF16 символам на один UTF8 символ.

Все остальные изменения в провайдере связанны с реорганизацией и ревизией кода.

Первое. Я изничтожил свои велосипеды (изобретенные в 2000-ом году) вокруг std::vector. И начал использовать этот класс как есть. Бинарники немного увеличились в размерах (максимум на 0.5%), производительность вроде не просела.

Второе. Некоторые внутренние объекты преобразованы из динамических в статические. Для такой махины как IBProvider, такая оптимизация мало на что повлияет. Но тем не менее.

И третье. Я тут начал читать (догреб до середины) «Эффективный и современный C++» Скотта Мейерса. Пришел к выводу, что в настоящий момент просто глупо беспокоиться за совместимость со старыми компиляторами (которые по факту я уже и не использую) и пора уже двигаться вперед. Move-трюки я уже давно начал использовать, хотя и прятал эти конструкции от старых компиляторов. Теперь начал использовать новые штуки (типа emplace_back) из STL. Без всяких условностей. Я рад что это произошло.

Leave a Comment