[c++] Why use static_cast<int>(x) instead of (int)x?