Первый альфа релиз ideal-couscous - библиотека(header only) для с++17 реализует статичную рефлексию (с ограничениями). Изменения после последней публикации:
- Разбил хедеры и упорядочил их по категориям (метапрограммирование(metautils), информация о классах(info), функции рефлексии(utils)).
- Переработал процесс сбора информации о рефлексии. Если раньше для каждого типа (объектные методы, статичные методы, переменные, и.т.д.) был свой кортеж информации и имен, и были свои функции работы с ними, то теперь это все унифицировано в два кортежа. Добавлены генераторы индексов, которые теперь отдают индекса элементов(например: индексы всех переменных), что позволило реализовать систему независимых плагинов, где теперь можно писать свою логику обработки информации тех или иных данных.
- Добавлена doxygen документация (пока что просто пояснения по каждой функции или структуре/объекта)
- Так как любая ошибка в вызове функций рефлексии, практически всегда генерировала адовую простыню ошибок (бывало по 200 строк(шаблоны, они такие) ), то во всех функций в пространстве utils теперь проводится статичные проверки на правильность входных данных (класс зарефлексирован, проверки выхода за границу, и.т.д.) и возвращается boost::hana::optional с данными или без (в будущем я, наверно, добавлю возможность отключения большинства проверок)
- Добавлена возможность вынесения метаинформации за предел класса (OUT_METAINFO)
- Добавлены туториалы где показываются как работает библиотека (расположена в examples/tutorial)
- Изменил лицензию с GPLv3 на Apache 2.0
Вроде на этом все. В основном релиз был связан с готовностью минимально необходимых вещей для интеграции и уже практического использования в основном проекте.