Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как правильно подключить h- файлы?
|
|||
|---|---|---|---|
|
#18+
AlekseySQLSiemarglAlekseySQL, открой для себя Код: plaintext 1. include - текстовая вставка компилятор/линкер дублирование уберут Дублирование то уберут, но мне не в каждом файле даже один раз нужны эти типы данных. Если развивать мой подход, то к каждому файлу по мере роста проекта будет подключена половина стандартной библиотеки + половина библиотеки Qt ... Тебе надо уяснить разницу между объявлением и определением. Также между определением шаблона и его инстанциацией. Также о том, как работает редактор связей (линкер). В общем, все твои страхи -- это просто паранойя невежды. Учи язык. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2018, 00:06 |
|
||
|
Как правильно подключить h- файлы?
|
|||
|---|---|---|---|
|
#18+
AlekseySQLDima Tпропущено... Можно короче Код: plaintext 1. При подобных директивах препроцессор в КАЖДУЮ единицу компиляции включит файлы библиотек только по одному разу. Единицей компиляции в С++ является файл. Другими словами, как я и написал в каждый файл проекта по разу будет подключено куча библиотечных файлов. Ну и что? Шаблонный код например ДАЖЕ КОМПИЛИРОВАТЬСЯ НЕ БУДЕТ, если он не используется реально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2018, 00:10 |
|
||
|
Как правильно подключить h- файлы?
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovWhite OwlЭта прагма не является универсальной для всех компиляторов. Назови два, которые её не поддерживают. Древние версии - не в счёт. Да её уже все поддерживают, но тем не менее в стандарте её нет.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2018, 00:11 |
|
||
|
Как правильно подключить h- файлы?
|
|||
|---|---|---|---|
|
#18+
AlekseySQL... Волнует ... разбухание кода из- за добавление ненужных объявлений во все файлы проекта. Расскажи, что ты подразумеваешь под " разбуханием кода ", дай полное развёрнутое определение. AlekseySQL Из- за этого ощущение, что понижается надежность кода. Вообще полный бред... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2018, 00:14 |
|
||
|
Как правильно подключить h- файлы?
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)AlekseySQL, гугли extern template да его не поддерживает никто уже... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2018, 00:15 |
|
||
|
Как правильно подключить h- файлы?
|
|||
|---|---|---|---|
|
#18+
AlekseySQLkealon(Ruslan) Вы боитесь что если вы в двух cpp-файлах будете использовать, например, std::vector то его код вставится в объектник к каждому cpp в котором он используется, а потом дубликаты не отрежутся линкёром? Да, именно этого я и боюсь:) Не бойся, не вставится. на это есть глобальная оптимизация. "Вставится" (сгенерируется) много кода, когда ты один и тот же шаблон будешь использовать для разных параметров шаблона, например, использование std::vector для char, int, std::string, float, double сгенерирует код шаблона std::vector в пяти экземплярах, но только в объёме используемых методов во всех конкретных случаях. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2018, 00:20 |
|
||
|
Как правильно подключить h- файлы?
|
|||
|---|---|---|---|
|
#18+
AlekseySQLВолнует не скорость компиляции (с которой борятся предкомпилируемые заголовки), а разбухание кода из- за добавление ненужных объявлений во все файлы проекта. Из- за этого ощущение, что понижается надежность кода. Прибрэхиваешь ты слегка. Компилятор добавляет ссылки на символы, которые были необходимы в конкретной единице трансляции и помещает их в итоговый объектный файл, вместе со всеми инстанцированными шаблонными типами и функциями. Когда ты собираешь исполняемый файл, линковщик идёт от точки входа по всем символам транзитивно (рекурсивно), выбирая только необходимые символы, которые будут включены в итоговую сборку, то есть, игнорирует те символы, на которые не было ссылок во время рекурсивного прохода, даже если это были символы из статических библиотек (архивов объектных файлов). ЕМНИП с разделяемыми библиотеками дело обстоит иначе на разных тулчейнах. Никакого раздувания тут не случится, если ты сам не захочешь, например, включить полностью статическую библиотеку в свою сборку опцией линковщика whole archive . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2018, 12:46 |
|
||
|
Как правильно подключить h- файлы?
|
|||
|---|---|---|---|
|
#18+
Аффтар, чем разводить беспокойство на пустом месте, давно бы уже включил генерацию map-файла да и посмотрел какие символы и в каком количестве в него включены. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2018, 12:54 |
|
||
|
Как правильно подключить h- файлы?
|
|||
|---|---|---|---|
|
#18+
MasterZiv, хорошо пробомбил :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2018, 13:41 |
|
||
|
Как правильно подключить h- файлы?
|
|||
|---|---|---|---|
|
#18+
AlekseySQLMasterZiv, хорошо пробомбил :)Это он сгоряча лупанул, не проверив. Проблема действительно есть, на гнусе точно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2018, 23:33 |
|
||
|
Как правильно подключить h- файлы?
|
|||
|---|---|---|---|
|
#18+
простенькая проверка: gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.5) Release & Debug a<>b a=b a=b a<>b a<>b 2 Microsoft Visual C++ 2015 Release a=b a=b a=b a=b a=b 2 Debug a<>b a=b a=b a<>b a<>b 2 С++ Builder 10.2 Update 1 Release & Debug a<>b a=b a=b a<>b a<>b 2 интеловского нету ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2018, 11:07 |
|
||
|
Как правильно подключить h- файлы?
|
|||
|---|---|---|---|
|
#18+
AlekseySQL, Если бы у тебя что-то включалось два раза, компилятор бы выругался, что у тебя два одинаковых определения чего-то. С другой стороны, vector (и остальные контейнеры) - это шаблон, сам по себе он кода не образует. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2018, 18:00 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=39580206&tid=2018003]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
158ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
| others: | 279ms |
| total: | 545ms |

| 0 / 0 |
