Un collaborateur essaie de compiler avec Visual C++ du code que j'ai
écrit pour g++. Il est à l'étranger et je n'ai pas accès à dson
compilateur. Visual C++ refuse le code suivant qui compile avec Comeau
online et g++.
Pouvez-vous confirmer que le code est légal ? Quelqu'un d'expérimenté
avec Visual C++ peut-il me conseiller un workaround ?
La version de 2003. Je ne connais pas l'intitulé officiel, mais c'est celui qui comprend '2003'. Je pense que ça correspond au compilateur C++ 7.1.
L'erreur concerne le type de retour qui n'est pas le même dans la déclaration et la définition.
Jean-Marc Bourguet
Marc Duflot writes:
Bonjour.
Un collaborateur essaie de compiler avec Visual C++ du code que j'ai écrit pour g++. Il est à l'étranger et je n'ai pas accès à dson compilateur. Visual C++ refuse le code suivant qui compile avec Comeau online et g++.
Pouvez-vous confirmer que le code est légal ? Quelqu'un d'expérimenté avec Visual C++ peut-il me conseiller un workaround ?
Je ne vois pas de probleme, mais je ne suis pas un champion non plus. Quel est le message d'erreur de VC++?
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
Marc Duflot <marc.duflot@gmail.com> writes:
Bonjour.
Un collaborateur essaie de compiler avec Visual C++ du code que j'ai écrit
pour g++. Il est à l'étranger et je n'ai pas accès à dson
compilateur. Visual C++ refuse le code suivant qui compile avec Comeau
online et g++.
Pouvez-vous confirmer que le code est légal ? Quelqu'un d'expérimenté avec
Visual C++ peut-il me conseiller un workaround ?
Je ne vois pas de probleme, mais je ne suis pas un champion non plus.
Quel est le message d'erreur de VC++?
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
Un collaborateur essaie de compiler avec Visual C++ du code que j'ai écrit pour g++. Il est à l'étranger et je n'ai pas accès à dson compilateur. Visual C++ refuse le code suivant qui compile avec Comeau online et g++.
Pouvez-vous confirmer que le code est légal ? Quelqu'un d'expérimenté avec Visual C++ peut-il me conseiller un workaround ?
Je ne vois pas de probleme, mais je ne suis pas un champion non plus. Quel est le message d'erreur de VC++?
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
Marc Duflot
Jean-Marc Bourguet wrote:
Marc Duflot writes:
Bonjour.
Un collaborateur essaie de compiler avec Visual C++ du code que j'ai écrit pour g++. Il est à l'étranger et je n'ai pas accès à dson compilateur. Visual C++ refuse le code suivant qui compile avec Comeau online et g++.
Pouvez-vous confirmer que le code est légal ? Quelqu'un d'expérimenté avec Visual C++ peut-il me conseiller un workaround ?
Je ne vois pas de probleme, mais je ne suis pas un champion non plus. Quel est le message d'erreur de VC++?
'unable to match function definition to an existing declaration' puis le compilateur donne la définition et la déclaration. Il ne comprend pas qu'il y a accord entre les types donnés à la spécialisation et ceux à la déclaration du template.
Jean-Marc Bourguet wrote:
Marc Duflot <marc.duflot@gmail.com> writes:
Bonjour.
Un collaborateur essaie de compiler avec Visual C++ du code que j'ai écrit
pour g++. Il est à l'étranger et je n'ai pas accès à dson
compilateur. Visual C++ refuse le code suivant qui compile avec Comeau
online et g++.
Pouvez-vous confirmer que le code est légal ? Quelqu'un d'expérimenté avec
Visual C++ peut-il me conseiller un workaround ?
Je ne vois pas de probleme, mais je ne suis pas un champion non plus.
Quel est le message d'erreur de VC++?
'unable to match function definition to an existing declaration' puis le
compilateur donne la définition et la déclaration. Il ne comprend pas
qu'il y a accord entre les types donnés à la spécialisation et ceux à la
déclaration du template.
Un collaborateur essaie de compiler avec Visual C++ du code que j'ai écrit pour g++. Il est à l'étranger et je n'ai pas accès à dson compilateur. Visual C++ refuse le code suivant qui compile avec Comeau online et g++.
Pouvez-vous confirmer que le code est légal ? Quelqu'un d'expérimenté avec Visual C++ peut-il me conseiller un workaround ?
Je ne vois pas de probleme, mais je ne suis pas un champion non plus. Quel est le message d'erreur de VC++?
'unable to match function definition to an existing declaration' puis le compilateur donne la définition et la déclaration. Il ne comprend pas qu'il y a accord entre les types donnés à la spécialisation et ceux à la déclaration du template.
Jean-Marc Bourguet
Marc Duflot writes:
Jean-Marc Bourguet wrote:
Marc Duflot writes:
Bonjour.
Un collaborateur essaie de compiler avec Visual C++ du code que j'ai écrit pour g++. Il est à l'étranger et je n'ai pas accès à dson compilateur. Visual C++ refuse le code suivant qui compile avec Comeau online et g++.
Pouvez-vous confirmer que le code est légal ? Quelqu'un d'expérimenté avec Visual C++ peut-il me conseiller un workaround ? Je ne vois pas de probleme, mais je ne suis pas un champion non plus.
Quel est le message d'erreur de VC++?
'unable to match function definition to an existing declaration' puis le compilateur donne la définition et la déclaration. Il ne comprend pas qu'il y a accord entre les types donnés à la spécialisation et ceux à la déclaration du template.
Est-ce que VC++ s'emelerait les pincaux avec le type de 1.0? Un workaround possible:
std::vector<double> v (e.f<double>(1.0));
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
Marc Duflot <marc.duflot@gmail.com> writes:
Jean-Marc Bourguet wrote:
Marc Duflot <marc.duflot@gmail.com> writes:
Bonjour.
Un collaborateur essaie de compiler avec Visual C++ du code que j'ai écrit
pour g++. Il est à l'étranger et je n'ai pas accès à dson
compilateur. Visual C++ refuse le code suivant qui compile avec Comeau
online et g++.
Pouvez-vous confirmer que le code est légal ? Quelqu'un d'expérimenté avec
Visual C++ peut-il me conseiller un workaround ?
Je ne vois pas de probleme, mais je ne suis pas un champion non plus.
Quel est le message d'erreur de VC++?
'unable to match function definition to an existing declaration' puis le
compilateur donne la définition et la déclaration. Il ne comprend pas qu'il
y a accord entre les types donnés à la spécialisation et ceux à la
déclaration du template.
Est-ce que VC++ s'emelerait les pincaux avec le type de 1.0?
Un workaround possible:
std::vector<double> v (e.f<double>(1.0));
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
Un collaborateur essaie de compiler avec Visual C++ du code que j'ai écrit pour g++. Il est à l'étranger et je n'ai pas accès à dson compilateur. Visual C++ refuse le code suivant qui compile avec Comeau online et g++.
Pouvez-vous confirmer que le code est légal ? Quelqu'un d'expérimenté avec Visual C++ peut-il me conseiller un workaround ? Je ne vois pas de probleme, mais je ne suis pas un champion non plus.
Quel est le message d'erreur de VC++?
'unable to match function definition to an existing declaration' puis le compilateur donne la définition et la déclaration. Il ne comprend pas qu'il y a accord entre les types donnés à la spécialisation et ceux à la déclaration du template.
Est-ce que VC++ s'emelerait les pincaux avec le type de 1.0? Un workaround possible:
std::vector<double> v (e.f<double>(1.0));
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
Jean-Marc Bourguet
Marc Duflot writes:
Jean-Marc Bourguet wrote:
Marc Duflot writes:
Bonjour.
Un collaborateur essaie de compiler avec Visual C++ du code que j'ai écrit pour g++. Il est à l'étranger et je n'ai pas accès à dson compilateur. Visual C++ refuse le code suivant qui compile avec Comeau online et g++.
Pouvez-vous confirmer que le code est légal ? Quelqu'un d'expérimenté avec Visual C++ peut-il me conseiller un workaround ? Je ne vois pas de probleme, mais je ne suis pas un champion non plus.
Quel est le message d'erreur de VC++?
'unable to match function definition to an existing declaration' puis le compilateur donne la définition et la déclaration. Il ne comprend pas qu'il y a accord entre les types donnés à la spécialisation et ceux à la déclaration du template.
Est-ce que VC++ s'emelerait les pincaux avec le type de 1.0? Un workaround possible (je n'ai pas VC++):
std::vector<double> v (e.f<double>(1.0));
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
Marc Duflot <marc.duflot@gmail.com> writes:
Jean-Marc Bourguet wrote:
Marc Duflot <marc.duflot@gmail.com> writes:
Bonjour.
Un collaborateur essaie de compiler avec Visual C++ du code que j'ai écrit
pour g++. Il est à l'étranger et je n'ai pas accès à dson
compilateur. Visual C++ refuse le code suivant qui compile avec Comeau
online et g++.
Pouvez-vous confirmer que le code est légal ? Quelqu'un d'expérimenté avec
Visual C++ peut-il me conseiller un workaround ?
Je ne vois pas de probleme, mais je ne suis pas un champion non plus.
Quel est le message d'erreur de VC++?
'unable to match function definition to an existing declaration' puis le
compilateur donne la définition et la déclaration. Il ne comprend pas qu'il
y a accord entre les types donnés à la spécialisation et ceux à la
déclaration du template.
Est-ce que VC++ s'emelerait les pincaux avec le type de 1.0?
Un workaround possible (je n'ai pas VC++):
std::vector<double> v (e.f<double>(1.0));
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
Un collaborateur essaie de compiler avec Visual C++ du code que j'ai écrit pour g++. Il est à l'étranger et je n'ai pas accès à dson compilateur. Visual C++ refuse le code suivant qui compile avec Comeau online et g++.
Pouvez-vous confirmer que le code est légal ? Quelqu'un d'expérimenté avec Visual C++ peut-il me conseiller un workaround ? Je ne vois pas de probleme, mais je ne suis pas un champion non plus.
Quel est le message d'erreur de VC++?
'unable to match function definition to an existing declaration' puis le compilateur donne la définition et la déclaration. Il ne comprend pas qu'il y a accord entre les types donnés à la spécialisation et ceux à la déclaration du template.
Est-ce que VC++ s'emelerait les pincaux avec le type de 1.0? Un workaround possible (je n'ai pas VC++):
std::vector<double> v (e.f<double>(1.0));
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
Marc Duflot
Jean-Marc Bourguet wrote:
Marc Duflot writes:
Jean-Marc Bourguet wrote:
Marc Duflot writes:
Bonjour.
Un collaborateur essaie de compiler avec Visual C++ du code que j'ai écrit pour g++. Il est à l'étranger et je n'ai pas accès à dson compilateur. Visual C++ refuse le code suivant qui compile avec Comeau online et g++.
Pouvez-vous confirmer que le code est légal ? Quelqu'un d'expérimenté avec Visual C++ peut-il me conseiller un workaround ?
Je ne vois pas de probleme, mais je ne suis pas un champion non plus. Quel est le message d'erreur de VC++?
'unable to match function definition to an existing declaration' puis le compilateur donne la définition et la déclaration. Il ne comprend pas qu'il y a accord entre les types donnés à la spécialisation et ceux à la déclaration du template.
Est-ce que VC++ s'emelerait les pincaux avec le type de 1.0? Un workaround possible (je n'ai pas VC++):
std::vector<double> v (e.f<double>(1.0));
Merci mais ce n'est pas ça. L'erreur se produit avant l'appel à f, dès la spécialisation. Voici un cas encore plus réduit, avec le message d'erreur complet. Dans ce cas, il se plaint que les types de retour sont différents alors qu'ils sont manifestement les mêmes dans le reste du message d'erreur.
Microsoft (R) 32 bits C/C++ Version standard du compilateur 13.10.3077 pour 80x86 Copyright (C) Microsoft Corp 1984-2002. Tous droits réservés.
test-phong8.cxx test-phong8.cxx(19) : error C2785: 'Trait<T1,T1>::type C<T1>::foo(T1,T2)' et 'Trait<T1,T2>::type C<T1>::foo(int,double)' ont des types de retour différents with [ T1=int ] and [ T1=int, T2=double ] test-phong8.cxx(11) : voir la déclaration de 'C<T1>::foo' with [ T1=int ] test-phong8.cxx(16) : voir la déclaration de 'C<T1>::foo' with [ T1=int ] test-phong8.cxx(19) : error C2910: 'foo' : ne peut pas être explicitement spécialisé
/////////////////
Si le Trait ne dépend pas de T2, ça passe. (Dans le cas réel, type dépend de T2, bien entendu.)
Jean-Marc Bourguet wrote:
Marc Duflot <marc.duflot@gmail.com> writes:
Jean-Marc Bourguet wrote:
Marc Duflot <marc.duflot@gmail.com> writes:
Bonjour.
Un collaborateur essaie de compiler avec Visual C++ du code que j'ai écrit
pour g++. Il est à l'étranger et je n'ai pas accès à dson
compilateur. Visual C++ refuse le code suivant qui compile avec Comeau
online et g++.
Pouvez-vous confirmer que le code est légal ? Quelqu'un d'expérimenté avec
Visual C++ peut-il me conseiller un workaround ?
Je ne vois pas de probleme, mais je ne suis pas un champion non plus.
Quel est le message d'erreur de VC++?
'unable to match function definition to an existing declaration' puis le
compilateur donne la définition et la déclaration. Il ne comprend pas qu'il
y a accord entre les types donnés à la spécialisation et ceux à la
déclaration du template.
Est-ce que VC++ s'emelerait les pincaux avec le type de 1.0?
Un workaround possible (je n'ai pas VC++):
std::vector<double> v (e.f<double>(1.0));
Merci mais ce n'est pas ça. L'erreur se produit avant l'appel à f, dès
la spécialisation. Voici un cas encore plus réduit, avec le message
d'erreur complet. Dans ce cas, il se plaint que les types de retour sont
différents alors qu'ils sont manifestement les mêmes dans le reste du
message d'erreur.
Microsoft (R) 32 bits C/C++ Version standard du compilateur 13.10.3077
pour 80x86
Copyright (C) Microsoft Corp 1984-2002. Tous droits réservés.
test-phong8.cxx
test-phong8.cxx(19) : error C2785: 'Trait<T1,T1>::type
C<T1>::foo(T1,T2)' et 'Trait<T1,T2>::type C<T1>::foo(int,double)'
ont des types de retour différents
with
[
T1=int
]
and
[
T1=int,
T2=double
]
test-phong8.cxx(11) : voir la déclaration de 'C<T1>::foo'
with
[
T1=int
]
test-phong8.cxx(16) : voir la déclaration de 'C<T1>::foo'
with
[
T1=int
]
test-phong8.cxx(19) : error C2910: 'foo' : ne peut pas être
explicitement spécialisé
/////////////////
Si le Trait ne dépend pas de T2, ça passe. (Dans le cas réel, type
dépend de T2, bien entendu.)
Un collaborateur essaie de compiler avec Visual C++ du code que j'ai écrit pour g++. Il est à l'étranger et je n'ai pas accès à dson compilateur. Visual C++ refuse le code suivant qui compile avec Comeau online et g++.
Pouvez-vous confirmer que le code est légal ? Quelqu'un d'expérimenté avec Visual C++ peut-il me conseiller un workaround ?
Je ne vois pas de probleme, mais je ne suis pas un champion non plus. Quel est le message d'erreur de VC++?
'unable to match function definition to an existing declaration' puis le compilateur donne la définition et la déclaration. Il ne comprend pas qu'il y a accord entre les types donnés à la spécialisation et ceux à la déclaration du template.
Est-ce que VC++ s'emelerait les pincaux avec le type de 1.0? Un workaround possible (je n'ai pas VC++):
std::vector<double> v (e.f<double>(1.0));
Merci mais ce n'est pas ça. L'erreur se produit avant l'appel à f, dès la spécialisation. Voici un cas encore plus réduit, avec le message d'erreur complet. Dans ce cas, il se plaint que les types de retour sont différents alors qu'ils sont manifestement les mêmes dans le reste du message d'erreur.
Microsoft (R) 32 bits C/C++ Version standard du compilateur 13.10.3077 pour 80x86 Copyright (C) Microsoft Corp 1984-2002. Tous droits réservés.
test-phong8.cxx test-phong8.cxx(19) : error C2785: 'Trait<T1,T1>::type C<T1>::foo(T1,T2)' et 'Trait<T1,T2>::type C<T1>::foo(int,double)' ont des types de retour différents with [ T1=int ] and [ T1=int, T2=double ] test-phong8.cxx(11) : voir la déclaration de 'C<T1>::foo' with [ T1=int ] test-phong8.cxx(16) : voir la déclaration de 'C<T1>::foo' with [ T1=int ] test-phong8.cxx(19) : error C2910: 'foo' : ne peut pas être explicitement spécialisé
/////////////////
Si le Trait ne dépend pas de T2, ça passe. (Dans le cas réel, type dépend de T2, bien entendu.)
-- 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
--
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
-- 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
Pour vérifier, j'ai compilé avec Comeau Online : OK, avec Intel C++ 8.1: OK mais g++ 3.4.3 se plante en décelant une ambiguïté lors de la spécialisation.
Je crois que cette fois, c'est un bug dans g++. Je n'ai pas de g++ 4.0.x sous la main. Quelqu'un peut-il tester le code ci-dessus pour voir si le bug est corrigé dans les dernières versions ? Sinon, je ferais un rapport de bug.
Pour vérifier, j'ai compilé avec Comeau Online : OK, avec Intel C++ 8.1:
OK mais g++ 3.4.3 se plante en décelant une ambiguïté lors de la
spécialisation.
Je crois que cette fois, c'est un bug dans g++. Je n'ai pas de g++ 4.0.x
sous la main. Quelqu'un peut-il tester le code ci-dessus pour voir si le
bug est corrigé dans les dernières versions ? Sinon, je ferais un
rapport de bug.
Pour vérifier, j'ai compilé avec Comeau Online : OK, avec Intel C++ 8.1: OK mais g++ 3.4.3 se plante en décelant une ambiguïté lors de la spécialisation.
Je crois que cette fois, c'est un bug dans g++. Je n'ai pas de g++ 4.0.x sous la main. Quelqu'un peut-il tester le code ci-dessus pour voir si le bug est corrigé dans les dernières versions ? Sinon, je ferais un rapport de bug.