C++Talk.NET Forum Index C++Talk.NET
C++ language newsgroups
 
Archives   FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Compilation de template spécialisé

 
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (French)
View previous topic :: View next topic  
Author Message
sej
Guest





PostPosted: Fri Aug 18, 2006 6:28 pm    Post subject: Compilation de template spécialisé Reply with quote



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





PostPosted: Fri Aug 18, 2006 6:45 pm    Post subject: Re: Compilation de template spécialisé Reply with quote



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++ Cool, le code compile.

--
Alain
Back to top
Michel Decima
Guest





PostPosted: Fri Aug 18, 2006 6:50 pm    Post subject: Re: Compilation de template spécialisé Reply with quote



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





PostPosted: Fri Aug 18, 2006 9:26 pm    Post subject: Re: Compilation de template spécialisé Reply with quote

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





PostPosted: Fri Aug 18, 2006 10:20 pm    Post subject: Re: Compilation de template spécialisé Reply with quote

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
Display posts from previous:   
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (French) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2006 phpBB Group
SEO toolkit © 2004-2006 webmedic.