?

Log in

No account? Create an account

Эмуляция ключевого слова static из D на макросах - Excelsior

Aug. 28th, 2013

02:10 pm - Эмуляция ключевого слова static из D на макросах

Previous Entry Share Next Entry

Comments:

[User Picture]
From:xeno_by
Date:August 29th, 2013 05:33 am (UTC)
(Link)
1) Тут интересно, что схлопывание констант определяется не definition-site аннотацией, а управляется на use-site. Соответственно, становится возможным шарить функции между компайл-таймом и рантаймом. Также, класс функций, поддерживаемых дишечкой в этом плане, гораздо шире, чем в плюсах.

2) Есть мелочи вроде рассинхронизации со скаловским парсером (например, в новых версиях) или факта того, что ct ресолвится не как честный идентификатор из какого-то модуля, а просто как что-то по имени ct. Но самое главное тут в том, что замена ct(...) на ??? может сделать программу некомпилируемой.
(Reply) (Parent) (Thread)
From:Valentin Budaev
Date:August 29th, 2013 05:22 pm (UTC)
(Link)
У call-site есть свои плюсы - за счет того, что при определении такой static функции мы в явном виде работает с компайл-тайм окружением, потенциально можно разрешить сайд-эффекты и ничего не будет ломаться.
(Reply) (Parent) (Thread)