Выбор функции-члена с использованием различных условий enable_if

Я пытаюсь определить, какая версия функции-члена вызывается на основе параметра шаблона класса. Я попробовал это:

#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();
}

я подумал: «используйте первую MyFunction, если T - int, и используйте вторую MyFunction, если T - не int, но я получаю ошибки компилятора, говорящие« error: нет типа с именем 'type' в 'struct std :: enable_if' " Кто-нибудь может указать, что я здесь делаю не так?

Ответы на вопрос(1)

Ваш ответ на вопрос