Чтобы предотвратить повторную компиляцию кодов, я использовал отдельный транс-модуль для явного создания его экземпляра (и получения только одного obj-файла) и просто включал его заголовок везде, где он задействован.
Но там, где он используется, это другое пространство имен, например business.
Скелет моего кода выглядит следующим образом:
mq-template.hpp:
Код: Выделить всё
#pragma once
namespace my_lib {
template
class GenericMQ_t {
struct Node_t {
SIZE_TYPE _head;
SIZE_TYPE _tail;
T _data;
};
SIZE_TYPE _size {};
Node_t* _buff {};
public:
void send( const T& );
};
}; // namespace my_lib
Код: Выделить всё
#include "mq-template.hpp"
namespace my_lib {
template
void GenericMQ_t::send( const T& ) {
// just for example
std::cout
Подробнее здесь: [url]https://stackoverflow.com/questions/78086497/prevent-c-template-codes-from-being-compiled-for-many-times[/url]