Вести с полей. C++17

Текущие тестовые сборки IBProvider (v5.14.0.33732) откомпилированы с указанием режима совместимости с C++17.

Пока в коде IBP ничего из C++17 не используется. Но вот STL таки да — уже из C++17.

Хотя нет. Я же «if constexpr» задействовал во встроенном zlib1, чтобы изничтожить часть предупреждений компилятора…

Из вещей, которые уже очень хочется начать использовать в самом IBProvider:

1. Сокращенное определение вложенных пространств имен

namespace ibp::db_client::remote_fb::api::p12{ .... }

вместо

namespace ibp{namespace db_client{namespace remote_fb{namespace api{namespace p12{ .... }}}}}

2. Fold expressions:

//Код из инсталлятора ADO.NET провайдера, который уже переехал на C++17.
template<typename... Args>
void BA_ErrorUtils::Throw__Error
               (HRESULT        const hr,
                BA_Error_SrcID const srcID,
                BA_Error_MsgID const errMsgCode,
                Args&&...            args)
{
 assert(FAILED(hr));

 BA_Error exc(hr,srcID,errMsgCode);

 (exc<<...<<std::forward<Args>(args));

 exc.raise();
}//Throw__Error

Но это все потом.

А пока — v5.14 это тот же v5.13.


Вышеобозначенные сборки (v5.14.0.33732) уже проехали через нагрузочное тестирование (которое сейчас работает как хорошо отрегулированный двигатель — без спотыканий).

Так что, думаю, на этой неделе они уйдут в релиз v5.14.

А может и нет — спешить не буду.

Leave a Comment