Comments 20
export import Bank;
Шизофрения на марше. В чём смысл было менять module на import? Чтобы не делать module зарезервированным словом? В указанном документе не нашёл никакого объяснения.
+9
Я так понял, что это относится к экспортируемым включениям других модулей. Как по мне, смотрится куда более логично.
Если мне нужен приватный «инклюд»
я пишу просто
import Blank;
А если мне его еще и наружу надо отдать тем, кто будет мной пользоваться:
export import Blank;
ИМХО интуитивнее.
Если мне нужен приватный «инклюд»
я пишу просто
import Blank;
А если мне его еще и наружу надо отдать тем, кто будет мной пользоваться:
export import Blank;
ИМХО интуитивнее.
+1
Слово Module уже используется во многих third party как собственное зарезервированное слово и никто не готов переписывать имеющийся код. Чтобы избежать конфликтов приняли решение использовать другой незанятый синтаксис.
0
А появилась ли поддержка модулей со стороны IDE (а не компилятора)? А то модули — это, конечно, круто, но писать без IntelliSense и прочего я и в блокнотике могу.
+1
Я, может, слишком глуп, но для чего вообще нужны модули в C++?
0
Ускорение скорости компиляции в десятки раз.
Сейчас каждый include вставляет текст заголовка в файл после чего он компилируется, и так с каждым файлом. Каждый модуль компилируется единожды, после чего он просто соединяется с вашей частью скомпилированно файла, т.е. примерно «линковка на стероидах»
Сейчас каждый include вставляет текст заголовка в файл после чего он компилируется, и так с каждым файлом. Каждый модуль компилируется единожды, после чего он просто соединяется с вашей частью скомпилированно файла, т.е. примерно «линковка на стероидах»
+3
А со статической линковкой CRT(/MT /MTd) пока не работает?
0
У меня вопрос к тем, кто их уже успел поковырять: как там обстоят дела с параллельной сборкой?
Допустим у меня такие файлы:
foo.cpp
bar.cpp
module.hpp
Модуль используется в обоих foo.cpp и bar.cpp. Соответственно, когда компилятор будет процессить модуль, ему нужно будет где-то сохранить результат. Я правильно понимаю, что до того как для module.hpp будет скомпилено бинарное представление (AST или что там), то нельзя начинать компилить foo или bar? ну а иначе же они могут одновременно попытаться получить/скомпилить данные module.hpp?
upd: кажется, да, понял, для компиляции по крайней мере msvc нужно указывать уже скомпиленные модули
Допустим у меня такие файлы:
foo.cpp
bar.cpp
module.hpp
Модуль используется в обоих foo.cpp и bar.cpp. Соответственно, когда компилятор будет процессить модуль, ему нужно будет где-то сохранить результат. Я правильно понимаю, что до того как для module.hpp будет скомпилено бинарное представление (AST или что там), то нельзя начинать компилить foo или bar? ну а иначе же они могут одновременно попытаться получить/скомпилить данные module.hpp?
upd: кажется, да, понял, для компиляции по крайней мере msvc нужно указывать уже скомпиленные модули
+1
30 лет думали, думали и наконец придумали то, что в pascal/delphi было давным-давно :) браво! верной дорогой. мы делаем проще. сам delphi и используем.
-1
В каждой теме про ц++ найдётся дурачёк который использую <свойЛюбимыйЯзычёк>.
0
export import Bank;
Давайте тогда ещё
import export Bank;
Я понимаю, C++ сложный язык, но почему нельзя сделать хоть тут без шизофрении :(
+2
Sign up to leave a comment.
Использование модулей C++ в Visual Studio 2017