История изменений
Исправление xaizek, (текущая версия) :
Макросы извне модулей игнорируются кроме тех, которые в специальном белом списке да и те берутся только из командной строки (т.е. #define
перед #include
полностью игнорируются). В итоге легко получить модуль для одних параметров, а приложение для других. Но из модулей макросы могут экспортироваться. Хотя внутренние правила их согласования там непростые.
С шаблонами проблем нет. Но может тут путаница с тем, что такое эти «модули», они всего лишь сериализованный AST набора заголовков и они не предназначены для распространения чего-то вроде пакетов. Модули создаются локально и не покидают систему так как намертво завязаны на версию компилятора (и конкретные опции компиляции). По факту это кеш для фронтенда.
Исправление xaizek, :
Макросы извне модулей игнорируются кроме тех, которые в специальном белом списке да и те берутся только из командной строки (т.е. #define
перед #include
полностью игнорируются). В итоге легко получить модуль для одних параметров, а приложение для других. Но из модулей макросы могут экспортироваться. Хотя внутренние правила их согласования там непростые.
С шаблонами проблем нет. Но может тут путаница с тем, что такое эти «модули», они всего лишь сериализованный AST набора заголовков и не предназначены для распространения чего-то вроде пакетов. Модули создаются локально и не покидают систему так как намертво завязаны на версию компилятора (и конкретные опции компиляции). По факту это кеш для фронтенда.
Исправление xaizek, :
Макросы извне модулей игнорируются кроме тех, которые в специальном белом списке да и те берутся только из командной строки (т.е. #define
перед #include
полностью игнорируются). В итоге легко получить модуль для одних параметров, а приложение для других. Но из модулей макросы могут экспортироваться. Хотя внутренние правила их согласования там непростые.
С шаблонами проблем нет. Но может тут путаница с тем, что такое эти «модули», они всего лишь сериализованный AST набора заголовков и не предназначены для распространения чего-то вроде пакетов. Модули создаются локально и не покидают систему так как намертно завязаны на версию компилятора (и конкретные опции компиляции). По факту это кеш для фронтенда.
Исходная версия xaizek, :
Макросы извне модулей игнорируются кроме тех, которые в специальном белом списке да и те берутся только из командной строки (т.е. #define
перед #include
полностью игнорируются). В итоге легко получить модуль для одних параметров, а приложение для других.
С шаблонами проблем нет. Но может тут путаница с тем, что такое эти «модули», они всего лишь сериализованный AST набора заголовков и не предназначены для распространения чего-то вроде пакетов. Модули создаются локально и не покидают систему так как намертно завязаны на версию компилятора (и конкретные опции компиляции). По факту это кеш для фронтенда.