Bonjour à tous ,
j'ai un bête problème de syntaxe pour lequel je ne trouve pas de solution.
Voici un petit exemple représentatif du problème que je me pose :
Code :
- //Si je veux avoir exactement le même resultat que ceci :
- template <class VarType>
- class MyClass{
- VarType var;
- public:
- template<ArgType>
- void fctMembre(VarType _var, ArType arg1){
- var=_var;
- if(_var==(VarType) arg1)
- cout<<"pwet";
- }
- }
- void main(){
- MyClass<unsigned> A;
- A.fctMembre (1, (char) 1);
- }
- //en sortant le corp de ma fonction membre de la declaration :
- template <class VarType>
- class MyClass{
- VarType var;
- public:
- template<class ArgType>
- void fctMembre(VarType, ArgType );
- };
- //ce double template passe sous dev-c++ mais pas sous MS visual 6.0
- template <class VarType>
- template <class ArgType>
- void MyClass<VarType>::fctMembre(VarType _var, ArgType arg1){
- var=_var;
- if(_var==(VarType) arg1)
- cout<<"pwet";
- }
|
Je me demandais si c'est une syntaxe standard (et donc une fois de plus VC 6.0 qui pue, sachant que la première solution passe sans problème) ou existe-il une autre manière portable d'avoir le même résultat?