Strona 1 z 1

Jak sprawdzić jakiego typu jest zmienna w szablonie klasy?

Napisane: czwartek, 17 czerwca 2010, 19:27
przez mar3
Mam przykładowy szablon funkcji:

Code: Zaznacz cały

template<typename T, typename T2>
T dodaj(T zm1, T2 zm2)
{
   return zm1+zm2;
}
Jak sprawdzić jakiego typu jest na przykład zmienna "zm1"?

Re: szablon klasy

Napisane: czwartek, 8 lipca 2010, 18:58
przez Morfidon
Możesz spróbować np. tak:

Code: Zaznacz cały

#include <iostream>
#include <string>

using namespace std;
template<typename T, typename T2>
string dodaj(T zm1, T2 zm2)
{
    int isInt;
    string isString = " ";
    if (typeid(zm1) == typeid(isInt))
      return "first argument is int";
    else if (typeid(zm1) == typeid(isString))
      return "first argument is string";
      
    return "something else";
   //return zm1+zm2;
}

int main()
{
    string sampleString = "sample text";
    cout <<  dodaj(sampleString, 4) << endl;
    
    return 0;
}
Sorry, że dopiero teraz, ale nie zauważyłem topicu.

Re: Jak sprawdzić jakiego typu jest zmienna w szablonie klasy?

Napisane: niedziela, 1 sierpnia 2010, 19:09
przez mar3
Bardzo dziękuję za pomoc.