Вести с полей
Выложены обновления IBProvider v5.5.1 и «LCPI OLE DB Services» v1.9.
Предмет гордости — «LCPI OLE DB Services» собирается с нулевым количеством предупреждений 4-го уровня. Четвертого, Карл!
Аналогичный подвиг в отношении IBProvider не осилил. Нужно будет думать. Зато изничтожил все предупреждения третьего уровня.
Из «интересностей» — устранение предупреждений в коде вида:
char* b; char* e; //.... std::fill(b,e,0); //<--- приведение int (0) к char
Заменил 0 на structure::zero — это «волшебный» объект, который возвращает ноль нужного типа. Типа std::nullptr.
std::fill(b,e,structure::zero);
Схожие проблемы есть с -1. Для этого числа в библиотеке есть structure::negative_one.
Еще подчистил иерархию классов исключений в библиотеке — обнаружились какие-то непонятные задумки и «оптимизации» молодости.
В целом, сборка с 4-ым уровнем предупреждений — это очень неплохой способ оценки кода. Рекомендую.
Поскольку сюда заглядывают боги, добавлю, что выпуск был протестирован с Firebird 3.0.5.33139, в который попал отрефакторенный SHA2.