int TestMain () #endif { TestTypeDefinitionPresence2(aligned_space<int, 1> ); TestTypeDefinitionPresence( atomic<int> ); TestTypeDefinitionPresence( cache_aligned_allocator<int> ); TestTypeDefinitionPresence( tbb_hash_compare<int> ); TestTypeDefinitionPresence2(concurrent_hash_map<int, int> ); TestTypeDefinitionPresence2(concurrent_unordered_map<int, int> ); TestTypeDefinitionPresence( concurrent_bounded_queue<int> ); TestTypeDefinitionPresence( deprecated::concurrent_queue<int> ); TestTypeDefinitionPresence( strict_ppl::concurrent_queue<int> ); TestTypeDefinitionPresence( combinable<int> ); TestTypeDefinitionPresence( concurrent_vector<int> ); TestTypeDefinitionPresence( enumerable_thread_specific<int> ); #if !__SUNPRO_CC TestTypeDefinitionPresence( flow::graph ); TestTypeDefinitionPresence( flow::source_node<int> ); TestTypeDefinitionPresence2( flow::function_node<int, int> ); typedef std::tuple<int, int> intpair; TestTypeDefinitionPresence2( flow::multifunction_node<int, intpair> ); TestTypeDefinitionPresence( flow::split_node<intpair> ); TestTypeDefinitionPresence( flow::continue_node<int> ); TestTypeDefinitionPresence( flow::overwrite_node<int> ); TestTypeDefinitionPresence( flow::write_once_node<int> ); TestTypeDefinitionPresence( flow::broadcast_node<int> ); TestTypeDefinitionPresence( flow::buffer_node<int> ); TestTypeDefinitionPresence( flow::queue_node<int> ); TestTypeDefinitionPresence( flow::sequencer_node<int> ); TestTypeDefinitionPresence( flow::priority_queue_node<int> ); TestTypeDefinitionPresence( flow::limiter_node<int> ); typedef tbb::flow::interface6::internal::graph_policy_namespace::graph_buffer_policy join_policy; const join_policy a = tbb::flow::interface6::internal::graph_policy_namespace::queueing; TestTypeDefinitionPresence2( flow::join_node< intpair, a > ); squelch_unused_warning(a); #endif // !__SUNPRO_CC TestTypeDefinitionPresence( mutex ); TestTypeDefinitionPresence( null_mutex ); TestTypeDefinitionPresence( null_rw_mutex ); TestTypeDefinitionPresence( queuing_mutex ); TestTypeDefinitionPresence( queuing_rw_mutex ); TestTypeDefinitionPresence( recursive_mutex ); TestTypeDefinitionPresence( spin_mutex ); TestTypeDefinitionPresence( spin_rw_mutex ); TestTypeDefinitionPresence( critical_section ); TestTypeDefinitionPresence( reader_writer_lock ); #if __TBB_TASK_GROUP_CONTEXT TestTypeDefinitionPresence( tbb_exception ); TestTypeDefinitionPresence( captured_exception ); TestTypeDefinitionPresence( movable_exception<int> ); #if !TBB_USE_CAPTURED_EXCEPTION TestTypeDefinitionPresence( internal::tbb_exception_ptr ); #endif /* !TBB_USE_CAPTURED_EXCEPTION */ TestTypeDefinitionPresence( task_group_context ); TestTypeDefinitionPresence( task_group ); TestTypeDefinitionPresence( task_handle<Body> ); #endif /* __TBB_TASK_GROUP_CONTEXT */ TestTypeDefinitionPresence( blocked_range3d<int> ); TestFuncDefinitionPresence( parallel_invoke, (const Body&, const Body&), void ); TestFuncDefinitionPresence( parallel_do, (int*, int*, const Body1&), void ); TestFuncDefinitionPresence( parallel_for_each, (int*, int*, const Body1&), void ); TestFuncDefinitionPresence( parallel_for, (int, int, int, const Body1&), void ); TestFuncDefinitionPresence( parallel_for, (const tbb::blocked_range<int>&, const Body2&, const tbb::simple_partitioner&), void ); TestFuncDefinitionPresence( parallel_reduce, (const tbb::blocked_range<int>&, const int&, const Body1a&, const Body1b&, const tbb::auto_partitioner&), int ); TestFuncDefinitionPresence( parallel_reduce, (const tbb::blocked_range<int>&, Body2&, tbb::affinity_partitioner&), void ); TestFuncDefinitionPresence( parallel_scan, (const tbb::blocked_range2d<int>&, Body3&, const tbb::auto_partitioner&), void ); TestFuncDefinitionPresence( parallel_sort, (int*, int*), void ); TestTypeDefinitionPresence( pipeline ); TestFuncDefinitionPresence( parallel_pipeline, (size_t, const tbb::filter_t<void,void>&), void ); TestTypeDefinitionPresence( task ); TestTypeDefinitionPresence( empty_task ); TestTypeDefinitionPresence( task_list ); TestTypeDefinitionPresence( task_scheduler_init ); TestTypeDefinitionPresence( task_scheduler_observer ); TestTypeDefinitionPresence( tbb_thread ); TestTypeDefinitionPresence( tbb_allocator<int> ); TestTypeDefinitionPresence( zero_allocator<int> ); TestTypeDefinitionPresence( tick_count ); #if !__TBB_TEST_SECONDARY TestExceptionClassesExports(); return Harness::Done; #endif }
int TestMain () #endif { TestTypeDefinitionPresence2(aligned_space<int, 1> ); TestTypeDefinitionPresence( atomic<int> ); TestTypeDefinitionPresence( cache_aligned_allocator<int> ); TestTypeDefinitionPresence( tbb_hash_compare<int> ); TestTypeDefinitionPresence2(concurrent_hash_map<int, int> ); TestTypeDefinitionPresence2(concurrent_unordered_map<int, int> ); TestTypeDefinitionPresence( concurrent_bounded_queue<int> ); TestTypeDefinitionPresence( deprecated::concurrent_queue<int> ); TestTypeDefinitionPresence( strict_ppl::concurrent_queue<int> ); TestTypeDefinitionPresence( combinable<int> ); TestTypeDefinitionPresence( concurrent_vector<int> ); TestTypeDefinitionPresence( enumerable_thread_specific<int> ); TestTypeDefinitionPresence( mutex ); TestTypeDefinitionPresence( null_mutex ); TestTypeDefinitionPresence( null_rw_mutex ); TestTypeDefinitionPresence( queuing_mutex ); TestTypeDefinitionPresence( queuing_rw_mutex ); TestTypeDefinitionPresence( recursive_mutex ); TestTypeDefinitionPresence( spin_mutex ); TestTypeDefinitionPresence( spin_rw_mutex ); TestTypeDefinitionPresence( critical_section ); TestTypeDefinitionPresence( reader_writer_lock ); TestTypeDefinitionPresence( tbb_exception ); TestTypeDefinitionPresence( captured_exception ); TestTypeDefinitionPresence( movable_exception<int> ); #if !TBB_USE_CAPTURED_EXCEPTION TestTypeDefinitionPresence( internal::tbb_exception_ptr ); #endif /* !TBB_USE_CAPTURED_EXCEPTION */ TestTypeDefinitionPresence( blocked_range3d<int> ); TestFuncDefinitionPresence( parallel_invoke, (const Body&, const Body&), void ); TestFuncDefinitionPresence( parallel_do, (int*, int*, const Body1&), void ); TestFuncDefinitionPresence( parallel_for_each, (int*, int*, const Body1&), void ); TestFuncDefinitionPresence( parallel_for, (int, int, int, const Body1&), void ); TestFuncDefinitionPresence( parallel_for, (const tbb::blocked_range<int>&, const Body2&, const tbb::simple_partitioner&), void ); TestFuncDefinitionPresence( parallel_reduce, (const tbb::blocked_range<int>&, const int&, const Body1a&, const Body1b&, const tbb::auto_partitioner&), int ); TestFuncDefinitionPresence( parallel_reduce, (const tbb::blocked_range<int>&, Body2&, tbb::affinity_partitioner&), void ); TestFuncDefinitionPresence( parallel_scan, (const tbb::blocked_range2d<int>&, Body3&, const tbb::auto_partitioner&), void ); TestFuncDefinitionPresence( parallel_sort, (int*, int*), void ); TestTypeDefinitionPresence( pipeline ); TestTypeDefinitionPresence( task ); TestTypeDefinitionPresence( empty_task ); TestTypeDefinitionPresence( task_list ); TestTypeDefinitionPresence( task_group_context ); TestTypeDefinitionPresence( task_group ); TestTypeDefinitionPresence( task_handle<Body> ); TestTypeDefinitionPresence( task_scheduler_init ); TestTypeDefinitionPresence( task_scheduler_observer ); TestTypeDefinitionPresence( tbb_thread ); TestTypeDefinitionPresence( tbb_allocator<int> ); TestTypeDefinitionPresence( zero_allocator<int> ); TestTypeDefinitionPresence( tick_count ); #if !__TBB_TEST_SECONDARY return Harness::Done; #endif }