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 

template methode

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





PostPosted: Fri Jul 18, 2003 8:05 pm    Post subject: template methode Reply with quote



Bonjour,
J'essaye d'écrire une classe normale (non template) qui contiendrait une
méthode paramétrable (template) :

class Toto
{
public:
template <class T> T* New() const { return new T; }
};

// en fonction libre...
template <class T> T* New() { return new T; }

void test()
{
Toto t;
int *i;
i = t.New<int>(); // error : type 'int' unexpected
i = New<int>(); // ok
}

Le template en méthode ne compile pas. Est-ce un défaut de mon compilo (VC6)
ou bien est-ce illégal ?
Et comment contourner le pb (si c'est possible...)


Back to top
Gabriel Dos Reis
Guest





PostPosted: Fri Jul 18, 2003 8:33 pm    Post subject: Re: template methode Reply with quote



"amerio" <amerio (AT) hotmail (DOT) com> writes:

Quote:
Le template en méthode ne compile pas. Est-ce un défaut de mon compilo (VC6)
^^^^^


Mauvais compilo, changer de compilo.

-- Gaby

Back to top
amerio
Guest





PostPosted: Fri Jul 18, 2003 9:19 pm    Post subject: Re: template methode Reply with quote



Quote:
| Le template en méthode ne compile pas. Est-ce un défaut de mon compilo
(VC6)

^^^^^

Mauvais compilo, changer de compilo.

Hélas ! Si seulement Microsoft autorisait un autre compilo pour faire un jeu
XBox...
Ce n'est donc pas une option.

Cela dit, en passant un paramètre 'fantôme' ca marche :
class Toto
{
public:
template <class T> T* New(T* t=NULL) const { return new T; }
};

void test()
{
Toto t;
int *i;
i = t.New( (int*)NULL ); // OK
}

Reste la question : cette écriture est-elle portable sur gcc / CodeWarrior ?
(pour gamecube et ps2, pour ceux que ca interessent) (je n'ai pas encore les
compilo sous la main, là)



Back to top
Gabriel Dos Reis
Guest





PostPosted: Fri Jul 18, 2003 9:34 pm    Post subject: Re: template methode Reply with quote

"amerio" <amerio (AT) hotmail (DOT) com> writes:

Quote:
Reste la question : cette écriture est-elle portable sur gcc / CodeWarrior ?

Pour GCC, oui.

-- Gaby

Back to top
Fabien LE LEZ
Guest





PostPosted: Fri Jul 18, 2003 9:34 pm    Post subject: Re: template methode Reply with quote

On Fri, 18 Jul 2003 20:05:58 GMT, "amerio" <amerio (AT) hotmail (DOT) com> wrote:

Quote:
Est-ce un défaut de mon compilo (VC6)

Oui.

--
Tout sur fr.* (FAQ, etc.) : http://www.usenet-fr.net/fur/
et http://www.aminautes.org/forums/serveurs/tablefr.html
Archives : http://groups.google.com/advanced_group_search
http://www.usenet-fr.net/fur/usenet/repondre-sur-usenet.html

Back to top
Arnaud Debaene
Guest





PostPosted: Sat Jul 19, 2003 10:21 am    Post subject: Re: template methode Reply with quote

amerio wrote:
Quote:
Bonjour,
J'essaye d'écrire une classe normale (non template) qui contiendrait
une méthode paramétrable (template) :

class Toto
{
public:
template <class T> T* New() const { return new T; }
};

// en fonction libre...
template <class T> T* New() { return new T; }

void test()
{
Toto t;
int *i;
i = t.New<int>(); // error : type 'int' unexpected
i = New<int>(); // ok
}

Le template en méthode ne compile pas. Est-ce un défaut de mon
compilo (VC6) ou bien est-ce illégal ?

Bug bien connu de VC6, corrigé dans VC7.

Quote:
Et comment contourner le pb (si c'est possible...)
Avoir un paramètre "dummy" de type T pour ta méthode New.


Arnaud



Back to top
ns2v
Guest





PostPosted: Sun Jul 20, 2003 10:02 am    Post subject: Re: template methode Reply with quote

Quote:

Bug bien connu de VC6, corrigé dans VC7.

sauf que le compilo xbox a toujours ete basé sur le 7, meme lorsque visual 6

servait d'ide.
microsoft nous aurais menti, c un 6.5 alors :p


Back to top
amerio
Guest





PostPosted: Sun Jul 20, 2003 4:30 pm    Post subject: Re: template methode Reply with quote

Quote:
Hélas ! Si seulement Microsoft autorisait un autre compilo pour faire un
jeu
XBox...

tu as quel xdk, celui de juin n'a visiblement pas ce bug, je viens
d'essayer.

Le dernier est OK, en effet. Mais pour des raisons de compatibilités avec
d'autres lib, on doit rester pour l'instant avec une version plus ancienne
(en attendant que les libs soient mises à jour).
Pour la release d'un jeu, seul VC7 (avec le dernier Xdk) est en effet
autorisé par MS.



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.