Если вкратце, то это консольная надстройка над Rclone для оффлайновой синхронизации с упором на использование мобильных носителей. Перенос файлов Linux/Windows, множественные пакетные задания, шифрование и пр. в комплекте.
Недостаток макро-подхода — сложность отладки. Это верно даже для более мощного М4 — достаточно вспомнить приснопамятные Auto{conf,make}, что уж там говорить про унылый препроцессор Си и его «тесную» интеграцию с собственно компилятором.
Кроме того, подобные решения плохо масштабируются — очень скоро настает момент, когда сложность макро-кода начинает препятствовать добавлению новой функциональности.
Собственно, в пакете так и делается — пользовательский тип дополняется (опциональными) функциями, выполняющими роль конструктора/конструктора копирования/деструктора. В случае их отсутствия генерируется замещающий код, соответствующий простому типу, передаваемому по значению.
Не думаю, что мир ждет не дождется 100501 языка программирования, полного по Тьюрингу :)
Скорее, требуется аккуратная реализация функциональности, которой трудно или вообще невозможно достичь с использованием штатных средств Си.
Не было. AutoC выделился из другого проекта, в котором активно используется автоматическая генерация; его код писался, скажем так, стихийно, без какой-либо формализации.
Ссылка ведет на посторонний проект.
Для решения проблемы синхронизации/резервного копирования смастерил себе https://github.com/okhlybov/mclone
Если вкратце, то это консольная надстройка над Rclone для оффлайновой синхронизации с упором на использование мобильных носителей. Перенос файлов Linux/Windows, множественные пакетные задания, шифрование и пр. в комплекте.
Кроме того, подобные решения плохо масштабируются — очень скоро настает момент, когда сложность макро-кода начинает препятствовать добавлению новой функциональности.
Скорее, требуется аккуратная реализация функциональности, которой трудно или вообще невозможно достичь с использованием штатных средств Си.
Также есть целая книга по ООП для Си.