powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / C++ станет таким же удобным, как и Delphi! (о введении поддержке модулей)
25 сообщений из 51, страница 1 из 3
C++ станет таким же удобным, как и Delphi! (о введении поддержке модулей)
    #39062471
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...команда разработчиков компилятора Visual C++ заявила... что в следующем обновлении (Visual Studio 2015 Update 1) в компилятор С++ от Microsoft будет добавлена экспериментальная возможность из нового (ещё не утверждённого) стандарта С++ — поддержка модулей!


...вкратце ...механизм использования компонентов в программах на С++ придумывался где-то лет 35 назад. Его нельзя назвать удобным: если вы хотите создать библиотеку — вам нужно сделать заголовочный файл и распространять с ним либо код, либо скомпилированную версию библиотеки. При этом возникает куча проблем:
- заголовочный файл и библиотека — отдельные файлы, один из них может потеряться, либо они случайно могут рассинхронизироваться;
- заголовочный файл включается в код директивой препроцессора #include, что во-первых, замедляет компиляцию, а во-вторых добавляет влияние всего, что написано в заголовочных файлах друг на друга и на конечный код. Нередки случаи, когда заголовочные файлы нужно включать в определенном порядке или определять некоторые макросы чтобы код нормально собрался.
...
В итоге в инфраструктуре С++ отсутствуют понятия «сборок» или «пакетов» и, в отличии от С# или Python, где установка компонентов тривиальна, в С++ подключение каждой новой библиотеки может нести свои неожиданности. Предлагаемый механизм модулей в С++ призван убрать данную проблему, отказаться от директивы препроцессора #include и ссылаться на компоненты, как на некоторую сущность, состоящую из кода и метаданных, целостную и легко подключаемую. В итоге мы вскоре можем получить существенное ускорение внедрения новых компонентов в проект, появления полноценных менеджеров пакетов, установка новой библиотеки сведется к выполнению одной строки или нескольким кликам мышью.
...


Тынц!

Подробности: https://github.com/isocpp/CppCoreGuidelines/blob/master/talks/Large-Scale-C -With-Modules.pdf

Модератор: Вложение удалено.
...
Рейтинг: 0 / 0
C++ станет таким же удобным, как и Delphi! (о введении поддержке модулей)
    #39062648
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"ZeroMQ", зачем анонимно писать? 18201261

PS скриншот забавный, стол плиткой вымощен?
...
Рейтинг: 0 / 0
C++ станет таким же удобным, как и Delphi! (о введении поддержке модулей)
    #39062670
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...вкратценескольким кликам мышью.
мож не надо?
...
Рейтинг: 0 / 0
C++ станет таким же удобным, как и Delphi! (о введении поддержке модулей)
    #39062680
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил...вкратценескольким кликам мышью.
мож не надо?
Когда у общества нет цветовой дифференциации штанов, то нет цели?
...
Рейтинг: 0 / 0
C++ станет таким же удобным, как и Delphi! (о введении поддержке модулей)
    #39062690
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Примерчики и описание того, что может получиться, можно посмотреть здесь: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4047.pdf
...
...
Рейтинг: 0 / 0
C++ станет таким же удобным, как и Delphi! (о введении поддержке модулей)
    #39062711
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чччД, не пость пожалуйта простыни. Уменьшай хотя-бы или делай спойлер.
...
Рейтинг: 0 / 0
C++ станет таким же удобным, как и Delphi! (о введении поддержке модулей)
    #39062724
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

