C++ 总是使用 checked_cast 而不是 static_cast?

C++ always use checked_cast instead of static_cast?

当我读到 C++ 转换运算符时,我通常会看到 4 种类型的转换,例如: Cast types

const_cast
dynamic_cast
reinterpret_cast
static_cast

但是 checked_cast 如此处所述呢 checked_cast

我们是否应该始终使用 checked_cast 而不是 static_cast 作为经验法则?

checked_cast 仅替换 static_cast.

那篇文章假定您永远不想进行有损转换。如果你有一个 float 并且 想要 最大的 int 不大于那个,checked_cast 是不正确的。

它还假设转换是双向的。如果不是,则格式错误。