| View previous topic :: View next topic |
| Author |
Message |
Aurélien REGAT-BARREL Guest
|
Posted: Fri Nov 05, 2004 9:48 am Post subject: Question de vocabulaire sur les templates |
|
|
Bonjour à tous,
Je me pose des questions sur le(s) sens de instancié / spécialisé pour un
template.
Quand je fais ça :
std::vector<int> v;
Est-ce que std::vector est instancié pour le type int, ou est-il spécialisé
par le compilo ?
Et dans l'exemple suivant :
template<typename T>
T Test()
{
return T();
}
void f()
{
int i = Test<int>();
}
Diriez-vous qu'il y a instanciation explicite de Test ?
Merci.
--
Aurélien REGAT-BARREL
|
|
| Back to top |
|
 |
Jean-Marc Bourguet Guest
|
Posted: Fri Nov 05, 2004 8:04 pm Post subject: Re: Question de vocabulaire sur les templates |
|
|
"Aurélien REGAT-BARREL" <nospam-aregatba (AT) yahoo (DOT) fr.invalid> writes:
| Quote: | Est-ce que std::vector est instancié pour le type int, ou est-il spécialisé
par le compilo ?
|
|
|
| Back to top |
|
 |
Jean-Marc Bourguet Guest
|
|
| Back to top |
|
 |
Gabriel Dos Reis Guest
|
Posted: Sat Nov 06, 2004 5:48 am Post subject: Re: Question de vocabulaire sur les templates |
|
|
Jean-Marc Bourguet <jm (AT) bourguet (DOT) org> writes:
| Quote: | "Aurélien REGAT-BARREL" <nospam-aregatba (AT) yahoo (DOT) fr.invalid> writes:
Est-ce que std::vector est instancié pour le type int, ou est-il spécialisé
par le compilo ?
Les deux.
Pour les noms, il y a une différence:
L'instantiation c'est le processus,
La spécialisation c'est le résultat.
Pour les verbes je n'en vois pas.
|
Dans
template<> struct vector<foo*> { };
est-ce « instancier » ou « specialiser » ?
-- Gaby
|
|
| Back to top |
|
 |
drkm Guest
|
Posted: Mon Nov 08, 2004 12:38 am Post subject: Re: Question de vocabulaire sur les templates |
|
|
Jean-Marc Bourguet <jm (AT) bourguet (DOT) org> writes:
| Quote: | L'instantiation c'est le processus,
La spécialisation c'est le résultat.
|
Tiens. Je pensais que la spécialisation c'était :
template< bool B >
struct If {
typedef True value ;
} ;
template<>
struct If< false > {
typedef False value ;
} ;
--drkm
|
|
| Back to top |
|
 |
Jean-Marc Bourguet Guest
|
Posted: Mon Nov 08, 2004 7:45 am Post subject: Re: Question de vocabulaire sur les templates |
|
|
drkm <usenet.fclcxx (AT) fgeorges (DOT) org> writes:
| Quote: | Jean-Marc Bourguet <jm (AT) bourguet (DOT) org> writes:
L'instantiation c'est le processus,
La spécialisation c'est le résultat.
Tiens. Je pensais que la spécialisation c'était :
template< bool B
struct If {
typedef True value ;
} ;
template
struct If< false > {
typedef False value ;
} ;
|
C'est une specialisation explicite.
A+
--
Jean-Marc
FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ
C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html
Site de usenet-fr: http://www.usenet-fr.news.eu.org
|
|
| Back to top |
|
 |
Aurélien REGAT-BARREL Guest
|
Posted: Tue Nov 09, 2004 1:26 pm Post subject: Re: Question de vocabulaire sur les templates |
|
|
Merci pour les réponses.
| Quote: | C'est une specialisation explicite.
|
Est-ce que ça aussi c'est une spécialisation explicite ?
template<typename T>
T Test()
{
return T();
}
void f()
{
int i = Test<int>();
}
--
Aurélien REGAT-BARREL
|
|
| Back to top |
|
 |
Gabriel Dos Reis Guest
|
Posted: Tue Nov 09, 2004 3:35 pm Post subject: Re: Question de vocabulaire sur les templates |
|
|
"Aurélien REGAT-BARREL" <nospam-aregatba (AT) yahoo (DOT) fr.invalid> writes:
| Quote: | Merci pour les réponses.
C'est une specialisation explicite.
Est-ce que ça aussi c'est une spécialisation explicite ?
template<typename T
T Test()
{
return T();
}
void f()
{
int i = Test
}
|
Non, c'est une demande d'instantiation implicite.
-- Gaby
|
|
| Back to top |
|
 |
Aurelien REGAT-BARREL Guest
|
Posted: Wed Nov 10, 2004 9:45 pm Post subject: Re: Question de vocabulaire sur les templates |
|
|
| Quote: | Non, c'est une demande d'instantiation implicite.
|
Qui si j'ai bien compris peut provoquer une spécialisation de la part du
compilo ?
|
|
| Back to top |
|
 |
drkm Guest
|
Posted: Wed Nov 10, 2004 10:43 pm Post subject: Re: Question de vocabulaire sur les templates |
|
|
"Aurelien REGAT-BARREL" <nospam.aregatba (AT) yahoo (DOT) fr.invalid> writes:
| Quote: | Non, c'est une demande d'instantiation implicite.
Qui si j'ai bien compris peut provoquer une spécialisation de la part du
compilo ?
|
Qui, si j'ai bien compris, nécessite l'existence d'une
spécialisation. Ce qui peut évuentuellement déclencher une
instanciation. La spécialisation sera alors créée à partir du modèle
initial, ou d'une spécialisation partielle.
À confirmer.
--drkm
|
|
| Back to top |
|
 |
Gabriel Dos Reis Guest
|
Posted: Thu Nov 11, 2004 3:56 am Post subject: Re: Question de vocabulaire sur les templates |
|
|
drkm <usenet.fclcxx (AT) fgeorges (DOT) org> writes:
| Quote: | "Aurelien REGAT-BARREL" <nospam.aregatba (AT) yahoo (DOT) fr.invalid> writes:
Non, c'est une demande d'instantiation implicite.
Qui si j'ai bien compris peut provoquer une spécialisation de la part du
compilo ?
Qui, si j'ai bien compris, nécessite l'existence d'une
spécialisation. Ce qui peut évuentuellement déclencher une
instanciation. La spécialisation sera alors créée à partir du modèle
initial, ou d'une spécialisation partielle.
À confirmer.
|
Oui.
-- Gaby
|
|
| Back to top |
|
 |
Aurelien REGAT-BARREL Guest
|
Posted: Thu Nov 11, 2004 6:29 pm Post subject: Re: Question de vocabulaire sur les templates |
|
|
Ok merci à vous tous.
--
Aurélien REGAT-BARREL
|
|
| Back to top |
|
 |
|