Определение в .cpp
Определение шаблона не должно быть в cpp.
А в месте откуда ошибка возникает оно видно компилятору?
Нельзя так делать
Message не шаблон
да хоть в mp3, компилятор же явно пишет, где он его ожидает видимым
Компилятор все .срр файлы отдельно обрабатывает и независимо, поэтому он код из других .срр файлов не видит, нужно объявлять нужные вещи в хэдере и подключать его к .срр файлу, в котором они используются.
Он компилит не Message Там написано же
Если делаю #include <Network.Static/Message.hpp> в .hpp, то кидает ссылки на неразрешённые символы: error LNK2019: ссылка на неразрешенный внешний символ "public: __cdecl Network::SafeQueue<struct Network::Message>::~SafeQueue<struct Network::Message>(void)" (??1?$SafeQueue@UMessage@Network@@@Network@@QEAA@XZ) в функции "public: __cdecl Server::Server::~Server(void)" (??1Server@0@QEAA@XZ).
где определение деструктора?
В Server.cpp лежит: Server::~Server() { stop(); }
Network::SafeQueue<struct Network::Message>::~SafeQueue<struct Network::Message>(void)
Ну такого точно нет.
Это деструктор SafeQueue если что
SafeQueue это что?
У самого SafeQueue есть деструктор.
Где он определен? Должен в хедере
Обсуждают сегодня