Выполнять различные методы в зависимости от типа переменной шаблона

Есть ли способ определить тип переменной, передаваемой в шаблон, и вызвать функцию на основе того, является ли онаint или жеstd::string так далее...?

Например

template <class T>
struct Jam
{
     Jam(T *var)
     {
         if (typeid(var) == typeid(std::string*)
                *var = "Hello!";
         else if (typeid(var) == typeid(int*)
                *var = 25;
     }
};

Когда я пытаюсь использовать этот код, я получаю сообщение об ошибкеinvalid conversion from const char* to int, Я подозреваю, что это потому, что компилятор "раскрывает" шаблон в отдельные функции, и когда я указал новый экземпляр структурыthrow Jam<std::string>(&setme); он обнаружилvar* = 25 Заявление и отказались составить.

Есть ли правильный способ сделать это? Может быть с макро охранниками? Благодарю.

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

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