хедер юниты должны быть, в смаке врублено всё с модулями, а import <iosteam> всё равно фейлится. Кто-то встречал такое?
Это все прекрасно. А cmake вам умеет в модули то? Может там какие хитрые флажки нужны?
CMake не умеет хедер юниты из-за огромного оверхеда на сканирование. Для стандартной библиотеки все основые вендоры договорилисть бекпортировать import std; из c++23 в качестве расширения в c++20. Так же, CMake 3.28 (еще не вышел) может в модули без костылей
А CMake-у нужно про std-шные модули что знать разве? Да и вообще про какие-то? Разве там не должно быть как с заглавными: компилятору виднее, что по зависимостям, и потому он генерирует .d файл для каждого исходника (gcc так делает, например)
ну надо знать где модуль находится)
Компилятор знает. По крайней мере системные. А остальные подаёт пользователь как зависимости (как сейчас подают include path's). Или вы про то, что CMake будет сам извлекать из библиотек имена моделей и подавать пути для них через флаги при кросс-зависимостях? Если да, то, повторюсь, системные компилятор знает лучше. А для пользовательских разве не хватит обычного include path?
а симейк?
А зачем ему это нужно?
чтобы скомпилировать модуль
Ага, "Давай как раньше!" - zip-архив и батник для сборки!
Ладно, видимо мне сначала нужно руками пособирать модули через чистый cli/make, чтобы понять проблему. Спасибо за попытки объяснить
Понял. Насчёт стдшных модулей - решилось флажками для компилятора - /experimental:modules и /c++latest
Обсуждают сегодня