#include <iostream>
#include <typeinfo>
#include <cxxabi.h>

using namespace std;

template <typename T>
const char* name_for_type (T& type) {
	int status;
	return abi::__cxa_demangle(typeid(type).name(), 0, 0, &status);
}

int main() {
    char test[]  {1,2,3,4};
    char test2[] {1,2};
    char* penis = "peins";
    
    cout << name_for_type(test) << endl;
	cout << name_for_type(test2) << endl;
    cout << name_for_type(penis) << endl;
    
	return 0;
}