#include <iostream>
#include <typeinfo>

template <class T>
void foo(T value)
{
    std::cout << "type-name = " << typeid(T).name() << "\n";
    std::cout << "value = " << value << "\n\n";
}

int main()
{
    char c = 66;
    unsigned char uc = 66;
    signed char sc = 66;

    foo(c);
    foo(uc);
    foo(sc);
}
