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