Bonjour tout le monde,
Je me permets de venir vers vous pour une question ridicule mais où je suis incapable de trouver la solution...
J'ai actuellement une classe définie comme ceci
socketshandler.hpp
socketshandler.cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 #ifndef __SOCKETSHANDLER_HPP__ # define __SOCKETSHANDLER_HPP__ # include <iostream> class SocketsHandler { /* Variables */ private: public: enum TYPE { RabbitMQ }; /* Methods */ private: public: SocketsHandler(); ~SocketsHandler(); template <typename ...Args> void addHandler(SocketsHandler::TYPE type, Args &&...args); }; #endif // !__SOCKETSHANDLER_HPP__
et le main
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 #include "socketshandler.hpp" //----------------------------------------------------- SocketsHandler::SocketsHandler() //----------------------------------------------------- { } //----------------------------------------------------- SocketsHandler::~SocketsHandler() //----------------------------------------------------- { } //----------------------------------------------------- template <typename ...Args> void SocketsHandler::addHandler(SocketsHandler::TYPE type, Args &&...args) //----------------------------------------------------- { }
Le problème est que quand je compile j'obtiens le message suivant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 #include "socketshandler.hpp" int main() { SocketsHandler toto; toto.addHandler(SocketsHandler::TYPE::RabbitMQ, "Toto", "tata"); }
test.cpp.text+0x2c): undefined reference to `void SocketsHandler::addHandler<char const (&) [5], char const (&) [5]>(SocketsHandler::TYPE, char const (&) [5], char const (&) [5])'
Ce que je ne comprends pas c'est que si je définis ma fonction "addHandler" dans mon .hpp, je n'ai pas l'erreur...
Je n'arrive pas à voir ce que je fais de mal
Est-ce que quelqu'un peut m'aiguiller?
J'ai beau chercher sur les templates ou sur les variadics... je ne trouve rien qui pourrait m'aider
Partager