Bonjour, il y a quelque temps que j'ai pas fait de C++ et de plus j'ai
échangé gcc 2.95 contre 3.4.2, et je n'arrive pas a compiler le bout de
code suivant, je ne comprend pas pourquoi, j'ai du louper un chapitre:
euh... je ne vois pas le rapport avec le problème précédent. J'ai dit une bêtise ?
Oui...
amen.
-- Stanislas RENAN
Stanislas RENAN
Le rapport est que ce n'est pas seulement dans le contexte de déclaration de pointeur. c'est bien possible, mais ça dépasse mes connaissances :)
En fait j'avais déjà vu ce problème abordé spécifiquement dans le cas du pointeur, et comme ça m'avait surpris (le coup de la multiplication), je l'ai retenu (en fait, plus précisément, j'ai eu recours à mes notes).
Le message n'était pas une contradiction, mais un complément d'information :-) Je remets du contexte : et bien nous attendons que tu nous éclaires à ce propos (en tout cas,
moi).
-- Stanislas RENAN
Le rapport est que ce n'est pas seulement dans le contexte de
déclaration de pointeur.
c'est bien possible, mais ça dépasse mes connaissances :)
En fait j'avais déjà vu ce problème abordé spécifiquement dans le cas du
pointeur, et comme ça m'avait surpris (le coup de la multiplication), je
l'ai retenu (en fait, plus précisément, j'ai eu recours à mes notes).
Le message n'était pas une contradiction,
mais un complément d'information :-) Je remets du contexte :
et bien nous attendons que tu nous éclaires à ce propos (en tout cas,
Le rapport est que ce n'est pas seulement dans le contexte de déclaration de pointeur. c'est bien possible, mais ça dépasse mes connaissances :)
En fait j'avais déjà vu ce problème abordé spécifiquement dans le cas du pointeur, et comme ça m'avait surpris (le coup de la multiplication), je l'ai retenu (en fait, plus précisément, j'ai eu recours à mes notes).
Le message n'était pas une contradiction, mais un complément d'information :-) Je remets du contexte : et bien nous attendons que tu nous éclaires à ce propos (en tout cas,
moi).
-- Stanislas RENAN
drkm
Stanislas RENAN writes:
Le message n'était pas une contradiction, mais un complément d'information :-) Je remets du contexte :
et bien nous attendons que tu nous éclaires à ce propos (en tout cas, moi).
Quelque chose n'est toujours pas clair ?
--drkm
Stanislas RENAN <nomail@genigraph.fr> writes:
Le message n'était pas une contradiction,
mais un complément d'information :-) Je remets du contexte :
et bien nous attendons que tu nous éclaires à ce propos (en tout cas,
moi).
Le message n'était pas une contradiction, mais un complément d'information :-) Je remets du contexte :
et bien nous attendons que tu nous éclaires à ce propos (en tout cas, moi).
Quelque chose n'est toujours pas clair ?
--drkm
Gabriel Dos Reis
Stanislas RENAN writes:
| > Le message n'était pas une contradiction, | > mais un complément d'information :-) Je remets du contexte : | et bien nous attendons que tu nous éclaires à ce propos (en tout cas, | moi).
à quel propos exactement ?
-- Gaby
Stanislas RENAN <nomail@genigraph.fr> writes:
| > Le message n'était pas une contradiction,
| > mais un complément d'information :-) Je remets du contexte :
| et bien nous attendons que tu nous éclaires à ce propos (en tout cas,
| moi).
| > Le message n'était pas une contradiction, | > mais un complément d'information :-) Je remets du contexte : | et bien nous attendons que tu nous éclaires à ce propos (en tout cas, | moi).
à quel propos exactement ?
-- Gaby
Stanislas RENAN
Stanislas RENAN writes:
| > Le message n'était pas une contradiction, | > mais un complément d'information :-) Je remets du contexte : | et bien nous attendons que tu nous éclaires à ce propos (en tout cas, | moi).
à quel propos exactement ?
il y avait un problème exposé dans le message initial de cette discussion. L'un des participants a montré comment résoudre le problème tout en se posant une autre question. J'ai proposé une réponse à cette question. Tu as rebondi sur cette réponse et proposé un bout de code en posant une nouvelle question.
La réponse à cette dernière m'intéresse. Si tu peux argumenter la réponse, ce serait bien.
J'espère être resté compréhensible :) -- Stanislas RENAN
Stanislas RENAN <nomail@genigraph.fr> writes:
| > Le message n'était pas une contradiction,
| > mais un complément d'information :-) Je remets du contexte :
| et bien nous attendons que tu nous éclaires à ce propos (en tout cas,
| moi).
à quel propos exactement ?
il y avait un problème exposé dans le message initial de cette
discussion.
L'un des participants a montré comment résoudre le problème tout en se
posant une autre question.
J'ai proposé une réponse à cette question.
Tu as rebondi sur cette réponse et proposé un bout de code en posant une
nouvelle question.
La réponse à cette dernière m'intéresse.
Si tu peux argumenter la réponse, ce serait bien.
J'espère être resté compréhensible :)
--
Stanislas RENAN
| > Le message n'était pas une contradiction, | > mais un complément d'information :-) Je remets du contexte : | et bien nous attendons que tu nous éclaires à ce propos (en tout cas, | moi).
à quel propos exactement ?
il y avait un problème exposé dans le message initial de cette discussion. L'un des participants a montré comment résoudre le problème tout en se posant une autre question. J'ai proposé une réponse à cette question. Tu as rebondi sur cette réponse et proposé un bout de code en posant une nouvelle question.
La réponse à cette dernière m'intéresse. Si tu peux argumenter la réponse, ce serait bien.
J'espère être resté compréhensible :) -- Stanislas RENAN
Gabriel Dos Reis
Stanislas RENAN writes:
| | > Stanislas RENAN writes: | > | > Le message n'était pas une contradiction, | > | > mais un complément d'information :-) Je remets du contexte : | > | et bien nous attendons que tu nous éclaires à ce propos (en tout cas, | > | moi). | > à quel propos exactement ? | | il y avait un problème exposé dans le message initial de cette | discussion. | L'un des participants a montré comment résoudre le problème tout en se | posant une autre question. | J'ai proposé une réponse à cette question. | Tu as rebondi sur cette réponse et proposé un bout de code en posant une | nouvelle question. | | La réponse à cette dernière m'intéresse.
Je crois que tout était dit dans
| Si tu peux argumenter la réponse, ce serait bien.
Je recopie :
(je ne sais plus exactement avec quoi il y a ambiguité, mais il faut preciser au compilo que std::map<Key, int>::iterator est un type)
il me semble que c'est quand tu déclares un pointeur :
# | euh... je ne vois pas le rapport avec le problème précédent.
# Le rapport est que ce n'est pas seulement dans le contexte de ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ # déclaration de pointeur. Le message n'était pas une contradiction, ^^^^^^^^^^^^^^^^^^^^^^^
-- Gaby
Stanislas RENAN <nomail@genigraph.fr> writes:
|
| > Stanislas RENAN <nomail@genigraph.fr> writes:
| > | > Le message n'était pas une contradiction,
| > | > mais un complément d'information :-) Je remets du contexte :
| > | et bien nous attendons que tu nous éclaires à ce propos (en tout cas,
| > | moi).
| > à quel propos exactement ?
|
| il y avait un problème exposé dans le message initial de cette
| discussion.
| L'un des participants a montré comment résoudre le problème tout en se
| posant une autre question.
| J'ai proposé une réponse à cette question.
| Tu as rebondi sur cette réponse et proposé un bout de code en posant une
| nouvelle question.
|
| La réponse à cette dernière m'intéresse.
Je crois que tout était dit dans
<m3mzuyd11t.fsf@uniton.integrable-solutions.net>
| Si tu peux argumenter la réponse, ce serait bien.
Je recopie :
(je ne sais plus exactement avec quoi il y a ambiguité, mais il faut
preciser au compilo que std::map<Key, int>::iterator est un type)
il me semble que c'est quand tu déclares un pointeur :
# | euh... je ne vois pas le rapport avec le problème précédent.
# Le rapport est que ce n'est pas seulement dans le contexte de
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
# déclaration de pointeur. Le message n'était pas une contradiction,
^^^^^^^^^^^^^^^^^^^^^^^
| | > Stanislas RENAN writes: | > | > Le message n'était pas une contradiction, | > | > mais un complément d'information :-) Je remets du contexte : | > | et bien nous attendons que tu nous éclaires à ce propos (en tout cas, | > | moi). | > à quel propos exactement ? | | il y avait un problème exposé dans le message initial de cette | discussion. | L'un des participants a montré comment résoudre le problème tout en se | posant une autre question. | J'ai proposé une réponse à cette question. | Tu as rebondi sur cette réponse et proposé un bout de code en posant une | nouvelle question. | | La réponse à cette dernière m'intéresse.
Je crois que tout était dit dans
| Si tu peux argumenter la réponse, ce serait bien.
Je recopie :
(je ne sais plus exactement avec quoi il y a ambiguité, mais il faut preciser au compilo que std::map<Key, int>::iterator est un type)
il me semble que c'est quand tu déclares un pointeur :
# | euh... je ne vois pas le rapport avec le problème précédent.
# Le rapport est que ce n'est pas seulement dans le contexte de ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ # déclaration de pointeur. Le message n'était pas une contradiction, ^^^^^^^^^^^^^^^^^^^^^^^
-- Gaby
Repondre sur le NG
Stanislas RENAN writes:
| | > Stanislas RENAN writes: | > | > Le message n'était pas une contradiction, | > | > mais un complément d'information :-) Je remets du contexte : | > | et bien nous attendons que tu nous éclaires à ce propos (en t out cas, | > | moi). | > à quel propos exactement ? | | il y avait un problème exposé dans le message initial de cette | discussion. | L'un des participants a montré comment résoudre le problème tou t en se | posant une autre question. | J'ai proposé une réponse à cette question. | Tu as rebondi sur cette réponse et proposé un bout de code en pos ant une | nouvelle question. | | La réponse à cette dernière m'intéresse.
Je crois que tout était dit dans
tout dépend de l'intention de ton message. Si c'était pour que je comprenne, alors il restait des choses à dire, comme je l'ai exprimé.
Pour ceux qui, comme moi, ont besoin d'explications pour comprendre, je viens de lire partiellement un document sur les changements apportés à gcc 3.4, et notament le paragraphe concernant l'utilisation de typename (commençant par « You must now use the typename and template keywords to disambiguate dependent names ») :
<http://gcc.gnu.org/gcc-3.4/changes.html>
L'exemple et les commentaires sont clairs et explicitent le fait qu'un nom dépendant est un nom dont le type dépend d'un paramètre templat e (c'est peut-être plus compliqué, m'enfin bon) ; un tel nom n'existe donc que dans le contexte d'une classe ou d'une fonction template (sinon, le type n'est pas paramétrable, même s'il p eut être paramétré, comme std::map<int, int>::iterator par exemple).
Le type d'un tel nom doit être précédé du mot-clef typename pour expliciter le fait que le type que l'on souhaite utiliser pour le nom est bien un type, et que l'on n'essaye pas de faire autre chose, soit : -une multiplication dans le cas du pointeur ; -un appel de fonction dans le cas que tu as écrit.
Il y a peut-être d'autres ambiguïtés similaires que le mot-clef "typename" vient résoudre.
Ce que je dis est peut-être imparfait (et, dans ce cas, il est probablement souhaitable de le corriger), mais au moins je comprends mieux le problème et la façon dont il est résolu à la lecture du document dont j'ai donné le lien.
-- Stanislas RENAN
Stanislas RENAN <nomail@genigraph.fr> writes:
|
| > Stanislas RENAN <nomail@genigraph.fr> writes:
| > | > Le message n'était pas une contradiction,
| > | > mais un complément d'information :-) Je remets du contexte :
| > | et bien nous attendons que tu nous éclaires à ce propos (en t out cas,
| > | moi).
| > à quel propos exactement ?
|
| il y avait un problème exposé dans le message initial de cette
| discussion.
| L'un des participants a montré comment résoudre le problème tou t en se
| posant une autre question.
| J'ai proposé une réponse à cette question.
| Tu as rebondi sur cette réponse et proposé un bout de code en pos ant une
| nouvelle question.
|
| La réponse à cette dernière m'intéresse.
Je crois que tout était dit dans
tout dépend de l'intention de ton message.
Si c'était pour que je comprenne, alors il restait des choses à dire,
comme je l'ai exprimé.
Pour ceux qui, comme moi, ont besoin d'explications pour comprendre,
je viens de lire partiellement un document sur les changements apportés
à gcc 3.4, et notament le paragraphe concernant l'utilisation de
typename (commençant par « You must now use the typename and template
keywords to disambiguate dependent names ») :
<http://gcc.gnu.org/gcc-3.4/changes.html>
L'exemple et les commentaires sont clairs et explicitent le fait qu'un
nom dépendant est un nom dont le type dépend d'un paramètre templat e
(c'est peut-être plus compliqué, m'enfin bon) ;
un tel nom n'existe donc que dans le contexte d'une classe ou d'une
fonction template (sinon, le type n'est pas paramétrable, même s'il p eut
être paramétré, comme std::map<int, int>::iterator par exemple).
Le type d'un tel nom doit être précédé du mot-clef typename pour
expliciter le fait que le type que l'on souhaite utiliser pour le nom
est bien un type, et que l'on n'essaye pas de faire autre chose, soit :
-une multiplication dans le cas du pointeur ;
-un appel de fonction dans le cas que tu as écrit.
Il y a peut-être d'autres ambiguïtés similaires que le mot-clef
"typename" vient résoudre.
Ce que je dis est peut-être imparfait (et, dans ce cas, il est
probablement souhaitable de le corriger), mais au moins je comprends
mieux le problème et la façon dont il est résolu à la lecture du
document dont j'ai donné le lien.
| | > Stanislas RENAN writes: | > | > Le message n'était pas une contradiction, | > | > mais un complément d'information :-) Je remets du contexte : | > | et bien nous attendons que tu nous éclaires à ce propos (en t out cas, | > | moi). | > à quel propos exactement ? | | il y avait un problème exposé dans le message initial de cette | discussion. | L'un des participants a montré comment résoudre le problème tou t en se | posant une autre question. | J'ai proposé une réponse à cette question. | Tu as rebondi sur cette réponse et proposé un bout de code en pos ant une | nouvelle question. | | La réponse à cette dernière m'intéresse.
Je crois que tout était dit dans
tout dépend de l'intention de ton message. Si c'était pour que je comprenne, alors il restait des choses à dire, comme je l'ai exprimé.
Pour ceux qui, comme moi, ont besoin d'explications pour comprendre, je viens de lire partiellement un document sur les changements apportés à gcc 3.4, et notament le paragraphe concernant l'utilisation de typename (commençant par « You must now use the typename and template keywords to disambiguate dependent names ») :
<http://gcc.gnu.org/gcc-3.4/changes.html>
L'exemple et les commentaires sont clairs et explicitent le fait qu'un nom dépendant est un nom dont le type dépend d'un paramètre templat e (c'est peut-être plus compliqué, m'enfin bon) ; un tel nom n'existe donc que dans le contexte d'une classe ou d'une fonction template (sinon, le type n'est pas paramétrable, même s'il p eut être paramétré, comme std::map<int, int>::iterator par exemple).
Le type d'un tel nom doit être précédé du mot-clef typename pour expliciter le fait que le type que l'on souhaite utiliser pour le nom est bien un type, et que l'on n'essaye pas de faire autre chose, soit : -une multiplication dans le cas du pointeur ; -un appel de fonction dans le cas que tu as écrit.
Il y a peut-être d'autres ambiguïtés similaires que le mot-clef "typename" vient résoudre.
Ce que je dis est peut-être imparfait (et, dans ce cas, il est probablement souhaitable de le corriger), mais au moins je comprends mieux le problème et la façon dont il est résolu à la lecture du document dont j'ai donné le lien.
-- Stanislas RENAN
Gabriel Dos Reis
Repondre sur le NG writes:
| > Stanislas RENAN writes: | > | | > Stanislas RENAN writes: | > | > | > Le message n'était pas une contradiction, | > | > | > mais un complément d'information :-) Je remets du contexte : | > | > | et bien nous attendons que tu nous éclaires à ce propos (en tout cas, | > | > | moi). | > | > à quel propos exactement ? | > | | il y avait un problème exposé dans le message initial de cette | > | discussion. | > | L'un des participants a montré comment résoudre le problème tout en se | > | posant une autre question. | > | J'ai proposé une réponse à cette question. | > | Tu as rebondi sur cette réponse et proposé un bout de code en posant une | > | nouvelle question. | > | | La réponse à cette dernière m'intéresse. | > Je crois que tout était dit dans | | tout dépend de l'intention de ton message.
Groumph.
-- Gaby
Repondre sur le NG <invalid@free.fr> writes:
| > Stanislas RENAN <nomail@genigraph.fr> writes:
| > | | > Stanislas RENAN <nomail@genigraph.fr> writes:
| > | > | > Le message n'était pas une contradiction,
| > | > | > mais un complément d'information :-) Je remets du contexte :
| > | > | et bien nous attendons que tu nous éclaires à ce propos (en tout cas,
| > | > | moi).
| > | > à quel propos exactement ?
| > | | il y avait un problème exposé dans le message initial de cette
| > | discussion.
| > | L'un des participants a montré comment résoudre le problème tout en se
| > | posant une autre question.
| > | J'ai proposé une réponse à cette question.
| > | Tu as rebondi sur cette réponse et proposé un bout de code en posant une
| > | nouvelle question.
| > | | La réponse à cette dernière m'intéresse.
| > Je crois que tout était dit dans
|
| tout dépend de l'intention de ton message.
| > Stanislas RENAN writes: | > | | > Stanislas RENAN writes: | > | > | > Le message n'était pas une contradiction, | > | > | > mais un complément d'information :-) Je remets du contexte : | > | > | et bien nous attendons que tu nous éclaires à ce propos (en tout cas, | > | > | moi). | > | > à quel propos exactement ? | > | | il y avait un problème exposé dans le message initial de cette | > | discussion. | > | L'un des participants a montré comment résoudre le problème tout en se | > | posant une autre question. | > | J'ai proposé une réponse à cette question. | > | Tu as rebondi sur cette réponse et proposé un bout de code en posant une | > | nouvelle question. | > | | La réponse à cette dernière m'intéresse. | > Je crois que tout était dit dans | | tout dépend de l'intention de ton message.