Loading...
Searching...
No Matches
Go to the documentation of this file.
16#define _TDE_FORWARD(x) x
17#define _TDE_CONCAT(a, b) a##b
18#define _TDE_STR_IMPL(x) #x
19#define _TDE_STR(x) _TDE_STR_IMPL(x)
21#if defined _WIN32 || defined __CYGWIN__
23#define TDE_PUBLIC __declspec(dllexport)
25#define TDE_PUBLIC __declspec(dllimport)
29#define TDE_PUBLIC __attribute__((visibility("default")))
35#if defined _WIN32 || defined __CYGWIN__
36#define TDE_INLINE inline __forceinline
38#define TDE_INLINE inline __attribute__((always_inline))
42#define TDE_CXX_NAME "Clang "
43#define TDE_CXX_VERSION __clang_version__
45#define TDE_CXX_NAME "GCC "
46#define TDE_CXX_VERSION \
48 "." _TDE_STR(__GNUC_MINOR__) "." _TDE_STR(__GNUC_PATCHLEVEL__)
50#defube TDE_CXX_NAME "unknown "
51#define TDE_CXX_VERSION "unknown"
55#define _tde_defer_impl(expr, cb_name, ph_name, line) \
56 auto _TDE_CONCAT(cb_name, line) = [&](int*) { expr; }; \
57 std::unique_ptr<int, decltype(_TDE_CONCAT(cb_name, line))> _TDE_CONCAT( \
60 nullptr, _TDE_CONCAT(cb_name, line) \
64#define tde_defer(expr) \
65 _tde_defer_impl(expr, _tde_defer_cb_, _tde_defer_ph_, __LINE__)