dans ce cas là, y'a-t-il une différence entre typename et class ? je penses que non mais si je pouvais en être sûr ...
Il n'y a aucune différence dans ce cas là. -- Franck Branjonneau
Michel Michaud
Dans le message 43458be5$0$461$,
template <typename T, std::size_t N> class array { [...]
dans ce cas là, y'a-t-il une différence entre typename et class ? je penses que non mais si je pouvais en être sûr ...
Il n'y a pas de différence pour le compilateur. Note cependant que certains utilisent « typename » lorsque n'importe quel type peut être utilisé et « class » lorsqu'il faut un type qui comporte certaines particularités (en principe une classe dans ce cas). Mais rien ne vérifie ça au niveau du langage, ce n'est qu'une convention discutable...
-- Michel Michaud http://www.gdzid.com FAQ de fr.comp.lang.c++ : http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/
Dans le message 43458be5$0$461$7a628cd7@news.club-internet.fr,
template <typename T, std::size_t N>
class array {
[...]
dans ce cas là, y'a-t-il une différence entre typename
et class ? je penses que non mais si je pouvais en être sûr ...
Il n'y a pas de différence pour le compilateur. Note cependant
que certains utilisent « typename » lorsque n'importe quel type
peut être utilisé et « class » lorsqu'il faut un type qui
comporte certaines particularités (en principe une classe dans
ce cas). Mais rien ne vérifie ça au niveau du langage, ce n'est
qu'une convention discutable...
--
Michel Michaud mm@gdzid.com
http://www.gdzid.com
FAQ de fr.comp.lang.c++ :
http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/
template <typename T, std::size_t N> class array { [...]
dans ce cas là, y'a-t-il une différence entre typename et class ? je penses que non mais si je pouvais en être sûr ...
Il n'y a pas de différence pour le compilateur. Note cependant que certains utilisent « typename » lorsque n'importe quel type peut être utilisé et « class » lorsqu'il faut un type qui comporte certaines particularités (en principe une classe dans ce cas). Mais rien ne vérifie ça au niveau du langage, ce n'est qu'une convention discutable...
-- Michel Michaud http://www.gdzid.com FAQ de fr.comp.lang.c++ : http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/
David Deharbe
Effectivement, en ce cas aucune différence. Certains recommandent d'utiliser typename pour souligner que les types de bases du langage peuvent être utilisés, et class dans le cas contraire.
Pour autant que je sache, typename est indispensable lorsqu'il est nécessaire d'aider le compilateur à identifier que l'identificateur qui suit est un nom de type; tandis que class est l'unique mot-clef pour introduire une nouvelle classe, ou patron de classe.
David. --
Effectivement, en ce cas aucune différence. Certains recommandent
d'utiliser typename pour souligner que les types de bases du langage
peuvent être utilisés, et class dans le cas contraire.
Pour autant que je sache, typename est indispensable lorsqu'il est
nécessaire d'aider le compilateur à identifier que l'identificateur
qui suit est un nom de type; tandis que class est l'unique mot-clef
pour introduire une nouvelle classe, ou patron de classe.
Effectivement, en ce cas aucune différence. Certains recommandent d'utiliser typename pour souligner que les types de bases du langage peuvent être utilisés, et class dans le cas contraire.
Pour autant que je sache, typename est indispensable lorsqu'il est nécessaire d'aider le compilateur à identifier que l'identificateur qui suit est un nom de type; tandis que class est l'unique mot-clef pour introduire une nouvelle classe, ou patron de classe.
David. --
Fabien LE LEZ
On 8 Oct 2005 10:55:27 -0700, "David Deharbe" :
tandis que class est l'unique mot-clef pour introduire une nouvelle classe
Non. Tu oublies "struct".
Au fait, est-ce que "template <struct X>" est autorisé ?
On 8 Oct 2005 10:55:27 -0700, "David Deharbe" <deharbe@gmail.com>:
tandis que class est l'unique mot-clef
pour introduire une nouvelle classe
Non. Tu oublies "struct".
Au fait, est-ce que "template <struct X>" est autorisé ?
On Sat, 08 Oct 2005 22:26:27 +0200, Franck Branjonneau :
Au fait, est-ce que "template <struct X>" est autorisé ?
Non.
Une bizarrerie de plus. On n'est plus à une près...
Gabriel Dos Reis
Fabien LE LEZ writes:
| On 8 Oct 2005 10:55:27 -0700, "David Deharbe" : | | >tandis que class est l'unique mot-clef | >pour introduire une nouvelle classe | | Non. Tu oublies "struct". | | Au fait, est-ce que "template <struct X>" est autorisé ?
Non.
-- Gaby
Fabien LE LEZ <gramster@gramster.com> writes:
| On 8 Oct 2005 10:55:27 -0700, "David Deharbe" <deharbe@gmail.com>:
|
| >tandis que class est l'unique mot-clef
| >pour introduire une nouvelle classe
|
| Non. Tu oublies "struct".
|
| Au fait, est-ce que "template <struct X>" est autorisé ?
| On 8 Oct 2005 10:55:27 -0700, "David Deharbe" : | | >tandis que class est l'unique mot-clef | >pour introduire une nouvelle classe | | Non. Tu oublies "struct". | | Au fait, est-ce que "template <struct X>" est autorisé ?
Non.
-- Gaby
Gabriel Dos Reis
Fabien LE LEZ writes:
| On Sat, 08 Oct 2005 22:26:27 +0200, Franck Branjonneau | : | | >> Au fait, est-ce que "template <struct X>" est autorisé ? | > | >Non. | | Une bizarrerie de plus.
Pourquoi ?
-- Gaby
Fabien LE LEZ <gramster@gramster.com> writes:
| On Sat, 08 Oct 2005 22:26:27 +0200, Franck Branjonneau
| <fasbjx@free.fr>:
|
| >> Au fait, est-ce que "template <struct X>" est autorisé ?
| >
| >Non.
|
| Une bizarrerie de plus.
| On Sat, 08 Oct 2005 22:26:27 +0200, Franck Branjonneau | : | | >> Au fait, est-ce que "template <struct X>" est autorisé ? | > | >Non. | | Une bizarrerie de plus.
Pourquoi ?
-- Gaby
Fabien LE LEZ
On 09 Oct 2005 15:31:52 +0200, Gabriel Dos Reis :
| >> Au fait, est-ce que "template <struct X>" est autorisé ?
| Une bizarrerie de plus.
Pourquoi ?
Les mots "class" et "struct" ont des rôles tellement proches[*], que je trouve étonnant que cette "symétrie" soit brisée dans les déclarations de templates.
[*] En fait, dans mon code, on pourrait remplacer "class" par "struct" un peu partout sans rien changer au code (car j'explicite systématiquement "private" et "public").
On 09 Oct 2005 15:31:52 +0200, Gabriel Dos Reis
<gdr@integrable-solutions.net>:
| >> Au fait, est-ce que "template <struct X>" est autorisé ?
| Une bizarrerie de plus.
Pourquoi ?
Les mots "class" et "struct" ont des rôles tellement proches[*], que
je trouve étonnant que cette "symétrie" soit brisée dans les
déclarations de templates.
[*] En fait, dans mon code, on pourrait remplacer "class" par "struct"
un peu partout sans rien changer au code (car j'explicite
systématiquement "private" et "public").
| >> Au fait, est-ce que "template <struct X>" est autorisé ?
| Une bizarrerie de plus.
Pourquoi ?
Les mots "class" et "struct" ont des rôles tellement proches[*], que je trouve étonnant que cette "symétrie" soit brisée dans les déclarations de templates.
[*] En fait, dans mon code, on pourrait remplacer "class" par "struct" un peu partout sans rien changer au code (car j'explicite systématiquement "private" et "public").