What makes this
long l = 1;
char c = static_cast<char>(l);
float f = 1.0f;
int i = static_cast<int>(f);
better than this
long l = 1;
char c = (char)l;
float f = 1.0f;
int i = (int)f;
when casting one primitive data type to another?
I've got much of legacy code that uses the second style for type casting in similar situations, so this is also a question about should I or may I not perform full-scale revision of that code.