модули теперь для ++20 ?
От: reversecode google
Дата: 11.08.23 20:53
Оценка:
тут народ на лоре нюз притянул
типа разрабы компилей провосгласили поход на модули
https://github.com/microsoft/STL/issues/3945

что сие значит я так и не понял
т.е. они собираются сделать модули в комилях еще до появления С++23 или чего?

в студии они их и так еще с 2019 добавили
а в гцц с клангом вообще не наблюдаются

но приэтом нюс в начале толкнули мс-овцы
Отредактировано 11.08.2023 21:08 reversecode . Предыдущая версия .
Re: модули теперь для ++20 ?
От: so5team https://stiffstream.com
Дата: 12.08.23 06:13
Оценка:
Здравствуйте, reversecode, Вы писали:

R>тут народ на лоре нюз притянул

R>типа разрабы компилей провосгласили поход на модули
R>https://github.com/microsoft/STL/issues/3945

R>что сие значит я так и не понял

R>т.е. они собираются сделать модули в комилях еще до появления С++23 или чего?

Как я понимаю (т.е. за абсолютную достоверность не ручаюсь), в C++20 завезли модули, но не определили модули для стандартной библиотеки.
Т.е. в C++20 нельзя написать:
import std;

т.к. в языке C++20 нет такого модуля.

Модули std и std.compat определили в стандарте C++23. Соответственно, в рамках С++23 можно сделать import std;, но не в рамках C++20.
https://learn.microsoft.com/en-us/cpp/cpp/tutorial-import-stl-named-module

Теперь же, судя по новости, большая тройка компиляторов собирается разрешить применять import std; даже в рамках C++20.
Re: модули теперь для ++20 ?
От: Sm0ke Россия ksi
Дата: 12.08.23 17:59
Оценка:
Поддержка модулей в языке начинается с 20-го стандарта.
Можно писать свои модули (расширение файла .ixx требование компилятора msvc)

// my_lib.ixx
export module my_lib;


// main.cpp
import my_lib;


Также можно подключать заголовочные файлы стандартной библиотеки (или любой другой) как модули.

// main.cpp
import <vector>;


Это всё вышенаписанное уже в 20-м стандарте.

А import std; — это что, Подключить всю STL как один модуль? Удобно конечно одной строчкой, да.
Но сколько памяти будет кушать при этом компилятор? Не замедлит ли это его работу?
Не, ну может это и не проблема, и всё будет в порядке)

p.s: Я пробовал использовать модули с компиляторами gcc и clang — это был ад прописывания командных строчек. В vs community 2022 проще — оно как‑бы само умеет.
Отредактировано 12.08.2023 18:07 Sm0ke . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.