Bonjour,
J'ai un code du type :
Dans un cpp, j'instantie une Factory en lui passant un testclasstemplate<testsimpleclass> de la manière suivante :
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 namespace toto { template <class type> class testclasstemplate { ... }; class testsimpleclass { .... }; } //namespace toto template <class type> class Factory { ... };
Ce code échoue à la compilation, j'obtiens l'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 using namespace toto; ... Factory<testclasstemplate<testsimpleclass> > my_factory;
" error C2512: 'testclasstemplate<T>' : no appropriate default constructor available
with
[
T=toto::testsimpleclass
]"
Je suis obligé de spécifier le nom du namespace devant testclasstemplate pour pouvoir compiler, et ce malgré la directive using :
Chose que j'aimerais éviter. Y'a-t-il un moyen de faire compiler le premier code ? Je en comprends pas trop d'où vient le problème :/
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 using namespace toto; ... Factory<toto::testclasstemplate<testsimpleclass> > my_factory;
Partager