172 похожих чатов

Сейчас читаю про шаблоны в плюсах, конкретно про явное и

неявное инстанцирование.
А в расте есть необходимость в явном истанцировании?
Если я в двух файлах использую одну и ту же generic-функцию с одним и тем же типовым параметром, будет ли она инстанцирована (и, соответственно, скомпилирована) дважды?

12 ответов

16 просмотров

Дубли убираются

Eugene- Автор вопроса
Пух
Дубли убираются

На этапе линковки?

оптимизатор вроде все ненужное по его мнению убирает

Eugene
На этапе линковки?

Скорее всего зависит от того, где оно дублируется. В пределах крейта должно скомпилить один раз

в расте если ты напишешь 2 функции одинаковых но с разным названием в годболте увидишь что в итоге компилятор 1 ток сделает и в обоих местах будет её вызывать

Αλεχ Zhukovsky
в расте если ты напишешь 2 функции одинаковых но с...

А вот это уже где-то в самом конце убирается, не?

Αλεχ Zhukovsky
https://rust.godbolt.org/z/reb53f5T5

Ну я про этапы компиляции, да. И изначальный вопрос в том, в какой момент дубликаты дженерик типов/функций будут убраны

Пух
Ну я про этапы компиляции, да. И изначальный вопро...

Этого не знаю, наверное можно проверить но кажется чутка бесполезно. Я отвечал на > Если я в двух файлах использую одну и ту же generic-функцию с одним и тем же типовым параметром, будет ли она инстанцирована (и, соответственно, скомпилирована) дважды? И ответ - нет, не будет. По крайней мере в рамках 1 транслейшн юнита

Пух
А если в двух зависимостях?

учитывая что в расте зависимости линкуются статически то думаю разницы быть не должно. НО я не проверял так что врать не буду)

Пух
Ну я про этапы компиляции, да. И изначальный вопро...

Скорее всего на этапе оптимизаций LLVM https://llvm.org/docs/Passes.html#mergefunc-merge-functions

Похожие вопросы

Обсуждают сегодня

У меня это всегда вопрос вызывало.. Нафига писать код так, чтобы потом ошибки вылавливать?
Nik
44
всем привет. реально ли понять чем в процессе занята память? delphi/linux, процесс свой
Handatros
12
что за асемблер кста?
Shvabrikk Nya
19
Добрый день! Пробую отловить исключение EConvertError: function _TryTextToDouble(var DoubleVar: Extended; Text: String): Boolean; begin try DoubleVar := StrToFloat...
Kirill Filippenok
19
embassy это топ фреймворк для эмбеддед на данный момент?
AS Sarb
23
А где @Grinyaha уважаемый пропал?
Am Ambrion
14
Ребята, я 3 дня как вкатился в ардуино Думал на прогрессивном молодом языке Rust попилить что-нибудь А как-то грустно с библиотеками оказалось. Не подскажете почему так? Если...
AS Sarb
18
This automated cryptocurrency trading system uses intelligent algorithms to buy low and sell high on leading crypto exchanges. Many users have already enjoyed significant prof...
Endu Wako
1
Сделал краткий обзор магазина из статьи и заодно там же записал инструкцию по развёртыванию. https://www.youtube.com/watch?v=8-sE1vNk95Q (чё думаете по звуку? кое-что поменял...
Andrey K
17
Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
Карта сайта