Форум программистов, компьютерный форум, киберфорум
C/C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
82 / 2 / 0
Регистрация: 10.02.2024
Сообщений: 165

С++20 и модули .cppm

07.06.2025, 11:09. Показов 2502. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет.

Узнал недавно о существовании модулей .cppm в стандарте с++20 и решил попробовать использовать, чтобы избавиться от неудобной необходимости разделять код на файлы заголовочные .h и реализации .cpp.

Но что-то все никак не могу это сделать.

Основная рабочая машина это мак, с CLang версии 13. Кака я понял она еще не поддреживает модули, и обновить (как положено) нет возможности - мак старый.

В итоге решил просто компилировать все на локальной raspberry 3B+ т.к. linux более гибкий чем macos и я точно смогу на него установить версию компилятора, которая будет поддерживать .cppm модули.

Установил чистую linux (OS: Debian GNU/Linux 12 (bookworm) aarch64) на малинку, версия gcc - 12. Загуглили - вроде должна поддреживать современные модули c++. Но нет, gpt пришел к выводу (из ответов консоли при компиляции), что это спецефическая версия gcc для debian, которая не пооддерживает .cppm.

Обновил gcc до версии 13, которая точно должна поддерживать cppm. Но и она их не поддерживает (выводы gpt).

В итоге я уже просто не знаю, может вообще на данный момент cppm еще не поддерживается нигде?

Вопрос в общем то такой: Кто-нибудь сейчас использует файлы .cppm? Если да, то с каким компилятором, какой версии и на какой ОС?
(Код и cmake файлы пока не привожу с gpt испробовали очень много вариантов, я уверен, хоть один должен был быть правильным. Вопрос не в том где у меня ошибка, а пока именно хочу узнать на чем получилось скомпилировать cppm у других людей. )

Так же побочный вопрос, может кто знает другие способы, чтобы не нужно было для самописных модулей и бибилиотек разделять программу на файлы заголовочные и реализации?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.06.2025, 11:09
Ответы с готовыми решениями:

Переменные модального Переменные модального диалога
Есть два диалога, главное окно и модальный диалог(DoModal) т.е второе окно. :)) Вводим строку в...

Подключение дополнительных модулей и работа с функциями из этих модулей
Опять с вопросами после частично прочитанной книги "C++ Для Чайников". ) Сейчас пытаюсь понять как...

Произведение элементов массива, расположенных между максимальным по модулю и минимальным по модулю элементами
Всем привет, есть массив заполненный рандомными числами, нужно найти произведение элементов...

2
Заблокирован
07.06.2025, 13:02
Я пробовал на "зуб" модули без всяких *.cppm.
Вообще не понимаю о чем вы.

Цитата Сообщение от Elesh_Makfa Посмотреть сообщение
необходимости разделять код на файлы
И вы думаете что модули созданы для этого?

Это лишь один момент, который зачастую и не нужен.

Теперь мы можем поместить все в один файл и открыть внешнему миру только то, что мы явно помечаем как экспортируемое. Это может быть полезно в некоторых случаях, когда разделение файлов необходимо только для ускорения компиляции и не способствует пониманию кода. Стоит отметить, что разделение файла интерфейса / реализации по-прежнему возможно с помощью модулей.
Добавлено через 7 минут
C++ Supports
0
45 / 37 / 10
Регистрация: 25.02.2025
Сообщений: 84
08.06.2025, 18:20
Лучший ответ Сообщение было отмечено Elesh_Makfa как решение

Решение

Согласно cppreference, в полной степени поддержки c++-модулей нет ни у одного компилятора https://cppreference.com/w/cpp/20.html

А нет, потому что это никому не нужно, эти c++-модули идут вразрез с натурой языка С++. С++-модули были добавлены в язык только из маркетинговых соображений.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.06.2025, 18:20
Помогаю со студенческими работами здесь

Одномерный массив ( вычислить произведение элементов массива, расположенных между максимальным по модулю и минимальным по модулю элементами)
Необходимо вычислить произведение элементов массива, расположенных между максимальным по модулю и...

Найти произведение элементов массива, расположенных между максимальным по модулю и минимальным по модулю элементами
Дан одномерный массив, состоящий из N вещественных элементов. Найти произведение элементов массива,...

Найти произведение элементов массива, расположенных между максимальным по модулю и минимальным по модулю элементами
Дан одномерный массив, состоящий из N вещественных элементов. Найти произведение элементов массива,...

Найти произведение элементов массива, расположенных между максимальным по модулю и минимальным по модулю элементами
Дан одномерный массив, состоящий из N вещественных элементов. Найти произведение элементов массива,...

Программа на C++, которая переводит цветовую модель RGB в модель HSV
Всем привет! Я - начинающий программист. Мне нужна ваша помощь. Мне нужно сделать программу на C++,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru