Default Argument Improvements?
Frits van Bommel
fvbommel at REMwOVExCAPSs.nl
Thu Feb 1 17:22:42 PST 2007
Brian Byrne wrote:
> Vector4f set( float in_x = float.nan, float in_y = float.nan, float in_z = float.nan, float in_w = float.nan ) {
> x = ( in_x == float.nan ) ? x : in_x;
> y = ( in_y == float.nan ) ? y : in_y;
> z = ( in_z == float.nan ) ? z : in_z;
> w = ( in_w == float.nan ) ? w : in_w;
> }
Those assignments always set the variables to in_*.
The funny thing about NaNs: all normal comparisons return false. Use
std.math.isnan(in_x) instead of (in_x == float.nan) if you prefer code
that works ;).
More information about the Digitalmars-d-learn
mailing list