fork download
  1. #include <iostream>
  2. #include <cmath>
  3.  
  4. struct Vector2D {
  5. double x;
  6. };
  7.  
  8. bool IsEqual(const double & a, const double & b) {
  9. if (a == b)
  10. return true;
  11.  
  12. double tolerance = pow(10., -5);
  13. if (::fabs(a) < tolerance / 2.)
  14. {
  15. return ::fabs(b) < tolerance / 2.;
  16. }
  17. double diff = ::fabs((b - a) / a);
  18. return (diff < tolerance);
  19. }
  20.  
  21. bool IsEqual(Vector2D & a, Vector2D & b)
  22. { return IsEqual(a.x, b.x)); }
  23.  
  24. int main() {
  25. Vector2D v1{1};
  26. Vector2D v2{0};
  27. // This innocent call will cause an access violation
  28. // the access violation occurs *only* if fp:strict and /EHa switches are used
  29. IsEqual(v1, v2);
  30. }
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
Main.java:1: error: illegal character: '#'
#include <iostream>
^
Main.java:1: error: class, interface, or enum expected
#include <iostream>
         ^
Main.java:2: error: illegal character: '#'
#include <cmath>
^
Main.java:6: error: class, interface, or enum expected
};
^
Main.java:8: error: class, interface, or enum expected
bool IsEqual(const double & a, const double & b) {
^
Main.java:12: error: class, interface, or enum expected
  double tolerance = pow(10., -5);
  ^
Main.java:13: error: class, interface, or enum expected
  if (::fabs(a) < tolerance / 2.)
  ^
Main.java:16: error: class, interface, or enum expected
  }
  ^
Main.java:18: error: class, interface, or enum expected
  return (diff < tolerance);
  ^
Main.java:19: error: class, interface, or enum expected
}
^
Main.java:22: error: class, interface, or enum expected
{ return IsEqual(a.x, b.x)); }
                             ^
Main.java:26: error: class, interface, or enum expected
  Vector2D v2{0};
  ^
Main.java:29: error: class, interface, or enum expected
  IsEqual(v1, v2);
  ^
Main.java:30: error: class, interface, or enum expected
}
^
14 errors
stdout
Standard output is empty