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

В супапро все заняты срачем, реквестую сюда: Здравствуйте. Вопросец по

шаблонам: вот запилил я шаблонный класс/функцию/etc. Фактически инстанцироваться оно будет в той библиотеке, которая затребовала конкретную реализацию. Однако, для каких-то базовых вещей, например примитивных типов, я могу инстанцировать код заранее, в "исходной" библиотеке. Правильно ли я понимаю, что компилятор найдёт этот инстанс и возьмет его из прилинкованной библиотеки, или всё-таки реализация будет дублирована?

17 ответов

32 просмотра

Неправильно, не найдет

Пашечка- Автор вопроса
Ilya Zviagin
Неправильно, не найдет

То есть инстанцироваться реализация будет дважды, по одной для каждой библиотеки?

Там есть extern template, чтобы не инстанцировалось.

Ilya Zviagin
Неправильно, не найдет

Если прописать специализацию - найдет

Пашечка
То есть инстанцироваться реализация будет дважды, ...

Нет смысла инстанциировать в библиотеке, по месту использования только

Пашечка- Автор вопроса
Pavel
Если прописать специализацию - найдет

Нет, без специализации, обычное шаблонное поведение.

Пашечка- Автор вопроса
Ilya Zviagin
Нет смысла инстанциировать в библиотеке, по месту ...

Ну, есть, чтобы не раздувать каждую свою библиотеку.

Пашечка- Автор вопроса
Ilya Zviagin
Зачем ты этим паришься ?

Интересно стало, решил озадачиться.

Ilya Zviagin
Зачем ты этим паришься ?

А мы тут не все этим занимаемся?

вы можете так сделать, и эту явную инстанциацию можно будет прилинковать, но чтобы компилятор пошел именно этим путем, надо также запретить ему неявно инстанцировать шаблон там, где он используется. как написали выше, для этого нужен extern template

Пашечка
Интересно стало, решил озадачиться.

95% маршевого использования шаблонов - реализация в заголовочных файлах, inline. Потом компилятор может это все оптимально смержить

Vlad
да

И в этом я тоже сомневаюсь

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта