int
がある場合はdouble
に変換し、double
をint
に戻して変換すると、最初から同じ値を返すことになりますか?int-> double-> intは、値を保持することが保証されていますか?
int passThroughDouble(int input)
{
double d = input;
return d;
}
アムは、私がpassThroughDouble(x) == x
すべてのためint
のx
ことが保証:他の言葉では、この機能を与えられましたか?
intのサイズによって異なります。 64ビット整数の場合、これは間違いなく機能しません。 32ビットintの場合、*おそらく*動作します。 –
'assert(std :: numeric_limits :: digits <= std :: numeric_limits :: digits); - http://en.cppreference.com/w/cpp/types/numeric_limits/digits –
sehe
@sehe:確かに'static_assert'を意味します。 :P – GManNickG