21 #ifndef __TBB_tbb_config_H 22 #define __TBB_tbb_config_H 39 #if !defined(__TBB_SYMBOL) && __APPLE__ 44 #define __TBB_GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) 48 #define __TBB_CLANG_VERSION (__clang_major__ * 10000 + __clang_minor__ * 100 + __clang_patchlevel__) 52 #if __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ 59 # if defined(_M_X64)||defined(__x86_64__) // the latter for MinGW support 60 # define __TBB_x86_64 1 61 # elif defined(_M_IA64) 63 # elif defined(_M_IX86)||defined(__i386__) // the latter for MinGW support 64 # define __TBB_x86_32 1 66 # define __TBB_generic_arch 1 69 # if !__linux__ && !__APPLE__ 70 # define __TBB_generic_os 1 73 # define __TBB_generic_arch 1 75 # define __TBB_x86_64 1 78 # elif __i386__||__i386 // __i386 is for Sun OS 79 # define __TBB_x86_32 1 81 # define __TBB_generic_arch 1 85 #if __MIC__ || __MIC2__ 86 #define __TBB_DEFINE_MIC 1 89 #define __TBB_TSX_AVAILABLE (__TBB_x86_32 || __TBB_x86_64) && !__TBB_DEFINE_MIC 93 #if __INTEL_COMPILER == 9999 && __INTEL_COMPILER_BUILD_DATE == 20110811 95 #undef __INTEL_COMPILER 96 #define __INTEL_COMPILER 1210 99 #if __TBB_GCC_VERSION >= 40400 && !defined(__INTEL_COMPILER) 101 #define __TBB_GCC_WARNING_SUPPRESSION_PRESENT 1 119 #if __INTEL_COMPILER && !__INTEL_CXX11_MODE__ 121 #define __INTEL_CXX11_MODE__ (__GXX_EXPERIMENTAL_CXX0X__ || (_MSC_VER && __STDC_HOSTED__)) 124 #if __INTEL_COMPILER && (!_MSC_VER || __INTEL_CXX11_MODE__) 129 #define __TBB_CPP11_VARIADIC_TEMPLATES_PRESENT (__INTEL_CXX11_MODE__ && __VARIADIC_TEMPLATES) 132 #define __TBB_CPP11_RVALUE_REF_PRESENT ((__GXX_EXPERIMENTAL_CXX0X__ && (__TBB_GCC_VERSION >= 40300 || _LIBCPP_VERSION) || _MSC_VER >= 1600) && __INTEL_COMPILER >= 1200) 134 #define __TBB_EXCEPTION_PTR_PRESENT ( __INTEL_COMPILER > 1300 \ 136 || (__INTEL_COMPILER == 1300 && __INTEL_COMPILER_BUILD_DATE >= 20120530) \ 137 || (__INTEL_COMPILER == 1210 && __INTEL_COMPILER_BUILD_DATE >= 20120410) ) 141 #elif __TBB_GCC_VERSION >= 40404 && __TBB_GCC_VERSION < 40600 142 #define __TBB_EXCEPTION_PTR_PRESENT (__GXX_EXPERIMENTAL_CXX0X__ && __INTEL_COMPILER >= 1200) 143 #elif __TBB_GCC_VERSION >= 40600 144 #define __TBB_EXCEPTION_PTR_PRESENT (__GXX_EXPERIMENTAL_CXX0X__ && __INTEL_COMPILER >= 1300) 145 #elif _LIBCPP_VERSION 146 #define __TBB_EXCEPTION_PTR_PRESENT __GXX_EXPERIMENTAL_CXX0X__ 148 #define __TBB_EXCEPTION_PTR_PRESENT 0 150 #define __TBB_STATIC_ASSERT_PRESENT (__INTEL_CXX11_MODE__ || _MSC_VER >= 1600) 151 #define __TBB_CPP11_TUPLE_PRESENT (_MSC_VER >= 1600 || (__GXX_EXPERIMENTAL_CXX0X__ && __TBB_GCC_VERSION >= 40300)) 152 #if (__clang__ && __INTEL_COMPILER > 1400) 154 #if (__has_feature(__cxx_generalized_initializers__) && __has_include(<initializer_list>)) 155 #define __TBB_INITIALIZER_LISTS_PRESENT 1 158 #define __TBB_INITIALIZER_LISTS_PRESENT __INTEL_CXX11_MODE__ && __INTEL_COMPILER >= 1400 && (_MSC_VER >= 1800 || __TBB_GCC_VERSION >= 40400 || _LIBCPP_VERSION) 161 #define __TBB_CONSTEXPR_PRESENT __INTEL_CXX11_MODE__ && __INTEL_COMPILER >= 1400 162 #define __TBB_DEFAULTED_AND_DELETED_FUNC_PRESENT __INTEL_CXX11_MODE__ && __INTEL_COMPILER >= 1200 164 #define __TBB_NOEXCEPT_PRESENT __INTEL_CXX11_MODE__ && __INTEL_COMPILER >= 1300 && (__TBB_GCC_VERSION >= 40600 || _LIBCPP_VERSION || _MSC_VER) 165 #define __TBB_CPP11_STD_BEGIN_END_PRESENT (_MSC_VER >= 1700 || __GXX_EXPERIMENTAL_CXX0X__ && __INTEL_COMPILER >= 1310 && (__TBB_GCC_VERSION >= 40600 || _LIBCPP_VERSION)) 166 #define __TBB_CPP11_AUTO_PRESENT (_MSC_VER >= 1600 || __GXX_EXPERIMENTAL_CXX0X__ && __INTEL_COMPILER >= 1210) 167 #define __TBB_CPP11_DECLTYPE_PRESENT (_MSC_VER >= 1600 || __GXX_EXPERIMENTAL_CXX0X__ && __INTEL_COMPILER >= 1210) 168 #define __TBB_CPP11_LAMBDAS_PRESENT (__INTEL_CXX11_MODE__ && __INTEL_COMPILER >= 1200) 169 #define __TBB_CPP11_DEFAULT_FUNC_TEMPLATE_ARGS_PRESENT (_MSC_VER >= 1800 || __GXX_EXPERIMENTAL_CXX0X__ && __INTEL_COMPILER >= 1210) 174 #define __TBB_CPP11_VARIADIC_TEMPLATES_PRESENT (__has_feature(__cxx_variadic_templates__)) 175 #define __TBB_CPP11_RVALUE_REF_PRESENT (__has_feature(__cxx_rvalue_references__) && (__TBB_GCC_VERSION >= 40300 || _LIBCPP_VERSION)) 177 #define __TBB_EXCEPTION_PTR_PRESENT (__cplusplus >= 201103L && _LIBCPP_VERSION) 178 #define __TBB_STATIC_ASSERT_PRESENT __has_feature(__cxx_static_assert__) 181 #if (__GXX_EXPERIMENTAL_CXX0X__ && __has_include(<tuple>)) 182 #define __TBB_CPP11_TUPLE_PRESENT 1 184 #if (__has_feature(__cxx_generalized_initializers__) && __has_include(<initializer_list>)) 185 #define __TBB_INITIALIZER_LISTS_PRESENT 1 187 #define __TBB_CONSTEXPR_PRESENT __has_feature(__cxx_constexpr__) 188 #define __TBB_DEFAULTED_AND_DELETED_FUNC_PRESENT (__has_feature(__cxx_defaulted_functions__) && __has_feature(__cxx_deleted_functions__)) 190 #define __TBB_NOEXCEPT_PRESENT (__cplusplus >= 201103L) 191 #define __TBB_CPP11_STD_BEGIN_END_PRESENT (__has_feature(__cxx_range_for__) && _LIBCPP_VERSION) 192 #define __TBB_CPP11_AUTO_PRESENT __has_feature(__cxx_auto_type__) 193 #define __TBB_CPP11_DECLTYPE_PRESENT __has_feature(__cxx_decltype__) 194 #define __TBB_CPP11_LAMBDAS_PRESENT __has_feature(cxx_lambdas) 195 #define __TBB_CPP11_DEFAULT_FUNC_TEMPLATE_ARGS_PRESENT __has_feature(cxx_default_function_template_args) 197 #define __TBB_CPP11_VARIADIC_TEMPLATES_PRESENT __GXX_EXPERIMENTAL_CXX0X__ 198 #define __TBB_CPP11_RVALUE_REF_PRESENT __GXX_EXPERIMENTAL_CXX0X__ 202 #define __TBB_EXCEPTION_PTR_PRESENT (__GXX_EXPERIMENTAL_CXX0X__ && __TBB_GCC_VERSION >= 40404 && __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4) 203 #define __TBB_STATIC_ASSERT_PRESENT (__GXX_EXPERIMENTAL_CXX0X__ && __TBB_GCC_VERSION >= 40300) 204 #define __TBB_CPP11_TUPLE_PRESENT (__GXX_EXPERIMENTAL_CXX0X__ && __TBB_GCC_VERSION >= 40300) 205 #define __TBB_INITIALIZER_LISTS_PRESENT (__GXX_EXPERIMENTAL_CXX0X__ && __TBB_GCC_VERSION >= 40400) 207 #define __TBB_CONSTEXPR_PRESENT (__GXX_EXPERIMENTAL_CXX0X__ && __TBB_GCC_VERSION >= 40400) 208 #define __TBB_DEFAULTED_AND_DELETED_FUNC_PRESENT (__GXX_EXPERIMENTAL_CXX0X__ && __TBB_GCC_VERSION >= 40400) 209 #define __TBB_NOEXCEPT_PRESENT (__GXX_EXPERIMENTAL_CXX0X__ && __TBB_GCC_VERSION >= 40600) 210 #define __TBB_CPP11_STD_BEGIN_END_PRESENT (__GXX_EXPERIMENTAL_CXX0X__ && __TBB_GCC_VERSION >= 40600) 211 #define __TBB_CPP11_AUTO_PRESENT (__GXX_EXPERIMENTAL_CXX0X__ && __TBB_GCC_VERSION >= 40400) 212 #define __TBB_CPP11_DECLTYPE_PRESENT (__GXX_EXPERIMENTAL_CXX0X__ && __TBB_GCC_VERSION >= 40400) 213 #define __TBB_CPP11_LAMBDAS_PRESENT (__GXX_EXPERIMENTAL_CXX0X__ && __TBB_GCC_VERSION >= 40500) 214 #define __TBB_CPP11_DEFAULT_FUNC_TEMPLATE_ARGS_PRESENT (__GXX_EXPERIMENTAL_CXX0X__ && __TBB_GCC_VERSION >= 40300) 216 #define __TBB_CPP11_VARIADIC_TEMPLATES_PRESENT (_MSC_VER >= 1800) 217 #define __TBB_CPP11_RVALUE_REF_PRESENT (_MSC_VER >= 1600) 218 #define __TBB_EXCEPTION_PTR_PRESENT (_MSC_VER >= 1600) 219 #define __TBB_STATIC_ASSERT_PRESENT (_MSC_VER >= 1600) 220 #define __TBB_CPP11_TUPLE_PRESENT (_MSC_VER >= 1600) 221 #define __TBB_INITIALIZER_LISTS_PRESENT (_MSC_VER >= 1800) 222 #define __TBB_CONSTEXPR_PRESENT (_MSC_VER >= 1900) 223 #define __TBB_DEFAULTED_AND_DELETED_FUNC_PRESENT (_MSC_VER >= 1800) 224 #define __TBB_NOEXCEPT_PRESENT (_MSC_VER >= 1900) 225 #define __TBB_CPP11_STD_BEGIN_END_PRESENT (_MSC_VER >= 1700) 226 #define __TBB_CPP11_AUTO_PRESENT (_MSC_VER >= 1600) 227 #define __TBB_CPP11_DECLTYPE_PRESENT (_MSC_VER >= 1600) 228 #define __TBB_CPP11_LAMBDAS_PRESENT (_MSC_VER >= 1600) 229 #define __TBB_CPP11_DEFAULT_FUNC_TEMPLATE_ARGS_PRESENT (_MSC_VER >= 1800) 231 #define __TBB_CPP11_VARIADIC_TEMPLATES_PRESENT 0 232 #define __TBB_CPP11_RVALUE_REF_PRESENT 0 233 #define __TBB_EXCEPTION_PTR_PRESENT 0 234 #define __TBB_STATIC_ASSERT_PRESENT 0 235 #define __TBB_CPP11_TUPLE_PRESENT 0 236 #define __TBB_INITIALIZER_LISTS_PRESENT 0 237 #define __TBB_CONSTEXPR_PRESENT 0 238 #define __TBB_DEFAULTED_AND_DELETED_FUNC_PRESENT 0 239 #define __TBB_NOEXCEPT_PRESENT 0 240 #define __TBB_CPP11_STD_BEGIN_END_PRESENT 0 241 #define __TBB_CPP11_AUTO_PRESENT 0 242 #define __TBB_CPP11_DECLTYPE_PRESENT 0 243 #define __TBB_CPP11_LAMBDAS_PRESENT 0 244 #define __TBB_CPP11_DEFAULT_FUNC_TEMPLATE_ARGS_PRESENT 0 249 #define __TBB_CPP11_VARIADIC_TUPLE_PRESENT (!_MSC_VER || _MSC_VER >=1800) 250 #define __TBB_CPP11_TYPE_PROPERTIES_PRESENT (_LIBCPP_VERSION || _MSC_VER >= 1700 || (__TBB_GCC_VERSION >= 50000 && __GXX_EXPERIMENTAL_CXX0X__)) 251 #define __TBB_TR1_TYPE_PROPERTIES_IN_STD_PRESENT (__GXX_EXPERIMENTAL_CXX0X__ && __TBB_GCC_VERSION >= 40300 || _MSC_VER >= 1600) 253 #define __TBB_CPP11_IS_COPY_CONSTRUCTIBLE_PRESENT (__GXX_EXPERIMENTAL_CXX0X__ && __TBB_GCC_VERSION >= 40700 || __TBB_CPP11_TYPE_PROPERTIES_PRESENT) 256 #define __TBB_MOVE_IF_NOEXCEPT_PRESENT (__GXX_EXPERIMENTAL_CXX0X__ && __TBB_GCC_VERSION >= 40700 || _MSC_VER >= 1900 || __clang__ && _LIBCPP_VERSION && __TBB_NOEXCEPT_PRESENT) 258 #define __TBB_ALLOCATOR_TRAITS_PRESENT (__cplusplus >= 201103L && _LIBCPP_VERSION || _MSC_VER >= 1700 || \ 259 __GXX_EXPERIMENTAL_CXX0X__ && __TBB_GCC_VERSION >= 40700 && !(__TBB_GCC_VERSION == 40700 && __TBB_DEFINE_MIC) \ 261 #define __TBB_MAKE_EXCEPTION_PTR_PRESENT (__TBB_EXCEPTION_PTR_PRESENT && (_MSC_VER >= 1700 || __TBB_GCC_VERSION >= 40600 || _LIBCPP_VERSION)) 265 #if __INTEL_COMPILER && __GNUC__ && __TBB_EXCEPTION_PTR_PRESENT && !defined(__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4) 266 #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1 270 #if __MINGW32__ && __TBB_EXCEPTION_PTR_PRESENT && !defined(_GLIBCXX_ATOMIC_BUILTINS_4) 271 #define _GLIBCXX_ATOMIC_BUILTINS_4 274 #if __GNUC__ || __SUNPRO_CC || __IBMCPP__ 276 #define __TBB_ATTRIBUTE_ALIGNED_PRESENT 1 277 #elif _MSC_VER && (_MSC_VER >= 1300 || __INTEL_COMPILER) 278 #define __TBB_DECLSPEC_ALIGN_PRESENT 1 285 #if __TBB_GCC_VERSION >= 40306 || __INTEL_COMPILER >= 1200 || __clang__ 287 #define __TBB_GCC_BUILTIN_ATOMICS_PRESENT 1 290 #if __INTEL_COMPILER >= 1200 292 #define __TBB_ICC_BUILTIN_ATOMICS_PRESENT 1 295 #define __TBB_TSX_INTRINSICS_PRESENT ((__RTM__ || _MSC_VER>=1700 || __INTEL_COMPILER>=1300) && !__TBB_DEFINE_MIC && !__ANDROID__) 299 #ifndef TBB_USE_DEBUG 301 #define TBB_USE_DEBUG _DEBUG 303 #define TBB_USE_DEBUG 0 307 #ifndef TBB_USE_ASSERT 308 #define TBB_USE_ASSERT TBB_USE_DEBUG 311 #ifndef TBB_USE_THREADING_TOOLS 312 #define TBB_USE_THREADING_TOOLS TBB_USE_DEBUG 315 #ifndef TBB_USE_PERFORMANCE_WARNINGS 316 #ifdef TBB_PERFORMANCE_WARNINGS 317 #define TBB_USE_PERFORMANCE_WARNINGS TBB_PERFORMANCE_WARNINGS 319 #define TBB_USE_PERFORMANCE_WARNINGS TBB_USE_DEBUG 323 #if __TBB_DEFINE_MIC || defined(_XBOX) 324 #if TBB_USE_EXCEPTIONS 325 #error The platform does not properly support exception handling. Please do not set TBB_USE_EXCEPTIONS macro or set it to 0. 326 #elif !defined(TBB_USE_EXCEPTIONS) 327 #define TBB_USE_EXCEPTIONS 0 329 #elif !(__EXCEPTIONS || defined(_CPPUNWIND) || __SUNPRO_CC) 330 #if TBB_USE_EXCEPTIONS 331 #error Compilation settings do not support exception handling. Please do not set TBB_USE_EXCEPTIONS macro or set it to 0. 332 #elif !defined(TBB_USE_EXCEPTIONS) 333 #define TBB_USE_EXCEPTIONS 0 335 #elif !defined(TBB_USE_EXCEPTIONS) 336 #define TBB_USE_EXCEPTIONS 1 339 #if __clang__ && !__INTEL_COMPILER 340 #define __TBB_USE_OPTIONAL_RTTI __has_feature(cxx_rtti) 341 #elif defined(_CPPRTTI) 342 #define __TBB_USE_OPTIONAL_RTTI 1 344 #define __TBB_USE_OPTIONAL_RTTI (__GXX_RTTI || __RTTI || __INTEL_RTTI__) 347 #ifndef TBB_IMPLEMENT_CPP0X 351 #if (__INTEL_COMPILER && (__INTEL_COMPILER < 1500 || __INTEL_COMPILER == 1500 && __INTEL_COMPILER_UPDATE <= 1)) 352 #define TBB_IMPLEMENT_CPP0X !(_LIBCPP_VERSION && (__cplusplus >= 201103L)) 354 #define TBB_IMPLEMENT_CPP0X (__cplusplus < 201103L || (!__has_include(<thread>) && !__has_include(<condition_variable>))) 357 #define TBB_IMPLEMENT_CPP0X (__TBB_GCC_VERSION < 40400 || !__GXX_EXPERIMENTAL_CXX0X__) 359 #define TBB_IMPLEMENT_CPP0X (_MSC_VER < 1700) 362 #define TBB_IMPLEMENT_CPP0X (!__STDCPP_THREADS__) 367 #ifndef TBB_USE_CAPTURED_EXCEPTION 369 #if __TBB_EXCEPTION_PTR_PRESENT && !defined(__ia64__) 370 #define TBB_USE_CAPTURED_EXCEPTION 0 372 #define TBB_USE_CAPTURED_EXCEPTION 1 375 #if !TBB_USE_CAPTURED_EXCEPTION && !__TBB_EXCEPTION_PTR_PRESENT 376 #error Current runtime does not support std::exception_ptr. Set TBB_USE_CAPTURED_EXCEPTION and make sure that your code is ready to catch tbb::captured_exception. 381 #if TBB_USE_GCC_BUILTINS && !__TBB_GCC_BUILTIN_ATOMICS_PRESENT 382 #error "GCC atomic built-ins are not supported." 388 #ifndef __TBB_WEAK_SYMBOLS_PRESENT 389 #define __TBB_WEAK_SYMBOLS_PRESENT ( !_WIN32 && !__APPLE__ && !__sun && (__TBB_GCC_VERSION >= 40000 || __INTEL_COMPILER ) ) 393 #ifndef __TBB_DYNAMIC_LOAD_ENABLED 394 #define __TBB_DYNAMIC_LOAD_ENABLED 1 400 #if (_WIN32||_WIN64) && (__TBB_SOURCE_DIRECTLY_INCLUDED || TBB_USE_PREVIEW_BINARY) 401 #define __TBB_NO_IMPLICIT_LINKAGE 1 402 #define __TBBMALLOC_NO_IMPLICIT_LINKAGE 1 405 #ifndef __TBB_COUNT_TASK_NODES 406 #define __TBB_COUNT_TASK_NODES TBB_USE_ASSERT 409 #ifndef __TBB_TASK_GROUP_CONTEXT 410 #define __TBB_TASK_GROUP_CONTEXT 1 413 #ifndef __TBB_SCHEDULER_OBSERVER 414 #define __TBB_SCHEDULER_OBSERVER 1 417 #ifndef __TBB_FP_CONTEXT 418 #define __TBB_FP_CONTEXT __TBB_TASK_GROUP_CONTEXT 421 #if __TBB_FP_CONTEXT && !__TBB_TASK_GROUP_CONTEXT 422 #error __TBB_FP_CONTEXT requires __TBB_TASK_GROUP_CONTEXT to be enabled 425 #define __TBB_RECYCLE_TO_ENQUEUE __TBB_BUILD // keep non-official 427 #ifndef __TBB_ARENA_OBSERVER 428 #define __TBB_ARENA_OBSERVER ((__TBB_BUILD||TBB_PREVIEW_LOCAL_OBSERVER)&& __TBB_SCHEDULER_OBSERVER) 431 #ifndef __TBB_SLEEP_PERMISSION 432 #define __TBB_SLEEP_PERMISSION ((__TBB_CPF_BUILD||TBB_PREVIEW_LOCAL_OBSERVER)&& __TBB_SCHEDULER_OBSERVER) 435 #if TBB_PREVIEW_FLOW_GRAPH_TRACE 440 #define __TBB_NO_IMPLICIT_LINKAGE 1 443 #ifndef __TBB_ITT_STRUCTURE_API 444 #define __TBB_ITT_STRUCTURE_API ( !__TBB_DEFINE_MIC && (__TBB_CPF_BUILD || TBB_PREVIEW_FLOW_GRAPH_TRACE) ) 447 #if TBB_USE_EXCEPTIONS && !__TBB_TASK_GROUP_CONTEXT 448 #error TBB_USE_EXCEPTIONS requires __TBB_TASK_GROUP_CONTEXT to be enabled 451 #ifndef __TBB_TASK_PRIORITY 452 #define __TBB_TASK_PRIORITY (__TBB_TASK_GROUP_CONTEXT) 455 #if __TBB_TASK_PRIORITY && !__TBB_TASK_GROUP_CONTEXT 456 #error __TBB_TASK_PRIORITY requires __TBB_TASK_GROUP_CONTEXT to be enabled 459 #if TBB_PREVIEW_WAITING_FOR_WORKERS || __TBB_BUILD 460 #define __TBB_SUPPORTS_WORKERS_WAITING_IN_TERMINATE 1 463 #ifndef __TBB_ENQUEUE_ENFORCED_CONCURRENCY 464 #define __TBB_ENQUEUE_ENFORCED_CONCURRENCY 1 467 #if !defined(__TBB_SURVIVE_THREAD_SWITCH) && \ 468 (_WIN32 || _WIN64 || __APPLE__ || (__linux__ && !__ANDROID__)) 469 #define __TBB_SURVIVE_THREAD_SWITCH 1 472 #ifndef __TBB_DEFAULT_PARTITIONER 475 #define __TBB_DEFAULT_PARTITIONER tbb::simple_partitioner 478 #define __TBB_DEFAULT_PARTITIONER tbb::auto_partitioner 482 #ifndef __TBB_USE_PROPORTIONAL_SPLIT_IN_BLOCKED_RANGES 483 #define __TBB_USE_PROPORTIONAL_SPLIT_IN_BLOCKED_RANGES 1 486 #ifndef __TBB_ENABLE_RANGE_FEEDBACK 487 #define __TBB_ENABLE_RANGE_FEEDBACK 0 491 #define __TBB_VARIADIC_MAX _VARIADIC_MAX 494 #define __TBB_VARIADIC_MAX 5 // VS11 setting, issue resolved in VS12 495 #elif _MSC_VER == 1600 496 #define __TBB_VARIADIC_MAX 10 // VS10 setting 498 #define __TBB_VARIADIC_MAX 15 504 #if defined(WINAPI_FAMILY) && WINAPI_FAMILY == WINAPI_FAMILY_APP 505 #define __TBB_WIN8UI_SUPPORT 1 507 #define __TBB_WIN8UI_SUPPORT 0 516 #if __ANDROID__ && __TBB_GCC_VERSION <= 40403 && !__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 520 #define __TBB_GCC_64BIT_ATOMIC_BUILTINS_BROKEN 1 521 #elif __TBB_x86_32 && __TBB_GCC_VERSION == 40102 && ! __GNUC_RH_RELEASE__ 525 #define __TBB_GCC_64BIT_ATOMIC_BUILTINS_BROKEN 1 528 #if __GNUC__ && __TBB_x86_64 && __INTEL_COMPILER == 1200 529 #define __TBB_ICC_12_0_INL_ASM_FSTCW_BROKEN 1 532 #if _MSC_VER && __INTEL_COMPILER && (__INTEL_COMPILER<1110 || __INTEL_COMPILER==1110 && __INTEL_COMPILER_BUILD_DATE < 20091012) 536 #define __TBB_DEFAULT_DTOR_THROW_SPEC_BROKEN 1 539 #if !__INTEL_COMPILER && (_MSC_VER && _MSC_VER < 1500 || __TBB_GCC_VERSION && __TBB_GCC_VERSION < 40102) 542 #define __TBB_TEMPLATE_FRIENDS_BROKEN 1 546 #if __GLIBC__==2 && __GLIBC_MINOR__==3 || (__APPLE__ && ( __INTEL_COMPILER==1200 && !TBB_USE_DEBUG)) 549 #define __TBB_THROW_ACROSS_MODULE_BOUNDARY_BROKEN 1 551 #define __TBB_THROW_ACROSS_MODULE_BOUNDARY_BROKEN 0 554 #if (_WIN32||_WIN64) && __INTEL_COMPILER == 1110 556 #define __TBB_ICL_11_1_CODE_GEN_BROKEN 1 559 #if __clang__ || (__GNUC__==3 && __GNUC_MINOR__==3 && !defined(__INTEL_COMPILER)) 561 #define __TBB_PROTECTED_NESTED_CLASS_BROKEN 1 564 #if __MINGW32__ && __TBB_GCC_VERSION < 40200 567 #define __TBB_SSE_STACK_ALIGNMENT_BROKEN 1 569 #define __TBB_SSE_STACK_ALIGNMENT_BROKEN 0 572 #if __TBB_GCC_VERSION==40300 && !__INTEL_COMPILER && !__clang__ 574 #define __TBB_GCC_OPTIMIZER_ORDERING_BROKEN 1 580 #define __TBB_PRIO_INHERIT_BROKEN 1 584 #define __TBB_PLACEMENT_NEW_EXCEPTION_SAFETY_BROKEN 1 587 #if (__linux__ || __APPLE__) && __i386__ && defined(__INTEL_COMPILER) 590 #define __TBB_ICC_ASM_VOLATILE_BROKEN 1 593 #if !__INTEL_COMPILER && (_MSC_VER || __GNUC__==3 && __GNUC_MINOR__<=2) 596 #define __TBB_ALIGNOF_NOT_INSTANTIATED_TYPES_BROKEN 1 601 #define __TBB_MAIN_THREAD_AFFINITY_BROKEN 1 604 #if __GXX_EXPERIMENTAL_CXX0X__ && !defined(__EXCEPTIONS) && \ 605 ((!__INTEL_COMPILER && !__clang__ && (__TBB_GCC_VERSION>=40400 && __TBB_GCC_VERSION<40600)) || \ 606 (__INTEL_COMPILER<=1400 && (__TBB_GCC_VERSION>=40400 && __TBB_GCC_VERSION<=40801))) 612 #define __TBB_LIBSTDCPP_EXCEPTION_HEADERS_BROKEN 1 614 #define __TBB_LIBSTDCPP_EXCEPTION_HEADERS_BROKEN 0 617 #if __INTEL_COMPILER==1300 && __TBB_GCC_VERSION>=40700 && defined(__GXX_EXPERIMENTAL_CXX0X__) 623 #define __TBB_ICC_13_0_CPP11_STDLIB_SUPPORT_BROKEN 1 625 #define __TBB_ICC_13_0_CPP11_STDLIB_SUPPORT_BROKEN 0 628 #if (__GNUC__==4 && __GNUC_MINOR__==4 ) && !defined(__INTEL_COMPILER) && !defined(__clang__) 630 #define __TBB_GCC_STRICT_ALIASING_BROKEN 1 632 #if !__TBB_GCC_WARNING_SUPPRESSION_PRESENT 633 #error Warning suppression is not supported, while should. 638 #if __TBB_GCC_VERSION == 40102 && __PIC__ && !defined(__INTEL_COMPILER) && !defined(__clang__) 639 #define __TBB_GCC_CAS8_BUILTIN_INLINING_BROKEN 1 642 #if __TBB_x86_32 && ( __INTEL_COMPILER || (__GNUC__==5 && __GNUC_MINOR__==2 && __GXX_EXPERIMENTAL_CXX0X__) \ 643 || (__GNUC__==3 && __GNUC_MINOR__==3) || (__MINGW32__ && __GNUC__==4 && __GNUC_MINOR__==5) || __SUNPRO_CC ) 648 #define __TBB_FORCE_64BIT_ALIGNMENT_BROKEN 1 650 #define __TBB_FORCE_64BIT_ALIGNMENT_BROKEN 0 653 #if __GNUC__ && !__INTEL_COMPILER && !__clang__ && __TBB_DEFAULTED_AND_DELETED_FUNC_PRESENT && __TBB_GCC_VERSION < 40700 654 #define __TBB_ZERO_INIT_WITH_DEFAULTED_CTOR_BROKEN 1 657 #if _MSC_VER && _MSC_VER <= 1800 && !__INTEL_COMPILER 660 #define __TBB_CONST_REF_TO_ARRAY_TEMPLATE_PARAM_BROKEN 1 664 #define __TBB_IF_NO_COPY_CTOR_MOVE_SEMANTICS_BROKEN (_MSC_VER && (__INTEL_COMPILER >= 1300 && __INTEL_COMPILER <= 1310) && !__INTEL_CXX11_MODE__) 666 #if __TBB_CPP11_RVALUE_REF_PRESENT 670 #define __TBB_CPP11_IMPLICIT_MOVE_MEMBERS_GENERATION_BROKEN (_MSC_VER <= 1800) 671 #elif __INTEL_COMPILER 672 #define __TBB_CPP11_IMPLICIT_MOVE_MEMBERS_GENERATION_BROKEN (__INTEL_COMPILER < 1400 || __INTEL_COMPILER==1600) 674 #define __TBB_CPP11_IMPLICIT_MOVE_MEMBERS_GENERATION_BROKEN (!__has_feature(cxx_implicit_moves)) 678 #define __TBB_CPP11_DECLVAL_BROKEN (_MSC_VER == 1600 || (__GNUC__ && __TBB_GCC_VERSION < 40500) ) 681 #define __TBB_COPY_FROM_NON_CONST_REF_BROKEN (_MSC_VER == 1700 && __INTEL_COMPILER && __INTEL_COMPILER < 1600) 684 #if (__INTEL_COMPILER >=1300 && __INTEL_COMPILER <=1310) && __TBB_GCC_VERSION>=40700 && __GXX_EXPERIMENTAL_CXX0X__ 685 #define __TBB_UPCAST_OF_TUPLE_OF_REF_BROKEN 1 690 #if defined(_MSC_VER) && _MSC_VER>=1500 && !defined(__INTEL_COMPILER) 692 #define __TBB_MSVC_UNREACHABLE_CODE_IGNORED 1 695 #define __TBB_ATOMIC_CTORS (__TBB_CONSTEXPR_PRESENT && __TBB_DEFAULTED_AND_DELETED_FUNC_PRESENT && (!__TBB_ZERO_INIT_WITH_DEFAULTED_CTOR_BROKEN)) 700 #include <android/api-level.h> 701 #define __TBB_USE_DLOPEN_REENTRANCY_WORKAROUND (__ANDROID_API__ < 19) 704 #define __TBB_ALLOCATOR_CONSTRUCT_VARIADIC (__TBB_CPP11_VARIADIC_TEMPLATES_PRESENT && __TBB_CPP11_RVALUE_REF_PRESENT) 706 #define __TBB_VARIADIC_PARALLEL_INVOKE (TBB_PREVIEW_VARIADIC_PARALLEL_INVOKE && __TBB_CPP11_VARIADIC_TEMPLATES_PRESENT && __TBB_CPP11_RVALUE_REF_PRESENT) 707 #define __TBB_FLOW_GRAPH_CPP11_FEATURES (__TBB_CPP11_VARIADIC_TEMPLATES_PRESENT \ 708 && __TBB_CPP11_RVALUE_REF_PRESENT && __TBB_CPP11_AUTO_PRESENT) \ 709 && __TBB_CPP11_VARIADIC_TUPLE_PRESENT && __TBB_CPP11_DEFAULT_FUNC_TEMPLATE_ARGS_PRESENT \ 710 && !__TBB_UPCAST_OF_TUPLE_OF_REF_BROKEN 711 #define __TBB_PREVIEW_ASYNC_NODE (__TBB_FLOW_GRAPH_CPP11_FEATURES && TBB_PREVIEW_FLOW_GRAPH_NODES) 712 #define __TBB_PREVIEW_OPENCL_NODE (__TBB_FLOW_GRAPH_CPP11_FEATURES && TBB_PREVIEW_FLOW_GRAPH_NODES && !TBB_IMPLEMENT_CPP0X) 713 #define __TBB_PREVIEW_MESSAGE_BASED_KEY_MATCHING (TBB_PREVIEW_FLOW_GRAPH_FEATURES || __TBB_PREVIEW_OPENCL_NODE) 714 #define __TBB_PREVIEW_ASYNC_MSG (TBB_PREVIEW_FLOW_GRAPH_FEATURES && __TBB_FLOW_GRAPH_CPP11_FEATURES)