Здравствуйте, Marty, Вы писали:
M>·>Неясно как такое понимание согласуется с фактом: "В Rust есть интерполяция, но нет рефлексии.
M>Потому что рефлексия в каком-то виде есть, вероятно, сильно ограниченная. Без рефлексии (возможности программы к доступу к информации о собственной структуре) не очень представляю, как можно обратиться к локальным переменным.
Ну так разберись как макросы работают. И почему они называются макросами, а не рефлексией.
Это в каком-то смысле сишный препроцессор, но только сделанный по-человечески. Называть сишний препроцессор рефлексией у тебя наглости не хватит, надеюсь.
M>·>В Java есть рефлексия, но нет интерполяции."
M>Если есть рефлексия, то можно написать интерполяцию.
Нельзя.
M>·>Ты наверное путаешь рефлексию с метапрограммированием.
M>Может и путаю.
Не сомневайся. Метапрограммирование — это очень общий термин. В плюсах то что ты назвал метапрограммированием, это ещё один частный случай:
https://en.wikipedia.org/wiki/Template_metaprogramming
M>Но ты же мне покажешь, как на плюсах при помощи метапрограммирования написать интерполяцию?
Только после того, как ты мне покажешь как в java через рефлексию написать интерполяцию.
M>Я никогда не писал на раст, и конечно, ничего тебе не напишу. Даже если в расте нельзя получить имя функции, это говорит только об ограниченных возможностях рефлексии, а не о полном её отсутствии
Нет, это говорит лишь о том, что ты плохо разбираешься в терминологии.