いや
T oprator ** (T a, T b) { return a * ((int)b % 2 == 0 ? 1 :-1);} とか?