Обновить
8K+
89
Зенкович Андрей@anz

C++ developer

12
Рейтинг
45
Подписчики
Отправить сообщение
О нет, что вы… Минимум для того чтобы сгенерировать инициализацию типов. Конечно, пришлось повозиться с шаблонами, typedef, макросами и т.д.
В начале, мне это показалось довольно монструозным решением. Как из пушки по воробьям. Своя реализация заняла примерно неделю, а с clang неделю бы только разбирался. Хотя сейчас, видя все проблемы с утилитой кодогенерации, использование clang не кажется плохой идеей.
Есть атрибуты doc.qt.io/qt-5/qobject.html#Q_PROPERTY

Хм, я подумал это что-то вроде properties из C#… Но даже так, для меня это выглядит довольно резко — заворачивать все члены класса в макрос. Такое у меня требование — минимум вмешательства в синтаксис.

Расскажите более конкретно чего не хватает, просто интересно.

Мне нужны свои собственные атрибуты, которые могут нести какую-нибудь информацию. Мне нужен доступ к членам класса: запись и чтение. Мне нужно находить член класса в иерархии объектов по его пути. Для функций мне нужно их название, возвращаемый тип, список аргументов. Мне нужна информация о наследовании.

Почему? Там лицензия LGPL.

Дело даже не в лицензии, а в том, что я не хочу делать так сказать "франкинштейна". Если есть возможность реализовать модуль самому в короткие сроки — я выберу этот путь.
Спасибо за подсказку! В следующих версиях так и сделаю.
Да, Qt-шный moc похож на мое решение. С Qt работал уже давно и беглый обзор их решения мне не понравился по нескольким причинам: нет доступа к членам класса, нет атрибутов, нельзя добавить своего функционала. Для меня просто не хватило тех функций что дает Qt. Еще, мой проект подразумевается коммерческим, а тянуть за собой Qt или его часть — совсем не вариант.
12 ...
8

Информация

В рейтинге
690-й
Откуда
Омск, Омская обл., Россия
Дата рождения
Зарегистрирован
Активность