std1.0.0-beta-7 SafeC docs
// SafeC Standard Library — floating-point environment implementation
// safeguard: link unix -lm
#pragma once
#include <std/fenv.h>

// fenv.h C functions (all take/return fenv_t / fexcept_t which fit in int/long)
namespace std {

extern int feclearexcept(int excepts);
extern int fetestexcept(int excepts);
extern int feraiseexcept(int excepts);
extern int fegetround();
extern int fesetround(int round);
extern int fegetenv(unsigned char* envp);
extern int fesetenv(const unsigned char* envp);
extern int feholdexcept(unsigned char* envp);

int fenv_clear(int excepts)       { unsafe { return feclearexcept(excepts); } }
int fenv_test(int excepts)        { unsafe { return fetestexcept(excepts); } }
int fenv_raise(int excepts)       { unsafe { return feraiseexcept(excepts); } }
int fenv_get_round()              { unsafe { return fegetround(); } }
int fenv_set_round(int mode)      { unsafe { return fesetround(mode); } }
int fenv_save(&unsigned char env)          { unsafe { return fegetenv(env); } }
int fenv_restore(const &unsigned char env) { unsafe { return fesetenv(env); } }
int fenv_save_clear(&unsigned char env)    { unsafe { return feholdexcept(env); } }

} // namespace std