Jak rozpoznać typ zmiennej?

0

Robię listę(jak już było w jednym temacie) na szablonach. Chcę zrobić funkcję, która wyszukuje wśród elemnetów listy dane. Ale o ile przy incie i przy stringu == pozwoli na porównanie, to przy np. char* trzeba by było użyć funkcji. Więc mam pytanie - jak bym mógł sprawdzić typ elementów w liście i używać do odpowiednich typów odpowiednie funkcje?
EDIT - Już rozwiązany! Użyłem typeid()

0

Znów pojawił się problem. Jak robie listę inta, to przy funkcji strcmp() kompilator krzyczy, że nie ten typ argumentów :/. Jak to zrobić, żeby nie krzyczał? Jakieś makro czy coś?

0
    int IndexOfThis(TypDanych DANE)
    {
        Czesc<TypDanych>* Wska = First;
        int INDEX = -1;
        if(Ilosc == 0)return INDEX;
        for(int a = 0, index = 0; a != Ilosc; a++, index++)
        {
            if(typeid(TypDanych) == typeid(char*))
            {
                if(!(strcmp((char*)Wska->dane(), (char*)DANE)))return index;
            }
            else
            {
                if(Wska->dane() == DANE)return index;
            }
            Wska = Wska->next();
        }
        return -1;
    } 

To kod funkcji, dane() zwraca dane umieszczone w tym elemencie(klasa czesc), first to 1 element, -1 sygnalizuje nieznalezienie.

1

Hmmm... a nie łaska dodać sobie funkcję:

char* operator==(const char*& s1, const char*& s2) { return strcmp(s1, s2); }
0

Tak dałem operator == - bool operator==(const char* s1, std::string s2) { return strcmp(s1, s2.c_str()); }

1 użytkowników online, w tym zalogowanych: 0, gości: 1