Ugh don't I love making silly posts like these. ref won't work for any types, not just floats, since it uses the .init property.
My real problem was that I was using assignment in my first example instead of returning a value. Using map with ref doesn't make much sense. So my complaints are void. On 6/3/11, Andrej Mitrovic <andrej.mitrov...@gmail.com> wrote: > Offending line in map: > alias typeof(_fun(.ElementType!R.init)) ElementType; > > So it tires to pass .init which will be nan for floats. > > A quick workaround would be: > static if (isFloatingPoint!(ElementType!R)) > { > .ElementType!R x; > alias typeof(_fun(x)) ElementType; > } > else > { > alias typeof(_fun(.ElementType!R.init)) ElementType; > } > > Also, my example was just a little flawed (semantically speaking), > since I was missing a return statement: > > double[10] arr; > arr[] = 1.0; > auto result = map!((ref double sample){ return 1.0; })(arr[]); > > This will then work with that change. >