315ff626626440c4e100681bae0567ae5b672d47
[libcds.git] / cds / compiler / defs.h
1 //$$CDS-header$$
2
3 #ifndef __CDS_ARH_COMPILER_DEFS_H
4 #define __CDS_ARH_COMPILER_DEFS_H
5
6 /*
7     Required C++11 features:
8     - template alias [CDS_CXX11_TEMPLATE_ALIAS_SUPPORT]
9     - explicit conversion operator [CDS_CXX11_EXPLICIT_CONVERSION_OPERATOR_SUPPORT]
10 */
11
12 #if CDS_COMPILER == CDS_COMPILER_MSVC
13 #   include <cds/compiler/vc/defs.h>
14 #elif CDS_COMPILER == CDS_COMPILER_GCC
15 #   include <cds/compiler/gcc/defs.h>
16 #elif CDS_COMPILER == CDS_COMPILER_INTEL
17 #   include <cds/compiler/icl/defs.h>
18 #elif CDS_COMPILER == CDS_COMPILER_CLANG
19 #   include <cds/compiler/clang/defs.h>
20 #elif CDS_COMPILER == CDS_COMPILER_UNKNOWN
21 #   error Unknown compiler. Compilation aborted
22 #else
23 #   error Unknown value of CDS_COMPILER macro
24 #endif
25
26 #ifndef CDS_STDCALL
27 #   define CDS_STDCALL
28 #endif
29
30 #ifndef CDS_EXPORT_API
31 #   define CDS_EXPORT_API
32 #endif
33
34 #endif  // #ifndef __CDS_ARH_COMPILER_DEFS_H