и в каких случаях его применять?
Это какая та новая муть, с версии 5.1 и далее. Формально этот макрос раскрывается в инклюд CoreTypes.h. По сути он нужен для какой-то оптимизации сборки твоего кода движком. Есть пример в Лире как его правильно использовать.
Ну его добавляют просто и пишут название класса и все,я не пойму просто чё он делает
Я ж тебе написал, что он делает. Ты ожидаешь, что этот макрос еще и за пивом ходит?
Так, для оптимизации,все спасибо) (хочется прям как препод в инсте все подробно рассказал,но да тут я ахерел с такими запросами)
Это ж плюсы, тут много всякого колдунства с хедерами и их включением и так и сяк в разном порядке, для оптимизации скорости сборки. Чтобы понять, как это работает, надо разбираться не только в движке, но еще и в устройстве компиляторов.
Хочу знать всё просто ,я извиняюсь
Легкого чтения на эту тему нет. Никто особо не пишет про это статьи простым понятным языком, иначе я б тебе просто ссылку дал. Если вкратце, то ситуация такая. В плюсах всегда была проблема с временем компиляции. Хедеров бывает много, они все должны подключаться методом простого присоединения содержимого файла. Макросов бывает много, их все тоже надо раскрывать перед компиляцией. Темплейтов бывает много, они инстанциируются методом тупой подстановки их кода в каждый файл. В итоге к моменту начала работы собственно компилятора языка система сборки уже проделала кучу работы и код, подлежащий парсингу и компиляции, распух в разы. Ситуация усугубляется тем, что серьезные игровые движки - это огромные программные системы, одни из самых больших в истории человечества. Далее, ситуация еще усугубляется тем, что Unreal парсит хедеры твоих классов своим дополнительным парсером (написан на C#, является частью системы сборки в даижке) и из всяких макросов типа UE_чегото_там генерит еще кучу дополнительного плюсового кода. Если, не приведи господь, в проекте есть блюпринты, помеченные для нативизации (в 5 версии это убрали), то движок сгенерит еще кучу кода. Итоговое время компиляции даже небольшой игры может быть весьма значительным. Всякие precompiled headers не особо помогают, поскольку множество хедеров меняются по мере разработки игры. Чтобы ускорить компиляцию, разработчики движка колдуют с порядком включения инклюдов, придумывают другие макросы, совершенствуют систему сборки и т.д. Документации на эту тему очень мало. Иногда устройство этой системы сборки разработчики обсуждают с разрабами других движков за пивом вечером после GDC. Доклады открытые иногда читают, но очень редко и только про отдельные аспекты.
Спасибо большое за инфу
Обсуждают сегодня