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

Семён Кириллов: Всем привет! Есть вопрос по поводу программирования на C++.

Буду рад, если поможете.
В общем есть класс, в нём шаблонный метод:
/* File class_a.hpp */
#ifndef CLASS_A_HPP
#define CLASS_A_HPP
class A
{
private:
int n;
public:
template <typename T>
int foo(T abc);
/* остальные не шаблонные методы */
}
#endif // CLASS_A_HPP
Возникает вопрос. Где написать реализацию метода так, чтобы не в классе и можно было линковать с динамической библиотекой, используя файл class_a.hpp.
В интернете всё как правило сводится к реализации шаблонного метода в .hpp или вынесением реализации в .inl (все не шаблонные мотоды соответственно в .cpp). Но будте ли это работать, если нам дан .hpp и динамическая библиотека для линковки? Подобный вопрос возникает и в случае с inline функциями.
Заранее спасибо.

6 ответов

21 просмотр

Пиши в заголовке, прямо ВМЕСТО твоего объявления этого метода

Шаблонный код не может быть экспортирован в явном виде из .dll всё равно, так что твой вопрос вообще лишён смысла.

что такое шаблон? это кусок кода, который превратится компилятором в либо в функцию, либо в класс при подстановке в него конкретных параметров.

твой вопрос вообще лишён смысла.

если на момент конпеляции либы те не знаеш для каких типов нужны реализации шаблона то они и не создадутся

Шаблонный код можно экспортировать из .dll только в одном виде: Инстанциировать шаблон явно и инстанциированный код экспортировать. Но это уже и не шаблон как бы.

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
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
Карта сайта