/*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 ??
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Alain Gaillard
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++ 8), le code compile.
-- Alain
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
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++ 8), le code compile.
-- Alain
Michel Decima
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...
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...
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...
Sylvain Togni
[...]
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
[...]
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.
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
Alain Gaillard
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
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.
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.