Недавно набрел на два очень интересных доклада по рефлексии в C++: 1 и 2 .
В первую очередь, очень здорово, что данной задачей всё же занимаются. Возможно, в будущем удастся избавиться от нудного бойлерплейта, который приходится писать в С++, чтобы получить какие-никакие возможности, которые уже давно есть в других языках, например создание объекта по имени или получение списка атрибутов. Понятное дело, что они есть в силу их природы, но всё же. Похожие вещи уже есть в Boost и Qt, но, хотелось, чтобы наконец появился стандартный способ без лишнего кода. Если std::unordered_map и std::any уже в STL, то чем это хуже?
Ещё в процессе просмотра мне показалось, пример с сериализацией плохо раскрывает рефлексию, ибо сериализация сложных структур - слишком многогранная тема. Особенно это плохо выглядит, на мой взгляд, когда сериализацию пытаются представить, как сериализацию именно вложенных структур объектов. В моей практике чаще встречались не подобные древовидные структуры, а, графовые, где рефлексия может быть применена, но писать вручную некоторые вещи все равно приходится.
Комментариев нет:
Отправить комментарий