Wykonuj różne metody na podstawie typu zmiennej szablonu

Czy istnieje sposób na określenie typu zmiennej przekazywanej do szablonu i wywołanie funkcji na podstawie, czy jest toint lubstd::string itp...?

Na przykład

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

Gdy próbuję użyć tego kodu, pojawia się błądinvalid conversion from const char* to int. Podejrzewam, że dzieje się tak, ponieważ kompilator „rozszerza” szablon na osobne funkcje i gdy określiłem nowe wystąpienie strukturythrow Jam<std::string>(&setme); wykryłvar* = 25 oświadczenie i odmówił kompilacji.

Czy jest odpowiedni sposób, aby to zrobić? Może ze strażnikami makro? Dzięki.

questionAnswers(2)

yourAnswerToTheQuestion