Bonjour,

Voici mon problème.
J'ai une classe template (simplifiée à l'extrème pour l'exemple):

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
public:
template <class S> class RequestProcessor {
  RequestProcessor();
  virtual ~RequestProcessor();
};
Voici l'implémentation :

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
 
#include "stdafx.h"
#include "RequestProcessor.h"
 
//////////////////////////////////////////////////////////////////////
 
template <class S> 
RequestProcessor<S>::RequestProcessor()
{
}
 
//////////////////////////////////////////////////////////////////////
 
template <class S> 
RequestProcessor<S>::~RequestProcessor()
{
}
Une classe dérivée :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
#include "market\RequestProcessor.h"
 
class ContractInfoProcessor : public RequestProcessor<char>
{
public:
  ContractInfoProcessor(void);
  virtual ~ContractInfoProcessor(void);
};
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
 
#include "StdAfx.h"
 
#include "ContractInfoProcessor.h"
 
//////////////////////////////////////////////////////////////////////
 
ContractInfoProcessor::ContractInfoProcessor(void)
{
}
 
//////////////////////////////////////////////////////////////////////
 
ContractInfoProcessor::~ContractInfoProcessor(void)
{
}
A la compilation :

ContractInfoProcessor.obj : error LNK2019: symbole externe non résolu "public: __thiscall RequestProcessor<char>::RequestProcessor<char>(void)" (??0?$RequestProcessor@D@@QAE@XZ) référencé dans la fonction "public: __thiscall ContractInfoProcessor::ContractInfoProcessor(void)" (??0ContractInfoProcessor@@QAE@XZ)
ContractInfoProcessor.obj : error LNK2019: symbole externe non résolu "public: virtual __thiscall RequestProcessor<char>::~RequestProcessor<char>(void)" (??1?$RequestProcessor@D@@UAE@XZ) référencé dans la fonction "public: virtual __thiscall ContractInfoProcessor::~ContractInfoProcessor(void)" (??1ContractInfoProcessor@@UAE@XZ)



Avez-vous une idée ?

Merci