Новый триал IBProvider 3.54.0.29017
Уже дважды прогонял тесты, позволяющий выпустить релиз IBProvider 3.54, но опять решил немного доработать код 🙂
На днях осознал «variadic templates», и не смог не заюзать их для обновления одной штуки, написанной в далеком 2001 году — это конструкция для хранения указателя на метод объекта. Аналог event’ов из Delphi и C++ Builder.
Код радикально сократился и теперь может переваривать методы с любым количеством параметров. Немного расстроило то, что поддержка variadic template появилась только в 2013 студии. Поэтому новый код работает только в сборках vc12xp, vc14xp и vc15. Сборки vc10, vc11xp используют старые конструкции (хотя я их тоже доработал для поддержки rvalue references). В триал включены сборки vc12xp.
Если кому интересно — исходный код обозначенных конструкций можно посмотреть в каталоге «c:\Program Files (x86)\LCPI\IBProvider.3\lib\structure\closure».
Вообще, современные плюсы немного «сдвигают» сознание. Каких-то десять лет назад о такой штуке как «variadic templates» даже и не мечталось.