使用static_cast
作为strager答案.我建议不要使用隐式转换(或者甚至是C++源代码中的C风格转换),原因如下:
隐式强制转换是编译器警告的常见来源,这意味着您可能会在构建中添加噪声(现在或稍后添加更好的警告标志时).
你身后的下一个维护程序员会看到隐式演员,需要知道它是故意行为还是错误/错误.这样static_cast
可以使您的意图立即变得明显.
static_cast
而其他C++风格的演员阵容很容易grep
处理.
您应该使用static_cast
或依赖隐式强制转换:
int64_t a = 1234; double d = static_cast(a); double f = a;