3 #ifndef CDSLIB_COMPILER_DEFS_H
4 #define CDSLIB_COMPILER_DEFS_H
7 Required C++11 features:
8 - move semantics [CDS_RVALUE_SUPPORT, CDS_MOVE_SEMANTICS_SUPPORT]
9 - lambda function [CDS_CXX11_LAMBDA_SUPPORT]
10 - variadic template [CDS_CXX11_VARIADIC_TEMPLATE_SUPPORT]
11 - template alias [CDS_CXX11_TEMPLATE_ALIAS_SUPPORT]
12 - explicit conversion operator [CDS_CXX11_EXPLICIT_CONVERSION_OPERATOR_SUPPORT]
13 - default template argument for function [CDS_CXX11_DEFAULT_FUNCTION_TEMPLATE_ARGS_SUPPORT]
14 - explicit default functions (=default) [CDS_CXX11_EXPLICITLY_DEFAULTED_FUNCTION_SUPPORT]
15 - =delete [CDS_CXX11_DELETE_DEFINITION_SUPPORT]
18 #if CDS_COMPILER == CDS_COMPILER_MSVC
19 # include <cds/compiler/vc/defs.h>
20 #elif CDS_COMPILER == CDS_COMPILER_GCC
21 # include <cds/compiler/gcc/defs.h>
22 #elif CDS_COMPILER == CDS_COMPILER_INTEL
23 # include <cds/compiler/icl/defs.h>
24 #elif CDS_COMPILER == CDS_COMPILER_CLANG
25 # include <cds/compiler/clang/defs.h>
26 #elif CDS_COMPILER == CDS_COMPILER_UNKNOWN
27 # error Unknown compiler. Compilation aborted
29 # error Unknown value of CDS_COMPILER macro
36 #ifndef CDS_EXPORT_API
37 # define CDS_EXPORT_API
41 #include <cds/compiler/feature_tsan.h>
43 #endif // #ifndef CDSLIB_COMPILER_DEFS_H