[Generics] Bug étrange du compilateur
Salut à tous,
j'aurai besoin de testeurs possédant visual c++ 2005 afin de tenter de compiler un petit programme.
La marche à suivre :
- Création d'un projet de type CLR Console Application
- Copie-collage de ce code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| #include "stdafx.h"
using namespace System;
generic<typename T>
T Max(T A, T B )
{
return A > B ? A : B;
}
generic<typename T>
T Min(T A, T B )
{
return A < B ? A : B;
}
int main(array<System::String ^> ^args)
{
Console::WriteLine(Max(10,15));
Console::WriteLine(Min(2,10));
return 0;
} |
Build Solution...
Et chez moi ... ca compile, et ca marche
Chez Farscape, erreur C2676
D'après Sutter, ce n'est pas possible à faire en .Net avec les générics. On ne peut pas comparer 2 types générics ainsi.
Une solution serait de passer par une condition sur un IComparable.
Sauf que ... chez moi, ca compile bien et le msil généré a l'air tout à fait correct.
J'aimerai que vous regardiez si ca compile chez vous et que vous me donniez vos versions de visual C++ (express, pro, team suite, etc ...)
Merci