unittest { assert(isNaN(pow(float.nan,0))); assert(isNaN(pow(double.nan,0))); assert(isNaN(pow(real.nan,0))); }
I've created a fix already, but have to wait for PR #7783 to be merged.
@berni44 created dlang/phobos pull request #7819 "Fix Issue 21606 - pow(NaN,0) gives 1 not NaN" fixing this issue: - Fix Issue 21606 - pow(NaN,0) gives 1 not NaN https://github.com/dlang/phobos/pull/7819
I just found out, that this is a weird exception of the rule, that all calculations including NaNs should be NaN...