Запретить многократную компиляцию кодов шаблонов C++.C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Запретить многократную компиляцию кодов шаблонов C++.

Сообщение Anonymous »


Я написал шаблон очереди сообщений на C++ и хочу использовать его во многих разных проектах, чтобы поместить его в пространство имен, например my_lib.

Чтобы предотвратить повторную компиляцию кодов, я использовал отдельный транс-модуль для явного создания его экземпляра (и получения только одного obj-файла) и просто включал его заголовок везде, где он задействован.

Но он используется в другом пространстве имен, например business.

Скелет моего кода выглядит следующим образом:

mq-template.hpp:

#pragma один раз пространство имен my_lib { шаблон класс GenericMQ_t { структура Node_t { SIZE_TYPE _head; SIZE_TYPE _хвост; Т _данные; }; SIZE_TYPE _size {}; Node_t* _buff {}; публика: недействительная отправка (const T&); }; }; // пространство имен my_lib mq-template.tpp(обратите внимание на суффикс):

#include "mq-template.hpp" пространство имен my_lib { шаблон void GenericMQ_t::send(const T&) { // просто для примера std::cout
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»