J'apprenais des idiomes C++ quand je suis tombé sur un exemple de code pour SFINAE, j'étais perplexe avec le code.Comment est la fonction de classe sans définition ne causant pas d'erreur
Remarque: is_ptr()
n'a aucune définition.
J'ai compilé le code moi-même, pas d'erreurs de compilation concernant l'absence de définition de fonction, pourquoi?
sizeof()
a été utilisé sur l'un des appels, il apparemment exécuté sur les retours des fonctions, mais là encore, il n'y avait pas de définition. Comment était-ce possible?template <typename T> struct is_pointer { template <typename U> static char is_ptr(U*); template <typename X, typename Y> static char is_ptr(X Y::*); template <typename U> static char is_ptr(U (*)()); static double is_ptr(...); static T t; enum {value = sizeof(is_ptr(t)) == sizeof(char)}; };
Code postal ** pas ** comme image mais comme texte au format code! –
Avez-vous une instance de cette classe de modèle quelque part? – user0042
Je suis sur mon appareil mobile en ce moment, donc je ne peux pas coller un code. La seule utilisation que j'avais était is_pointer :: valeur dans la fonction principale –
user3414321