там же рабочий пример был... :(
...
Рейтинг: 0 / 0
C++ станет таким же удобным, как и Delphi! (о введении поддержке модулей)
    #39062731
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что за эмоции? Ты-же software-инженер а не маленькая девочка. Держи себя в руках
...
Рейтинг: 0 / 0
C++ станет таким же удобным, как и Delphi! (о введении поддержке модулей)
    #39062832
alexy_black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я чего-то не понял из этого pdf - чем это отличается от сейчашнего include? тем что мне не нужно указывать библиотеки при компиляции?
скрыть какие-то фукнции или классы можно сейчас, просто определив их в другом заголовочном файле, не в том, который все подключают и подключать его где нужно у себя в файлах исходников.
...
Рейтинг: 0 / 0
C++ станет таким же удобным, как и Delphi! (о введении поддержке модулей)
    #39062861
BagaBaga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexy_black,
include'ы сейчас обрабатывает препроцессор. Модули обрабатывает компилятор. Модули - способ уйти от заголовочных файлов и связанных с их использованием проблем. Как минимум, ускорит компиляцию, т.к. не придётся каждый раз "парсить" включаемые заголовки. Избавит от стражей включения. Решит проблему порядка включения заголовочных файлов. Ну и позволит лучше управлять области видимости.
...
Рейтинг: 0 / 0
C++ станет таким же удобным, как и Delphi! (о введении поддержке модулей)
    #39062899
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BagaBagaМодули - способ уйти от заголовочных файлов и связанных с их использованием проблем
сколько лет на это потребуется?
...
Рейтинг: 0 / 0
C++ станет таким же удобным, как и Delphi! (о введении поддержке модулей)
    #39062917
alexy_black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BagaBaga,

я сейчас использую pragma once - несколько последних проектов вообще не используют include guard. студия поддрежирвает, гцц поддреживает, кланг поддреживает...

на сколько я понял, с модулями тоже нужно просматривать будет - то есть компилятор должен знать например, что у модуля X интерфейс такой, а вот эта спецификация шаблона запрещена. то есть компилятору нужно будет просмотреть весь тот же заголовочный файл. так же как и при include.

у меня была проблема с рекурсивным включением файлов.. но потом я прочитал что это признак плохого дизайна, и это оказалось действительно так в моем случаи (когда приходится объявлять class foo; из другого header'а). сейчас от этого избавляюсь, дизайн становится лучше. но мне кажется, что модули эту проблему тоже не решат :)

по-моему что реально лучше - так это то, что теперь можно реализовать абстракцию на языке - то есть до этого нужно было эмулировать модули, а сейчас нет - язык прямо поддерживает.
...
Рейтинг: 0 / 0
C++ станет таким же удобным, как и Delphi! (о введении поддержке модулей)
    #39062940
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как-бы не получилось что МС обладает очередным своим диалектом С++
...
Рейтинг: 0 / 0
C++ станет таким же удобным, как и Delphi! (о введении поддержке модулей)
    #39062945
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonКак-бы не получилось что МС обладает очередным своим диалектом С++
это норма (с)
...
Рейтинг: 0 / 0
C++ станет таким же удобным, как и Delphi! (о введении поддержке модулей)
    #39062970
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexy_blackBagaBaga,

я сейчас использую pragma once - несколько последних проектов вообще не используют include guard. студия поддрежирвает, гцц поддреживает, кланг поддреживает...

на сколько я понял, с модулями тоже нужно просматривать будет - то есть компилятор должен знать например, что у модуля X интерфейс такой, а вот эта спецификация шаблона запрещена. то есть компилятору нужно будет просмотреть весь тот же заголовочный файл. так же как и при include.
...

Не нужны будут заголовочные файлы.
Данные об интерфейсе модуля хранятся в отдельной секции объектного файла, созданного при компиляции модуля.
...
Рейтинг: 0 / 0
C++ станет таким же удобным, как и Delphi! (о введении поддержке модулей)
    #39062977
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чччДНе нужны будут заголовочные файлы.
Данные об интерфейсе модуля хранятся в отдельной секции объектного файла, созданного при компиляции модуля.
А смотреть-та как? Константы. Макросы. Сигнатурки. Как смотреть-та?

Hex-редактором? РефлексИей?
...
Рейтинг: 0 / 0
C++ станет таким же удобным, как и Delphi! (о введении поддержке модулей)
    #39062991
ZeroMQ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonчччДНе нужны будут заголовочные файлы.
Данные об интерфейсе модуля хранятся в отдельной секции объектного файла, созданного при компиляции модуля.
А смотреть-та как? Константы. Макросы. Сигнатурки. Как смотреть-та?

Hex-редактором? РефлексИей?

Смотреть - сами исходники.

А данные из скомпилированных модулей нужны сборщику и, возможно, твоей IDE для всякого там автокомплита и браузинга.

Конечно, возможна поставка только скомпиленного модуля без исходника.
Тогда интерфейс будет доступен только компилятору да IDE.
Ну, обрубок модуля может поставляться, для удобства (типа нынешнего .h-файла). Или документация.

Delphi так и живет... :)
...
Рейтинг: 0 / 0
C++ станет таким же удобным, как и Delphi! (о введении поддержке модулей)
    #39063013
ZeroMQ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
C++ станет таким же удобным, как и Delphi! (о введении поддержке модулей)
    #39063017
ZeroMQ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZeroMQ Модули в clang.
Тут можно примерно посмотреть, как все, возможно, будет.
...
Рейтинг: 0 / 0
C++ станет таким же удобным, как и Delphi! (о введении поддержке модулей)
    #39063032
alexy_black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZeroMQ,

неа, там тоже заголовочные файлы остались, все также. просто добавляешь один файл, foo.modulemap - это файл описания модуля. он используется заголовочные файлы, в нем написано что импортировать, что приватно и т.д. вот и все. эта вся байда не будет работать без заголовочных файлов.
...
Рейтинг: 0 / 0
C++ станет таким же удобным, как и Delphi! (о введении поддержке модулей)
    #39063040
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexy_black...
неа, там тоже заголовочные файлы остались, все также. просто добавляешь один файл, foo.modulemap - это файл описания модуля. он используется заголовочные файлы, в нем написано что импортировать, что приватно и т.д. вот и все. эта вся байда не будет работать без заголовочных файлов.

Заголовочные файлы остались, куда ж без старого кода. Но с модулями можно и без них. В описании сказано, что возможны варианты реализации. Что именно будет - станет известно с выходом Upd1.
...
Рейтинг: 0 / 0
C++ станет таким же удобным, как и Delphi! (о введении поддержке модулей)
    #39063166
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonКак-бы не получилось что МС обладает очередным своим диалектом С++как будто сейчас как то по другому дело обстоит )))
...
Рейтинг: 0 / 0
C++ станет таким же удобным, как и Delphi! (о введении поддержке модулей)
    #39063209
prog2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чччД,

пришьем к ... рукав! )))
...
Рейтинг: 0 / 0
C++ станет таким же удобным, как и Delphi! (о введении поддержке модулей)
    #39063243
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
prog2012чччД,

пришьем к ... рукав! )))

Куда мы денемся.
...
Рейтинг: 0 / 0
C++ станет таким же удобным, как и Delphi! (о введении поддержке модулей)
    #39063399
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну всё. Пропал дом! - Воскликнул Филипп Филиппович и всплеснул руками.
...
Рейтинг: 0 / 0
25 сообщений из 51, страница 1 из 3
Форумы / C++ [игнор отключен] [закрыт для гостей] / C++ станет таким же удобным, как и Delphi! (о введении поддержке модулей)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]