Size: a a a

cxx.Дискуссионная

2020 March 14

TS

Till Schneider in cxx.Дискуссионная
Егор
секунд 30 наверное, я не замерял
писос, у меня прод столько собирается =)
источник

TS

Till Schneider in cxx.Дискуссионная
но не весь, конечно =)
источник

Е

Егор in cxx.Дискуссионная
а с модулями побыстрее будет же
источник

Е

Егор in cxx.Дискуссионная
?
источник

0

0xFF in cxx.Дискуссионная
На какие свойства можно проверить линейную, квадратичную функцию?
источник

TS

Till Schneider in cxx.Дискуссионная
Егор
а с модулями побыстрее будет же
не факт
источник

TS

Till Schneider in cxx.Дискуссионная
там в какой-то момент начинается просадка
источник

TS

Till Schneider in cxx.Дискуссионная
ах, да, для больших проектов
источник

Е

Егор in cxx.Дискуссионная
Till Schneider
ах, да, для больших проектов
мне не грозит
источник

АВ

Александр Вольнов in cxx.Дискуссионная
Till Schneider
а потом жалуются, что шаблонная магия долгая, а сами инклюдят файлы по 5к строк
Стандартная библиотека подключает гораздо больше. А про шаблонную магию я слышал, что некоторые разработчики библиотек специально делают обычные функции шаблонными, чтобы ускорить компиляцию.
источник

D

Danya in cxx.Дискуссионная
Александр Вольнов
Стандартная библиотека подключает гораздо больше. А про шаблонную магию я слышал, что некоторые разработчики библиотек специально делают обычные функции шаблонными, чтобы ускорить компиляцию.
Как оно ускорит компиляцию?
источник

O

Ofee in cxx.Дискуссионная
>> Нам нужен PiP, чтобы у окна с видео не было рамок
>> Firefox с каждым обновлением делает новые рамки у видео вокруг старых рамок
источник

АВ

Александр Вольнов in cxx.Дискуссионная
Danya
Как оно ускорит компиляцию?
Поможет избежать инстанциирования типов, если функция не используется.
источник

O

Ofee in cxx.Дискуссионная
Ofee
>> Нам нужен PiP, чтобы у окна с видео не было рамок
>> Firefox с каждым обновлением делает новые рамки у видео вокруг старых рамок
Кто-нибудь знает простое решение?
источник

O

Ofee in cxx.Дискуссионная
Александр Вольнов
Поможет избежать инстанциирования типов, если функция не используется.
Я не эксперт в компиляторостроении, но кажется, банальный разбор, даст больший оверхед
источник

D

Danya in cxx.Дискуссионная
Александр Вольнов
Поможет избежать инстанциирования типов, если функция не используется.
Так зачем писать одну и ту же функцию для нескольких типов, если можно написать один шаблон?
источник

АВ

Александр Вольнов in cxx.Дискуссионная
Ofee
Я не эксперт в компиляторостроении, но кажется, банальный разбор, даст больший оверхед
Видимо зависит от сложности типа.
Я ещё не пробовал оптимизировать скорость компиляции своей либы, но видимо автор той либы профайлил и увидел прирост.
источник

D

Danya in cxx.Дискуссионная
Ofee
Я не эксперт в компиляторостроении, но кажется, банальный разбор, даст больший оверхед
Не думаю, что разбор сильно оверхедный
источник

АВ

Александр Вольнов in cxx.Дискуссионная
Danya
Так зачем писать одну и ту же функцию для нескольких типов, если можно написать один шаблон?
Там скорее всего одна функция для одного типа, к примеру std::string, и компиляция этой функции приведёт к инстанциированию std::string. А если единица трансляции не использует std::string и ту функцию, то шаблонная функция не будет инстанциирована, а вместе с ней и std::string. А нешаблонная функция в хедере всегда будет инстанциировать типы, которые используются в её теле.
источник

D

Danya in cxx.Дискуссионная
Александр Вольнов
Там скорее всего одна функция для одного типа, к примеру std::string, и компиляция этой функции приведёт к инстанциированию std::string. А если единица трансляции не использует std::string и ту функцию, то шаблонная функция не будет инстанциирована, а вместе с ней и std::string. А нешаблонная функция в хедере всегда будет инстанциировать типы, которые используются в её теле.
std::string — это не функция, а инстанция шаблона класса
источник