#include <iostream>
#include <type_traits>

template <typename T>
void func(T value)
{
    if (std::is_pointer<T>::value)
        std::cout << "Pointer\n";
    else
        std::cout << "No Pointer\n";
}

int main()
{
    int a;
    int *b = &a;
    int &c = a;
    
    func(a);
    func(b);
    func(c);
}
