Bonjour, j'ai un petit problème d'utilisation de templates de façon dynamique.
Voilà, en gros j'ai deux classes:

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
 
 
template<class ResponsePolicy>
class SVM {
 
...
...
 
};
 
template<class ResponsePolicy>
class CSVC : public SVM<ResponsePolicy> {
 
...
...
 
};
Je veux pouvoir instancier un objet de la classe CSVC de cette façon.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
SVM<Response>* svm1 = new CSVC<Response>();
Mais, mon compilateur n'a pas l'air d'apprécier.

src/classifieurs/svms/TESTS/TestCSVC.cpp: In member function 'void TestCSVC::testEntrainer()':
src/classifieurs/svms/TESTS/TestCSVC.cpp:14: error: expected type-specifier before 'CSVC'
src/classifieurs/svms/TESTS/TestCSVC.cpp:14: error: cannot convert 'int*' to 'SVM<Response>*' in initialization
src/classifieurs/svms/TESTS/TestCSVC.cpp:14: error: expected ',' or ';' before 'CSVC'
src/classifieurs/svms/TESTS/TestCSVC.cpp:31: warning: possible problem detected in invocation of delete operator:
src/classifieurs/svms/TESTS/TestCSVC.cpp:14: warning: 'svm1' has incomplete type
Bref, je suppose que je n'ai pas le droit de faire ceci, mais alors, comment puis-je utiliser un objet de la classe CSVC à partir de sa base SVM (en fait je veux faire comme s'il n'y avait pas de paramètre template, faire abstraction de la partie CSVC) ?

Merci.

Bouba