| View previous topic :: View next topic |
| Author |
Message |
sej Guest
|
Posted: Fri Aug 18, 2006 6:28 pm Post subject: Compilation de template spécialisé |
|
|
Bonjour,
j'ai le code suivant :
/*main.cpp*/
#include "temp.h"
#include <iostream>
using namespace std;
int main(void)
{
Temp tmp;
typedef float type_data;
type_data in = 2.0f;
type_data r;
r = tmp.function(in);
cout << "r=" << r << endl;
return 0;
}
/*temp.h*/
#ifndef TEMP_H
#define TEMP_H
class Temp
{
public :
template<typename Type>
Type function(Type a);
};
template<typename Type>
Type Temp::function(Type a)
{
return a;
}
// specialized template function
template<>
float Temp::function(float a);
#endif // TEMP_H
/*temp.cpp*/
#include "temp.h"
template<>
float Temp::function(float a)
{
return a+1.0f;
}
Lorsque je le compile avec Visual C++ 7.1 j'ai une erreur interne du
compilateur. Par contre avec MingGCC3.4.2 ça passe.
Je ne comprends pas pourquoi ! J'ai soit fait une erreur dans mon code,
soit le compilateur de Microsoft gère mal les templates spécialisés ?? |
|
| Back to top |
|
 |
Alain Gaillard Guest
|
Posted: Fri Aug 18, 2006 6:45 pm Post subject: Re: Compilation de template spécialisé |
|
|
sej a écrit :
| Quote: | Lorsque je le compile avec Visual C++ 7.1 j'ai une erreur interne du
compilateur. Par contre avec MingGCC3.4.2 ça passe.
Je ne comprends pas pourquoi ! J'ai soit fait une erreur dans mon code,
soit le compilateur de Microsoft gère mal les templates spécialisés ??
|
Je dirais que le code est correct.
Ca devait être un pb dans Visual ++ 7.1
Dans le 2005 (alias VC++ , le code compile.
--
Alain |
|
| Back to top |
|
 |
Michel Decima Guest
|
Posted: Fri Aug 18, 2006 6:50 pm Post subject: Re: Compilation de template spécialisé |
|
|
sej a écrit :
| Quote: |
template
float Temp::function(float a)
{
return a+1.0f;
}
Lorsque je le compile avec Visual C++ 7.1 j'ai une erreur interne du
compilateur. Par contre avec MingGCC3.4.2 ça passe.
Je ne comprends pas pourquoi ! J'ai soit fait une erreur dans mon code,
soit le compilateur de Microsoft gère mal les templates spécialisés ??
|
la declaration de la fonction specialisee ne devrait pas etre plutot
celle ci:
template<>
float Temp::function<float>(float a);
je mets tout ca au conditionnel, parce que je ne me souviens pas de
la regle, et que mon g++4.1 accepte les deux... |
|
| Back to top |
|
 |
Sylvain Togni Guest
|
Posted: Fri Aug 18, 2006 9:26 pm Post subject: Re: Compilation de template spécialisé |
|
|
sej a écrit :
[...]
| Quote: | Lorsque je le compile avec Visual C++ 7.1 j'ai une erreur interne du
compilateur. Par contre avec MingGCC3.4.2 ça passe.
Je ne comprends pas pourquoi ! J'ai soit fait une erreur dans mon code,
soit le compilateur de Microsoft gère mal les templates spécialisés ??
|
Une erreur interne est forcément un bug du compilo.
--
Sylvain Togni |
|
| Back to top |
|
 |
Alain Gaillard Guest
|
Posted: Fri Aug 18, 2006 10:20 pm Post subject: Re: Compilation de template spécialisé |
|
|
Sylvain Togni a écrit :
| Quote: | Une erreur interne est forcément un bug du compilo.
|
Avec VC 2003 (le 7 autrement dit) il m'est arrivé d'avoir une erreur
interne sur du code incorrect. Tu diras que c'est quand même un bug du
compilo. Certes, mais cela justifie la question du posteur initial.
--
Alain |
|
| Back to top |
|
 |
|