Jak sprawdzić jakiego typu jest zmienna w szablonie klasy?

Problemy i ich rozwiązania w C++.
mar3
Bywalec
Bywalec
Posty: 44
Dołączył(a): poniedziałek, 15 czerwca 2009, 16:15

Jak sprawdzić jakiego typu jest zmienna w szablonie klasy?

Post 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"?
Morfidon
Administrator
Administrator
Posty: 1332
Dołączył(a): wtorek, 5 sierpnia 2008, 21:48
Contact:

Re: szablon klasy

Post 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.
mar3
Bywalec
Bywalec
Posty: 44
Dołączył(a): poniedziałek, 15 czerwca 2009, 16:15

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

Post przez mar3 »

Bardzo dziękuję za pomoc.
Post Reply