Function std.experimental.checkedint.Checked.opCast
Casting operator to integral, bool
, or floating point type. If Hook
defines hookOpCast
, the call immediately returns
hook
. Otherwise, casting to bool
yields get != 0
and casting to another integral that can represent all
values of T
returns get
promoted to U
.
U opCast(U, _)()
if (isIntegral!U || isFloatingPoint!U || is(U == bool));
If a cast to a floating-point type is requested and Hook
defines
onBadCast
, the cast is verified by ensuring get == cast(T)
U(get)
. If that is not true
, hook
is returned.
If a cast to an integral type is requested and Hook
defines onBadCast
,
the cast is verified by ensuring get
and cast(U)
get
are the same arithmetic number. (Note that int(-1)
and
uint(1)
are different values arithmetically although they have the same
bitwise representation and compare equal by language rules.) If the numbers
are not arithmetically equal, hook
is
returned.
Example