void pointerInfo(auto *objectPointer)
std::cout << "address of object is: " << objectPointer << "\t"
<< "type of the object is: " << typeid(*objectPointer).name() << "\t"
<< "value of object is: " << (*objectPointer) << "\t"
<< "sizeof pointer is: " << (sizeof(objectPointer)) << "\t"
<< "size of object: " << (sizeof(*objectPointer)) << "\n\n";
int i = 345;
bool b = true;
double d = 23.44;
// now its time to take a dynamic pointer that can pint to anything , luckily size of (long long) is 8 and it can hold an address";
long long address;
std::cout << "\ndynamic object\n\n";
address = (long long)&i;
pointerInfo((int *)address); // in the action you have to say interpret as what (int) but if you want more dynamic without mentioning interpretation information again you have to implement however i guess there are something builtin as well in c++
address = (long long)&b;
address = (long long)&d;