(все в одном header-файле).
class Foo {
public:
template<typename T>
T bar();
};
template<typename T>
T Foo::bar(){ return 5; }
Если такой header включать в много Cpp-файлов, с одним и тем же шаблонным параметром, то она в каждом файле будет заново инстанцироваться. Как мне это предотвратить, чтобы она один раз компилировалась, а потом её линкер находил?
я подозреваю, тебя спасут гарды (#pragma once и #ifndef HEADER_NAME #define HEADER_NAME #endif)
Реализацию вынести в файл реализации. Только придётся прописать все варианты. Какой тогда смысл в шаблоне?
О, вот об этом не подумал. Спасибо
Обсуждают сегодня