Files
2018-07-17 14:15:37 +02:00

40 lines
929 B
C++

#pragma once
#if defined(_MSC_VER)
#ifdef _DEBUG
#define NO_DEFAULT default: throw 0;
#define UNREACHABLE throw 0;
#else
#define NO_DEFAULT default: __assume(0);
#define UNREACHABLE __assume(0);
#endif
#else
#ifdef _DEBUG
#define NO_DEFAULT default: throw 0;
#define UNREACHABLE throw 0;
#else
#define NO_DEFAULT default: __builtin_unreachable();
#define UNREACHABLE __builtin_unreachable();
#endif
#endif
#define foreach(var, cont) for(auto var = cont.begin(), end = cont.end(); var != end; ++var)
#ifdef WIN_MODE
#define unsigned_enum(name) enum name : unsigned
#else
#ifdef LIN_MODE
#define unsigned_enum(name) enum name
#endif
#endif
#define umap std::unordered_map
#define uset std::unordered_set
#define INIT_FUNC(name) namespace __init__##name { struct init { init()
#define INIT_FUNC_END } v; };
#define INIT_VAR(var) var; namespace __init__##var { struct init { init()
#define INIT_VAR_END } v; };