Приоритет при выборе перегруженных шаблонных функций в C ++

У меня есть следующая проблема:

class Base
{
};

class Derived : public Base
{
};

class Different
{
};

class X
{
public:
  template 
  static const char *func(T *data)
  {
    // Do something generic...
    return "Generic";
  }

  static const char *func(Base *data)
  {
    // Do something specific...
    return "Specific";
  }
};

Если я сейчас сделаю

Derived derived;
Different different;
std::cout < "Derived: " < X::func(&derived) < std::endl;
std::cout < "Different: " < X::func(&different) < std::endl;

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

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