Specjalizacja szablonów - parametr wskaźnikiem

0

cześć
mam coś takiego

template<class T> void Check(T*)
template<> void Check(int*)

ale gdy wywołuję potem

Check(ptrToInt);

to i tak wywołuje mi szablon ogólny a nie szczegółowy

może ktoś powiedzieć czemu tak?

0

A co to jest ptrToInt?

0
#include <iostream>

using namespace std;

template<class T> void Check(T*);

template<> void Check(int* p)
{
    cout << "Pointer na int: " << *p << "\n";
}

template<> void Check(char* p)
{
    cout << "Pointer na char: " << p << "\n";
}

template<> void Check(float* p)
{
    cout << "Pointer na float: " << *p << '\n';
}

int main()
{
    int a = 5;
    char b[4] = "ala";
    float c = 4.0;
    Check(&a);
    Check(b);
    Check(&c);
    return 0;
}

Sprawdz czy przekazujesz dobre dane.

0

zaaaraz.
skoro mamy

template<class T> void Check(T*)

to podanie tam int* oznacza, że T jest int, bo parametrem funkcji jest T*.

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