Sélection d'une fonction membre en utilisant différentes conditions enable_if

Je suis en train de déterminer la version d'un membre de la fonction est appelée fonction du modèle de classe paramètre. J'ai essayé ceci:

#include <iostream>
#include <type_traits>

template<typename T>
struct Point
{
  void MyFunction(typename std::enable_if<std::is_same<T, int>::value, T >::type* = 0)
  {
    std::cout << "T is int." << std::endl;
  }

  void MyFunction(typename std::enable_if<!std::is_same<T, int>::value, float >::type* = 0)
  {
    std::cout << "T is not int." << std::endl;
  }
};

int main()
{
  Point<int> intPoint;
  intPoint.MyFunction();

  Point<float> floatPoint;
  floatPoint.MyFunction();
}

laquelle j'ai pensé est de dire "utiliser la première MyFunction si T est de type int, et l'utilisation de la deuxième MyFunction si T n'est pas de type int, mais j'ai des erreurs de compilation en disant: "erreur: aucun type nommé ‘type’ struct std::enable_if’". Quelqu'un peut-il point de ce que je fais de mal ici?

source d'informationauteur David Doria