int main ()
{
int num = 10;
int *pointer = #
double *dp;
const int *cp;
cp = pointer; // GOOD
// pointer = cp; // BAD needs conversion
pointer = (int*)cp; // GOOD: c-style cast c-style cast fucks all
// pointer = static_cast<int*>(cp); // BAD: static_cast
pointer = const_cast<int*>(cp); // GOOD: const_cast
// pointer = reinterpret_cast<int*>(cp); // BAD: reinterpret_cast casts away constness
// dp = pointer; // error: cannot convert ‘int*’ to ‘double*’ in assignment
dp = (double*)pointer; // GOOD
// dp = static_cast<double*>(pointer); // error: invalid static_cast from type ‘int*’ to type ‘double*’
dp = reinterpret_cast<double*>(pointer); // GOOD
}
aW50IG1haW4gKCkKewogICAgaW50IG51bSA9IDEwOwogICAgaW50ICpwb2ludGVyID0gJm51bTsKICAgIGRvdWJsZSAqZHA7CiAgICBjb25zdCBpbnQgKmNwOwogICAgY3AgPSBwb2ludGVyOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBHT09ECi8vICBwb2ludGVyID0gY3A7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEJBRCAgICAgICAgICAgICAgICAgICAgICAgbmVlZHMgY29udmVyc2lvbgogICAgcG9pbnRlciA9IChpbnQqKWNwOyAgICAgICAgICAgICAgICAgICAgICAvLyBHT09EOiAgYy1zdHlsZSBjYXN0ICAgICAgIGMtc3R5bGUgY2FzdCBmdWNrcyBhbGwKLy8gIHBvaW50ZXIgPSAgc3RhdGljX2Nhc3Q8aW50Kj4oY3ApOyAgICAgICAgLy8gQkFEOiAgIHN0YXRpY19jYXN0CiAgICBwb2ludGVyID0gIGNvbnN0X2Nhc3Q8aW50Kj4oY3ApOyAgICAgICAgIC8vIEdPT0Q6ICBjb25zdF9jYXN0Ci8vICBwb2ludGVyID0gIHJlaW50ZXJwcmV0X2Nhc3Q8aW50Kj4oY3ApOyAgIC8vIEJBRDogICByZWludGVycHJldF9jYXN0ICAgY2FzdHMgYXdheSBjb25zdG5lc3MKCi8vICBkcCA9IHBvaW50ZXI7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGVycm9yOiBjYW5ub3QgY29udmVydCDigJhpbnQq4oCZIHRvIOKAmGRvdWJsZSrigJkgaW4gYXNzaWdubWVudAogICAgZHAgPSAoZG91YmxlKilwb2ludGVyOyAgICAgICAgICAgICAgICAgICAvLyBHT09ECi8vICBkcCA9IHN0YXRpY19jYXN0PGRvdWJsZSo+KHBvaW50ZXIpOyAgICAgIC8vIGVycm9yOiBpbnZhbGlkIHN0YXRpY19jYXN0IGZyb20gdHlwZSDigJhpbnQq4oCZIHRvIHR5cGUg4oCYZG91YmxlKuKAmQogICAgZHAgPSByZWludGVycHJldF9jYXN0PGRvdWJsZSo+KHBvaW50ZXIpOyAvLyBHT09ECgp9