为什么不会吧double转化成int
时间: 2023-09-20 14:03:02 浏览: 81
Android String类型转换为float、double和int的工具类方法
在这个例子中,编译器选择将模板类型参数 `T` 推导为 `double` 而不是 `int`,是因为 `double` 类型可以容纳更多的数值范围和精度,能够保证交换的正确性,而 `int` 类型则可能会发生精度丢失或越界的问题。因此,在进行隐式类型转换时,编译器会优先选择更为安全和准确的类型。如果想要将 `4.5` 转换成 `int` 类型进行交换,可以显式地指定模板类型参数 `T` 为 `int`,即使用 `Swap<int>(3, static_cast<int>(4.5))`。
阅读全文