22#if defined(BASE_LIB) | defined(BASE2017_LIB)
23# define BASE_EXPORT EXPORT_TAG
25# define BASE_EXPORT IMPORT_TAG
32using char16 = char16_t;
37using uint16 = uint16_t;
39using uint32 = uint32_t;
41using int64 =
long long int;
42using uint64 =
unsigned long long int;
45using uint64 = uint64_t;
49static constexpr int32 linuxOS = 2;
50static constexpr int32 windowsOS = 1;
53# define _EM_OVERFLOW FE_OVERFLOW
54# define _EM_INVALID FE_INVALID
55# define _EM_UNDERFLOW FE_UNDERFLOW
56# define _EM_ZERODIVIDE FE_DIVBYZERO
57 inline unsigned doClearFP() {
58 int ret = fetestexcept(FE_ALL_EXCEPT);
59 feclearexcept(FE_ALL_EXCEPT);
62# define _clearfp doClearFP
64 static constexpr int32 currentOS = linuxOS;
65 template <
typename T,
typename U>
66 constexpr const U &osval(
const T &,
const U &lval) {
return lval; }
69 static constexpr int32 currentOS = windowsOS;
70 template <
typename T,
typename U>
71 constexpr const T &osval(
const T &wval,
const U &) {
return wval; }
79# define CLEAR_FP_STATUS _clearfp()
81# define CHECK_FP_STATUS checkFPStatus(__FILE__,__LINE__)
83# define CHECK_FP_STATUS __noop()
86# define FP_S CHECK_FP_STATUS
88# define FP_C CLEAR_FP_STATUS
91BASE_EXPORT unsigned checkFPStatus(
const char *file=0,uint32 line=0);
92BASE_EXPORT std::array<char,1024> reportFPStatus(
const char *file=0,uint32 line=0);
93enum class FloatingPointCheck { Off, Warning,
Exception };
94BASE_EXPORT FloatingPointCheck floatingPointCheckStatus();
95BASE_EXPORT void floatingPointCheckStatus(FloatingPointCheck fpc);
96static constexpr bool isCurrentOS(
int i) {
return i==currentOS; }
101static constexpr bool isDebugCompile =
false;
103static constexpr bool isDebugCompile =
true;
110# define filesystem ERROR_USE_SHARED_FILESTORE_INSTEAD
115#define FOR(x,y) for (auto x=(y).begin();x!=(y).end();++x)
Base exception class for all Itasca code.
Definition baseexception.h:10
Defines automatic generation of DLL exports and imports for each system supported.
uint32 TType
class type indicator
Definition basedef.h:47
#define BASE_EXPORT
Definition basedef.h:25