最初のケースで肯定的な結果が得られ、2番目のケースで否定的な結果が得られた理由を誰かが説明できますか.
auto r1 = -3.0L;
auto r2 = 2.0L;
writeln(typeid(r1)); // real
writeln(typeid(r2)); // real
writeln(typeid(r1 ^^ r2)); // real
writeln(r1 ^^ r2); // 9
writeln(typeid(-3.0L)); // real
writeln(typeid(2.0L)); // real
writeln(typeid(-3.0L ^^ 2.0L)); // real
writeln(-3.0L ^^ 2.0L); // -9