ВходНаше всё Теги codebook PARTS Поиск Опросы Закон Пятница
1 июля
1164746 Топик полностью
RxTx (15.01.2022 00:22, просмотров: 146) ответил VladislavS. на С++ позволяет больше информации об объекте использовать на этапе компиляции. Он позволяет, но не обязывает писать программы для компилятора. Хочу показать простой пример, который можно запросто реализовать на препроцессоре.
Касаемо последней фразы - можно поспопорить. Напоминаю собравшимся что термин "метапрограммирование" можно понимать как препроцессирование программ. Или что то же самое, программной манипуляцией фрагментами других программ. (Если этим способен заниматься сам язык над собой же, то это называется рефлексией). Представим, что препроцессированием, оно же метапрограммированием занимается какой-то специально созданный язык и соответственно, существует отдельная программа, 

собирающая итоговую программу из частей исходной программы. Важным условием является что метапрограмма (попросту говоря - язык препроцессора) владеет ВСЕЙ информацией о подопечной программе. В чем же заключается идиотизм, если мы разделяем метапрограмму и основную программу, надо которой идет манипуляция? Просматривается первый очевидный плюс - метапрограммы можно переиспользовать. Второй - изоляция метапрограмм, их может контролировать (иметь доступ) другой человек или другое, более совершенное средство-утилита, а может быть (в каких-то фантастических случаях и операционная система) или они могут быть абстрактным утвержденным набором. Это я умалчиваю о логическом разделении концепций и обязанностей, что свойственно для инженерии.

Русское метафизическое подполье