数字函数 return 值是否需要显式 static_cast?
Is explicit static_cast required for nuneric function return value?
例如,我想将一个带符号的 char 值 v
饱和转换为一个无符号的值。
以下两种实现有什么区别吗?一个没有显式静态转换,另一个有。
unsigned char saturate_cast_to_uchar(signed char v)
{
return std::max(static_cast<int>(v), 0);
}
unsigned char saturate_cast_to_uchar(signed char v)
{
return static_cast<unsigned char>(std::max(static_cast<int>(v), 0));
}
Is there any difference for the following two implementations?
行为没有区别。从 int
到 unsigned char
的隐式转换与从 int
到 unsigned char
的静态转换具有完全相同的行为
例如,我想将一个带符号的 char 值 v
饱和转换为一个无符号的值。
以下两种实现有什么区别吗?一个没有显式静态转换,另一个有。
unsigned char saturate_cast_to_uchar(signed char v)
{
return std::max(static_cast<int>(v), 0);
}
unsigned char saturate_cast_to_uchar(signed char v)
{
return static_cast<unsigned char>(std::max(static_cast<int>(v), 0));
}
Is there any difference for the following two implementations?
行为没有区别。从 int
到 unsigned char
的隐式转换与从 int
到 unsigned char