impossible de déduire un parametre template ?
Hello :),
En compilant ce code sous visual (testé sous VC6, VS2005 et VC++2008 express) j'obtiens une erreur précisant que le paramètre template C de la fonction test(...) ne peux pas être déduit. Pourtant je précise explicitement test<T>, donc il ne devrait pas y avoir de processus de déduction...
Comeau online me dit ok. Donc c'est une bourde de Visual ?
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| template<typename T>
class IsClassT
{
private:
typedef char One;
typedef struct { char a[2]; } Two;
template<typename C> static One test(int C::*);
template<typename C> static Two test(...);
public:
enum { Yes = sizeof(IsClassT<T>::test<T>(0)) == 1 };
enum { No = !Yes };
};
int main()
{
int i = IsClassT< IsClassT<int> >::Yes;
return 0;
} |