G+Smo  25.01.0
Geometry + Simulation Modules
 
Loading...
Searching...
No Matches
HelperMacros.h
1#ifndef UNITTEST_HELPERMACROS_H
2#define UNITTEST_HELPERMACROS_H
3
4#include "Config.h"
5
6#define UNITTEST_MULTILINE_MACRO_BEGIN do {
7
8#if defined(UNITTEST_WIN32) && !defined(UNITTEST_COMPILER_IS_MSVC6)
9 #define UNITTEST_MULTILINE_MACRO_END \
10 } __pragma(warning(push)) __pragma(warning(disable:4127)) while (0) __pragma(warning(pop))
11#else
12 #define UNITTEST_MULTILINE_MACRO_END } while(0)
13#endif
14
15
16#ifdef UNITTEST_WIN32_DLL
17 #define UNITTEST_IMPORT __declspec(dllimport)
18 #define UNITTEST_EXPORT __declspec(dllexport)
19
20 #ifdef UNITTEST_DLL_EXPORT
21 #define UNITTEST_LINKAGE UNITTEST_EXPORT
22 #define UNITTEST_IMPEXP_TEMPLATE
23 #else
24 #define UNITTEST_LINKAGE UNITTEST_IMPORT
25 #define UNITTEST_IMPEXP_TEMPLATE extern
26 #endif
27
28 #define UNITTEST_STDVECTOR_LINKAGE(T) \
29 __pragma(warning(push)) \
30 __pragma(warning(disable:4231)) \
31 UNITTEST_IMPEXP_TEMPLATE template class UNITTEST_LINKAGE std::allocator< T >; \
32 UNITTEST_IMPEXP_TEMPLATE template class UNITTEST_LINKAGE std::vector< T >; \
33 __pragma(warning(pop))
34#else
35 #define UNITTEST_IMPORT
36 #define UNITTEST_EXPORT
37 #define UNITTEST_LINKAGE
38 #define UNITTEST_IMPEXP_TEMPLATE
39 #define UNITTEST_STDVECTOR_LINKAGE(T)
40#endif
41
42#ifdef UNITTEST_WIN32
43 #define UNITTEST_JMPBUF jmp_buf
44 #define UNITTEST_SETJMP setjmp
45 #define UNITTEST_LONGJMP longjmp
46#elif defined UNITTEST_POSIX
47 #define UNITTEST_JMPBUF std::jmp_buf
48 #define UNITTEST_SETJMP setjmp
49 #define UNITTEST_LONGJMP std::longjmp
50#endif
51
52#endif