fork(2) download
  1. #include <iostream>
  2. #include <cmath>
  3.  
  4. using namespace std;
  5.  
  6.  
  7. template <typename T> int sgn(T val) {
  8. return (T(0) < val) - (val < T(0));
  9. }
  10.  
  11. template <class T, class U> auto safe_pow(T val, U p) -> decltype(pow(val, p)) {
  12. return pow(abs(val), p) * sgn(val);
  13. }
  14.  
  15.  
  16. int main() {
  17. cout << safe_pow(-0.2, 0.2) << endl;
  18.  
  19. return 0;
  20. }
Success #stdin #stdout 0s 3460KB
stdin
Standard input is empty
stdout
-0.72478