
Igor
26.06.2018
08:27:00
#offtop
а каков юзкейс вот этого чуда http://www.standards.ru/doc.aspx?catalogid=iso&classid=-1&search=14882 , при том что "на языке оригинала" оригинал свободно лежит в интернетах?

Никита
26.06.2018
08:28:50
Стандарт же не в свободном доступе, он продается. В свободном доступе последний драфт

Stanislav
26.06.2018
08:30:35

Igor
26.06.2018
08:30:42
https://www.iso.org/standard/68564.html гм, и впрямь
окай, мне почему-то казалось, что я видел отдельные версии стандартов в свободном доступе..

Google

Stanislav
26.06.2018
08:37:03

Igor
26.06.2018
08:38:15
майти сенкс, уже и сам наткнулся)

Antony
26.06.2018
08:50:31

Anatoly
26.06.2018
08:52:19

Antony
26.06.2018
08:52:51
Стенограмма обсуждения второго доклада выложена вот тут https://stdcpp.ru/proposals/e6263404-2b60-49af-87c6-bd9bc1801257

Alexey
26.06.2018
09:59:07
А какое ускорение компиляции дают precompiled headers при первой сборке проекта где не используется шаблонной магии особо?
Какой порядок выигрыша во времени? 10%? В разы? В 10 раз?

Ilia
26.06.2018
10:00:15

Alexey
26.06.2018
10:01:17
Ну, даже если буста нет, и header only либами не баловаться?

Ilia
26.06.2018
10:01:44

Aleksandr
26.06.2018
10:01:50
конкретно у меня в проекте 100к строк без учёта инклудов выигрыш был примерно в 2 раза

Ilia
26.06.2018
10:02:03

Google

Alexey
26.06.2018
10:03:33
Хм. Попробовал cotire на проекте - ускорение в 10 процентов.

Ilia
26.06.2018
10:03:51
Это я не знаю что такое

Alexey
26.06.2018
10:04:11
Ну, понятно, что это cmake с кучей подпроектов.
https://github.com/sakra/cotire

Ilia
26.06.2018
10:06:02

Anatoly
26.06.2018
10:06:28
@I_vlxy_I следует сказать, что выигрыш будет, если проект имеет специально для PCH заголовка структуру. вот так нельзя взять простой проект, который не использовал PCH и получить выигрыш

Alexey
26.06.2018
10:06:52

Anatoly
26.06.2018
10:06:55
А в чем особенность?
например, если я в одной единице трансляции использую map, а в другой set, то я вынужден собрать все используемые заголовочные файлы стандартной библиотеки и поместить в один заголовок типа std.h и сделать его первым include в каждой единице трансляции

Ilia
26.06.2018
10:08:36

Alexey
26.06.2018
10:09:17
Это и для gcc так?

Anatoly
26.06.2018
10:09:46
Это и для gcc так?
посмотри доку по cotire:
set_target_properties(MyExecutable PROPERTIES COTIRE_CXX_PREFIX_HEADER_INIT "stdafx.h")
cotire(MyExecutable)
вот здесь ты указываешь какой файл будет PCH
для gcc не скажу, но для msvc точно это должен быть первый include

Alexey
26.06.2018
10:11:51
Хм. Но ведь из этого вытекает, что в итоге в проекте все будут инклюдить всё, даже если это все и не нужно. По файлу исходников теперь и не скажешь что ему нужно - инклюд то один.

Anatoly
26.06.2018
10:12:20
@I_vlxy_I следует сказать, что выигрыш будет, если проект имеет специально для PCH заголовка структуру. вот так нельзя взять простой проект, который не использовал PCH и получить выигрыш

Ilia
26.06.2018
10:12:24
Это и для gcc так?
Общий принцип организации заголовков такой же, в PCH дожны идти все неизменяемые, внешние заголовки из библиотек и API.
Про первый инклуд -- не знаю в GCC может быть и так.

Alexander
26.06.2018
10:14:00
подозреваю, что тоже должен быть первым

Alexey
26.06.2018
10:14:02

Google

Aleksandr
26.06.2018
10:14:09

Alexander
26.06.2018
10:14:15
иначе может же логика инклуда поменяться, если перед ним что-то есть

Alexey
26.06.2018
10:14:32
cotire на каждый target делает свой pch, что, кажется, не очень здорово

Anatoly
26.06.2018
10:14:48

Ilia
26.06.2018
10:14:53

Alexey
26.06.2018
10:15:44

Anatoly
26.06.2018
10:15:58

Admin
ERROR: S client not available

Alexey
26.06.2018
10:16:00
Есть подозрение, что это может замедлять сборку

Ilia
26.06.2018
10:16:03

Anatoly
26.06.2018
10:16:39

Alexey
26.06.2018
10:17:28

Anatoly
26.06.2018
10:18:15
+ прикрутить котир и указать ему, куда ты поместил все стандартные и библиотечные файлы

Vhäldemar
26.06.2018
10:18:47

Alexey
26.06.2018
10:19:20
Можно ли иметь несколько наборов pch? Типа pch1.h, pch2.h? И использовать либо один либо другой либо и то и другое сразу?

Anatoly
26.06.2018
10:20:10

Alexey
26.06.2018
10:20:28

Google

Vhäldemar
26.06.2018
10:20:52
но там же под каждый бинарь собирается, так?

Alexey
26.06.2018
10:21:09

Vhäldemar
26.06.2018
10:21:12
солюшен - набор проектов, кажлый собирает какой-то бинарь

Anatoly
26.06.2018
10:21:23

Vhäldemar
26.06.2018
10:21:54
у меня сомнения, что один pch можно сделать юзаемым в нескольких таргетах
какой в этом смысл?

Alexey
26.06.2018
10:22:36

Anatoly
26.06.2018
10:23:09

Vhäldemar
26.06.2018
10:23:09
ну сгенери один и его заинклудь

Alexey
26.06.2018
10:23:51
Да, буду пробовать.

Vhäldemar
26.06.2018
10:24:06
или купить памяти/ссд