Remove CDS_CXX11_DELETE_DEFINITION_SUPPORT and emulating code
[libcds.git] / cds / compiler / icl / defs.h
index e43603df5b05de4130d01eedc95de3e1c317e0c1..8094f321ef882ddf48ab95442b192e1c7c183316 100644 (file)
 #   define alignof __alignof__
 #endif
 
-// Memory leaks detection (debug build only)
-//#ifdef _DEBUG
-//#   define _CRTDBG_MAP_ALLOC
-//#   define _CRTDBG_MAPALLOC
-//#   include <stdlib.h>
-//#   include <crtdbg.h>
-//#   define CDS_MSVC_MEMORY_LEAKS_DETECTING_ENABLED
-//#endif
-
-#if CDS_COMPILER_VERSION < 1400
-#   define CDS_CONSTEXPR
-#   define CDS_CONSTEXPR_CONST const
-#else
-#   define CDS_CONSTEXPR    constexpr
-#   define CDS_CONSTEXPR_CONST constexpr const
-#endif
-
-// noexcept is not yet supported
-#if CDS_COMPILER_VERSION < 1400
-#   define CDS_NOEXCEPT_SUPPORT
-#   define CDS_NOEXCEPT_SUPPORT_(expr)
-#else
-#   define CDS_NOEXCEPT_SUPPORT        noexcept
-#   define CDS_NOEXCEPT_SUPPORT_(expr) noexcept(expr)
-#endif
+#define CDS_CONSTEXPR    constexpr
+#define CDS_CONSTEXPR_CONST constexpr const
 
+#define CDS_NOEXCEPT_SUPPORT        noexcept
+#define CDS_NOEXCEPT_SUPPORT_(expr) noexcept(expr)
 
 // Lambda (ICL 12 +)
-#if CDS_COMPILER_VERSION >= 1200
-#   define CDS_CXX11_LAMBDA_SUPPORT
-#endif
+#define CDS_CXX11_LAMBDA_SUPPORT
 
 // RValue (ICL 10+)
-#if CDS_COMPILER_VERSION >= 1200
-#   define CDS_RVALUE_SUPPORT
-#   define CDS_MOVE_SEMANTICS_SUPPORT
-#endif
-
-// Default template arguments for function templates (ICL 12.1+)
-#if CDS_COMPILER_VERSION >= 1201
-#   define CDS_CXX11_DEFAULT_FUNCTION_TEMPLATE_ARGS_SUPPORT
-#endif
-
-// C++11 delete definition ( function declaration = delete)
-#if CDS_COMPILER_VERSION >= 1200
-#   define CDS_CXX11_DELETE_DEFINITION_SUPPORT
-#endif
-
-// C++11 explicitly-defaulted function (= default) [std 8.4.2 [dcl.fct.def.default]]
-#if CDS_COMPILER_VERSION >= 1200
-#   define CDS_CXX11_EXPLICITLY_DEFAULTED_FUNCTION_SUPPORT
-#endif
-
-// Variadic template support (ICL 12.1+)
-#if CDS_COMPILER_VERSION >= 1201
-#   define CDS_CXX11_VARIADIC_TEMPLATE_SUPPORT     1
-#endif
-
-// C++11 template alias
-#if CDS_COMPILER_VERSION >= 1201
-#   define CDS_CXX11_TEMPLATE_ALIAS_SUPPORT
-#endif
+#define CDS_RVALUE_SUPPORT
+#define CDS_MOVE_SEMANTICS_SUPPORT
 
 // C++11 inline namespace
-#if CDS_COMPILER_VERSION >= 1400
-#   define CDS_CXX11_INLINE_NAMESPACE_SUPPORT
-#endif
-
-// Explicit conversion operator
-//#if CDS_COMPILER_VERSION >= 1800
-//#   define CDS_CXX11_EXPLICIT_CONVERSION_OPERATOR_SUPPORT
-//#endif
-
-// Thread support library (thread, mutex, condition variable)
-#if _MSC_VER >= 1700
-    // MS VC 11+
-#   define CDS_CXX11_STDLIB_THREAD
-#   define CDS_CXX11_STDLIB_MUTEX
-#   define CDS_CXX11_STDLIB_CONDITION_VARIABLE
-#   define CDS_CXX11_STDLIB_CHRONO
-#endif
-
-#if defined( CDS_CXX11_EXPLICITLY_DEFAULTED_FUNCTION_SUPPORT ) && defined(CDS_MOVE_SEMANTICS_SUPPORT) && CDS_COMPILER_VERSION < 1400
-    // Intel C++ bug: move ctor & assignment operator cannot be defaulted
-    // http://software.intel.com/en-us/forums/topic/394395
-#   define CDS_DISABLE_DEFAULT_MOVE_CTOR
-#endif
-
+#define CDS_CXX11_INLINE_NAMESPACE_SUPPORT
 
 // *************************************************
 // Alignment macro