├── .gitignore ├── CMakeLists.txt ├── LICENSE.md ├── README.md ├── benchmarks ├── benchmarks.cpp ├── boost │ ├── LICENSE_1_0.txt │ ├── README.txt │ ├── array.hpp │ ├── assert.hpp │ ├── atomic.hpp │ ├── atomic │ │ ├── atomic.hpp │ │ ├── atomic_flag.hpp │ │ ├── capabilities.hpp │ │ ├── detail │ │ │ ├── atomic_flag.hpp │ │ │ ├── atomic_template.hpp │ │ │ ├── bitwise_cast.hpp │ │ │ ├── caps_gcc_alpha.hpp │ │ │ ├── caps_gcc_arm.hpp │ │ │ ├── caps_gcc_atomic.hpp │ │ │ ├── caps_gcc_ppc.hpp │ │ │ ├── caps_gcc_sparc.hpp │ │ │ ├── caps_gcc_sync.hpp │ │ │ ├── caps_gcc_x86.hpp │ │ │ ├── caps_linux_arm.hpp │ │ │ ├── caps_msvc_arm.hpp │ │ │ ├── caps_msvc_x86.hpp │ │ │ ├── caps_windows.hpp │ │ │ ├── config.hpp │ │ │ ├── int_sizes.hpp │ │ │ ├── interlocked.hpp │ │ │ ├── link.hpp │ │ │ ├── lockpool.hpp │ │ │ ├── operations.hpp │ │ │ ├── operations_fwd.hpp │ │ │ ├── operations_lockfree.hpp │ │ │ ├── ops_cas_based.hpp │ │ │ ├── ops_emulated.hpp │ │ │ ├── ops_extending_cas_based.hpp │ │ │ ├── ops_gcc_alpha.hpp │ │ │ ├── ops_gcc_arm.hpp │ │ │ ├── ops_gcc_atomic.hpp │ │ │ ├── ops_gcc_ppc.hpp │ │ │ ├── ops_gcc_sparc.hpp │ │ │ ├── ops_gcc_sync.hpp │ │ │ ├── ops_gcc_x86.hpp │ │ │ ├── ops_gcc_x86_dcas.hpp │ │ │ ├── ops_linux_arm.hpp │ │ │ ├── ops_msvc_arm.hpp │ │ │ ├── ops_msvc_common.hpp │ │ │ ├── ops_msvc_x86.hpp │ │ │ ├── ops_windows.hpp │ │ │ ├── pause.hpp │ │ │ ├── platform.hpp │ │ │ └── storage_type.hpp │ │ └── fences.hpp │ ├── config.hpp │ ├── config │ │ ├── abi │ │ │ ├── borland_prefix.hpp │ │ │ ├── borland_suffix.hpp │ │ │ ├── msvc_prefix.hpp │ │ │ └── msvc_suffix.hpp │ │ ├── abi_prefix.hpp │ │ ├── abi_suffix.hpp │ │ ├── auto_link.hpp │ │ ├── compiler │ │ │ ├── borland.hpp │ │ │ ├── clang.hpp │ │ │ ├── codegear.hpp │ │ │ ├── comeau.hpp │ │ │ ├── common_edg.hpp │ │ │ ├── compaq_cxx.hpp │ │ │ ├── cray.hpp │ │ │ ├── digitalmars.hpp │ │ │ ├── gcc.hpp │ │ │ ├── gcc_xml.hpp │ │ │ ├── greenhills.hpp │ │ │ ├── hp_acc.hpp │ │ │ ├── intel.hpp │ │ │ ├── kai.hpp │ │ │ ├── metrowerks.hpp │ │ │ ├── mpw.hpp │ │ │ ├── nvcc.hpp │ │ │ ├── pathscale.hpp │ │ │ ├── pgi.hpp │ │ │ ├── sgi_mipspro.hpp │ │ │ ├── sunpro_cc.hpp │ │ │ ├── vacpp.hpp │ │ │ ├── visualc.hpp │ │ │ └── xlcpp.hpp │ │ ├── no_tr1 │ │ │ ├── cmath.hpp │ │ │ ├── complex.hpp │ │ │ ├── functional.hpp │ │ │ ├── memory.hpp │ │ │ └── utility.hpp │ │ ├── platform │ │ │ ├── aix.hpp │ │ │ ├── amigaos.hpp │ │ │ ├── beos.hpp │ │ │ ├── bsd.hpp │ │ │ ├── cloudabi.hpp │ │ │ ├── cray.hpp │ │ │ ├── cygwin.hpp │ │ │ ├── haiku.hpp │ │ │ ├── hpux.hpp │ │ │ ├── irix.hpp │ │ │ ├── linux.hpp │ │ │ ├── macos.hpp │ │ │ ├── qnxnto.hpp │ │ │ ├── solaris.hpp │ │ │ ├── symbian.hpp │ │ │ ├── vms.hpp │ │ │ ├── vxworks.hpp │ │ │ └── win32.hpp │ │ ├── posix_features.hpp │ │ ├── requires_threads.hpp │ │ ├── select_compiler_config.hpp │ │ ├── select_platform_config.hpp │ │ ├── select_stdlib_config.hpp │ │ ├── stdlib │ │ │ ├── dinkumware.hpp │ │ │ ├── libcomo.hpp │ │ │ ├── libcpp.hpp │ │ │ ├── libstdcpp3.hpp │ │ │ ├── modena.hpp │ │ │ ├── msl.hpp │ │ │ ├── roguewave.hpp │ │ │ ├── sgi.hpp │ │ │ ├── stlport.hpp │ │ │ └── vacpp.hpp │ │ ├── suffix.hpp │ │ ├── user.hpp │ │ └── warning_disable.hpp │ ├── core │ │ ├── enable_if.hpp │ │ ├── noncopyable.hpp │ │ └── swap.hpp │ ├── cstdint.hpp │ ├── current_function.hpp │ ├── detail │ │ ├── is_xxx.hpp │ │ ├── iterator.hpp │ │ └── workaround.hpp │ ├── exception │ │ └── exception.hpp │ ├── functional │ │ ├── hash │ │ │ └── hash_fwd.hpp │ │ └── hash_fwd.hpp │ ├── limits.hpp │ ├── lockfree │ │ ├── detail │ │ │ ├── atomic.hpp │ │ │ ├── copy_payload.hpp │ │ │ ├── freelist.hpp │ │ │ ├── parameter.hpp │ │ │ ├── prefix.hpp │ │ │ ├── tagged_ptr.hpp │ │ │ ├── tagged_ptr_dcas.hpp │ │ │ └── tagged_ptr_ptrcompression.hpp │ │ ├── policies.hpp │ │ └── queue.hpp │ ├── memory_order.hpp │ ├── mpl │ │ ├── O1_size.hpp │ │ ├── O1_size_fwd.hpp │ │ ├── always.hpp │ │ ├── and.hpp │ │ ├── apply.hpp │ │ ├── apply_fwd.hpp │ │ ├── apply_wrap.hpp │ │ ├── arg.hpp │ │ ├── arg_fwd.hpp │ │ ├── assert.hpp │ │ ├── at_fwd.hpp │ │ ├── aux_ │ │ │ ├── O1_size_impl.hpp │ │ │ ├── adl_barrier.hpp │ │ │ ├── arg_typedef.hpp │ │ │ ├── arity.hpp │ │ │ ├── arity_spec.hpp │ │ │ ├── begin_end_impl.hpp │ │ │ ├── clear_impl.hpp │ │ │ ├── common_name_wknd.hpp │ │ │ ├── config │ │ │ │ ├── adl.hpp │ │ │ │ ├── arrays.hpp │ │ │ │ ├── bcc.hpp │ │ │ │ ├── bind.hpp │ │ │ │ ├── compiler.hpp │ │ │ │ ├── ctps.hpp │ │ │ │ ├── dmc_ambiguous_ctps.hpp │ │ │ │ ├── dtp.hpp │ │ │ │ ├── eti.hpp │ │ │ │ ├── forwarding.hpp │ │ │ │ ├── gcc.hpp │ │ │ │ ├── gpu.hpp │ │ │ │ ├── has_apply.hpp │ │ │ │ ├── has_xxx.hpp │ │ │ │ ├── integral.hpp │ │ │ │ ├── intel.hpp │ │ │ │ ├── lambda.hpp │ │ │ │ ├── msvc.hpp │ │ │ │ ├── msvc_typename.hpp │ │ │ │ ├── nttp.hpp │ │ │ │ ├── operators.hpp │ │ │ │ ├── overload_resolution.hpp │ │ │ │ ├── pp_counter.hpp │ │ │ │ ├── preprocessor.hpp │ │ │ │ ├── static_constant.hpp │ │ │ │ ├── ttp.hpp │ │ │ │ ├── use_preprocessed.hpp │ │ │ │ └── workaround.hpp │ │ │ ├── count_args.hpp │ │ │ ├── find_if_pred.hpp │ │ │ ├── fold_impl.hpp │ │ │ ├── fold_impl_body.hpp │ │ │ ├── full_lambda.hpp │ │ │ ├── has_apply.hpp │ │ │ ├── has_begin.hpp │ │ │ ├── has_key_impl.hpp │ │ │ ├── has_rebind.hpp │ │ │ ├── has_size.hpp │ │ │ ├── has_tag.hpp │ │ │ ├── has_type.hpp │ │ │ ├── include_preprocessed.hpp │ │ │ ├── insert_impl.hpp │ │ │ ├── integral_wrapper.hpp │ │ │ ├── is_msvc_eti_arg.hpp │ │ │ ├── iter_apply.hpp │ │ │ ├── iter_fold_if_impl.hpp │ │ │ ├── lambda_arity_param.hpp │ │ │ ├── lambda_no_ctps.hpp │ │ │ ├── lambda_spec.hpp │ │ │ ├── lambda_support.hpp │ │ │ ├── logical_op.hpp │ │ │ ├── msvc_dtw.hpp │ │ │ ├── msvc_eti_base.hpp │ │ │ ├── msvc_is_class.hpp │ │ │ ├── msvc_never_true.hpp │ │ │ ├── msvc_type.hpp │ │ │ ├── na.hpp │ │ │ ├── na_assert.hpp │ │ │ ├── na_fwd.hpp │ │ │ ├── na_spec.hpp │ │ │ ├── nested_type_wknd.hpp │ │ │ ├── nttp_decl.hpp │ │ │ ├── overload_names.hpp │ │ │ ├── preprocessed │ │ │ │ ├── bcc │ │ │ │ │ ├── advance_backward.hpp │ │ │ │ │ ├── advance_forward.hpp │ │ │ │ │ ├── and.hpp │ │ │ │ │ ├── apply.hpp │ │ │ │ │ ├── apply_fwd.hpp │ │ │ │ │ ├── apply_wrap.hpp │ │ │ │ │ ├── arg.hpp │ │ │ │ │ ├── basic_bind.hpp │ │ │ │ │ ├── bind.hpp │ │ │ │ │ ├── bind_fwd.hpp │ │ │ │ │ ├── bitand.hpp │ │ │ │ │ ├── bitor.hpp │ │ │ │ │ ├── bitxor.hpp │ │ │ │ │ ├── deque.hpp │ │ │ │ │ ├── divides.hpp │ │ │ │ │ ├── equal_to.hpp │ │ │ │ │ ├── fold_impl.hpp │ │ │ │ │ ├── full_lambda.hpp │ │ │ │ │ ├── greater.hpp │ │ │ │ │ ├── greater_equal.hpp │ │ │ │ │ ├── inherit.hpp │ │ │ │ │ ├── iter_fold_if_impl.hpp │ │ │ │ │ ├── iter_fold_impl.hpp │ │ │ │ │ ├── lambda_no_ctps.hpp │ │ │ │ │ ├── less.hpp │ │ │ │ │ ├── less_equal.hpp │ │ │ │ │ ├── list.hpp │ │ │ │ │ ├── list_c.hpp │ │ │ │ │ ├── map.hpp │ │ │ │ │ ├── minus.hpp │ │ │ │ │ ├── modulus.hpp │ │ │ │ │ ├── not_equal_to.hpp │ │ │ │ │ ├── or.hpp │ │ │ │ │ ├── placeholders.hpp │ │ │ │ │ ├── plus.hpp │ │ │ │ │ ├── quote.hpp │ │ │ │ │ ├── reverse_fold_impl.hpp │ │ │ │ │ ├── reverse_iter_fold_impl.hpp │ │ │ │ │ ├── set.hpp │ │ │ │ │ ├── set_c.hpp │ │ │ │ │ ├── shift_left.hpp │ │ │ │ │ ├── shift_right.hpp │ │ │ │ │ ├── template_arity.hpp │ │ │ │ │ ├── times.hpp │ │ │ │ │ ├── unpack_args.hpp │ │ │ │ │ ├── vector.hpp │ │ │ │ │ └── vector_c.hpp │ │ │ │ ├── bcc551 │ │ │ │ │ ├── advance_backward.hpp │ │ │ │ │ ├── advance_forward.hpp │ │ │ │ │ ├── and.hpp │ │ │ │ │ ├── apply.hpp │ │ │ │ │ ├── apply_fwd.hpp │ │ │ │ │ ├── apply_wrap.hpp │ │ │ │ │ ├── arg.hpp │ │ │ │ │ ├── basic_bind.hpp │ │ │ │ │ ├── bind.hpp │ │ │ │ │ ├── bind_fwd.hpp │ │ │ │ │ ├── bitand.hpp │ │ │ │ │ ├── bitor.hpp │ │ │ │ │ ├── bitxor.hpp │ │ │ │ │ ├── deque.hpp │ │ │ │ │ ├── divides.hpp │ │ │ │ │ ├── equal_to.hpp │ │ │ │ │ ├── fold_impl.hpp │ │ │ │ │ ├── full_lambda.hpp │ │ │ │ │ ├── greater.hpp │ │ │ │ │ ├── greater_equal.hpp │ │ │ │ │ ├── inherit.hpp │ │ │ │ │ ├── iter_fold_if_impl.hpp │ │ │ │ │ ├── iter_fold_impl.hpp │ │ │ │ │ ├── lambda_no_ctps.hpp │ │ │ │ │ ├── less.hpp │ │ │ │ │ ├── less_equal.hpp │ │ │ │ │ ├── list.hpp │ │ │ │ │ ├── list_c.hpp │ │ │ │ │ ├── map.hpp │ │ │ │ │ ├── minus.hpp │ │ │ │ │ ├── modulus.hpp │ │ │ │ │ ├── not_equal_to.hpp │ │ │ │ │ ├── or.hpp │ │ │ │ │ ├── placeholders.hpp │ │ │ │ │ ├── plus.hpp │ │ │ │ │ ├── quote.hpp │ │ │ │ │ ├── reverse_fold_impl.hpp │ │ │ │ │ ├── reverse_iter_fold_impl.hpp │ │ │ │ │ ├── set.hpp │ │ │ │ │ ├── set_c.hpp │ │ │ │ │ ├── shift_left.hpp │ │ │ │ │ ├── shift_right.hpp │ │ │ │ │ ├── template_arity.hpp │ │ │ │ │ ├── times.hpp │ │ │ │ │ ├── unpack_args.hpp │ │ │ │ │ ├── vector.hpp │ │ │ │ │ └── vector_c.hpp │ │ │ │ ├── bcc_pre590 │ │ │ │ │ ├── advance_backward.hpp │ │ │ │ │ ├── advance_forward.hpp │ │ │ │ │ ├── and.hpp │ │ │ │ │ ├── apply.hpp │ │ │ │ │ ├── apply_fwd.hpp │ │ │ │ │ ├── apply_wrap.hpp │ │ │ │ │ ├── arg.hpp │ │ │ │ │ ├── basic_bind.hpp │ │ │ │ │ ├── bind.hpp │ │ │ │ │ ├── bind_fwd.hpp │ │ │ │ │ ├── bitand.hpp │ │ │ │ │ ├── bitor.hpp │ │ │ │ │ ├── bitxor.hpp │ │ │ │ │ ├── deque.hpp │ │ │ │ │ ├── divides.hpp │ │ │ │ │ ├── equal_to.hpp │ │ │ │ │ ├── fold_impl.hpp │ │ │ │ │ ├── full_lambda.hpp │ │ │ │ │ ├── greater.hpp │ │ │ │ │ ├── greater_equal.hpp │ │ │ │ │ ├── inherit.hpp │ │ │ │ │ ├── iter_fold_if_impl.hpp │ │ │ │ │ ├── iter_fold_impl.hpp │ │ │ │ │ ├── lambda_no_ctps.hpp │ │ │ │ │ ├── less.hpp │ │ │ │ │ ├── less_equal.hpp │ │ │ │ │ ├── list.hpp │ │ │ │ │ ├── list_c.hpp │ │ │ │ │ ├── map.hpp │ │ │ │ │ ├── minus.hpp │ │ │ │ │ ├── modulus.hpp │ │ │ │ │ ├── not_equal_to.hpp │ │ │ │ │ ├── or.hpp │ │ │ │ │ ├── placeholders.hpp │ │ │ │ │ ├── plus.hpp │ │ │ │ │ ├── quote.hpp │ │ │ │ │ ├── reverse_fold_impl.hpp │ │ │ │ │ ├── reverse_iter_fold_impl.hpp │ │ │ │ │ ├── set.hpp │ │ │ │ │ ├── set_c.hpp │ │ │ │ │ ├── shift_left.hpp │ │ │ │ │ ├── shift_right.hpp │ │ │ │ │ ├── template_arity.hpp │ │ │ │ │ ├── times.hpp │ │ │ │ │ ├── unpack_args.hpp │ │ │ │ │ ├── vector.hpp │ │ │ │ │ └── vector_c.hpp │ │ │ │ ├── dmc │ │ │ │ │ ├── advance_backward.hpp │ │ │ │ │ ├── advance_forward.hpp │ │ │ │ │ ├── and.hpp │ │ │ │ │ ├── apply.hpp │ │ │ │ │ ├── apply_fwd.hpp │ │ │ │ │ ├── apply_wrap.hpp │ │ │ │ │ ├── arg.hpp │ │ │ │ │ ├── basic_bind.hpp │ │ │ │ │ ├── bind.hpp │ │ │ │ │ ├── bind_fwd.hpp │ │ │ │ │ ├── bitand.hpp │ │ │ │ │ ├── bitor.hpp │ │ │ │ │ ├── bitxor.hpp │ │ │ │ │ ├── deque.hpp │ │ │ │ │ ├── divides.hpp │ │ │ │ │ ├── equal_to.hpp │ │ │ │ │ ├── fold_impl.hpp │ │ │ │ │ ├── full_lambda.hpp │ │ │ │ │ ├── greater.hpp │ │ │ │ │ ├── greater_equal.hpp │ │ │ │ │ ├── inherit.hpp │ │ │ │ │ ├── iter_fold_if_impl.hpp │ │ │ │ │ ├── iter_fold_impl.hpp │ │ │ │ │ ├── lambda_no_ctps.hpp │ │ │ │ │ ├── less.hpp │ │ │ │ │ ├── less_equal.hpp │ │ │ │ │ ├── list.hpp │ │ │ │ │ ├── list_c.hpp │ │ │ │ │ ├── map.hpp │ │ │ │ │ ├── minus.hpp │ │ │ │ │ ├── modulus.hpp │ │ │ │ │ ├── not_equal_to.hpp │ │ │ │ │ ├── or.hpp │ │ │ │ │ ├── placeholders.hpp │ │ │ │ │ ├── plus.hpp │ │ │ │ │ ├── quote.hpp │ │ │ │ │ ├── reverse_fold_impl.hpp │ │ │ │ │ ├── reverse_iter_fold_impl.hpp │ │ │ │ │ ├── set.hpp │ │ │ │ │ ├── set_c.hpp │ │ │ │ │ ├── shift_left.hpp │ │ │ │ │ ├── shift_right.hpp │ │ │ │ │ ├── template_arity.hpp │ │ │ │ │ ├── times.hpp │ │ │ │ │ ├── unpack_args.hpp │ │ │ │ │ ├── vector.hpp │ │ │ │ │ └── vector_c.hpp │ │ │ │ ├── gcc │ │ │ │ │ ├── advance_backward.hpp │ │ │ │ │ ├── advance_forward.hpp │ │ │ │ │ ├── and.hpp │ │ │ │ │ ├── apply.hpp │ │ │ │ │ ├── apply_fwd.hpp │ │ │ │ │ ├── apply_wrap.hpp │ │ │ │ │ ├── arg.hpp │ │ │ │ │ ├── basic_bind.hpp │ │ │ │ │ ├── bind.hpp │ │ │ │ │ ├── bind_fwd.hpp │ │ │ │ │ ├── bitand.hpp │ │ │ │ │ ├── bitor.hpp │ │ │ │ │ ├── bitxor.hpp │ │ │ │ │ ├── deque.hpp │ │ │ │ │ ├── divides.hpp │ │ │ │ │ ├── equal_to.hpp │ │ │ │ │ ├── fold_impl.hpp │ │ │ │ │ ├── full_lambda.hpp │ │ │ │ │ ├── greater.hpp │ │ │ │ │ ├── greater_equal.hpp │ │ │ │ │ ├── inherit.hpp │ │ │ │ │ ├── iter_fold_if_impl.hpp │ │ │ │ │ ├── iter_fold_impl.hpp │ │ │ │ │ ├── lambda_no_ctps.hpp │ │ │ │ │ ├── less.hpp │ │ │ │ │ ├── less_equal.hpp │ │ │ │ │ ├── list.hpp │ │ │ │ │ ├── list_c.hpp │ │ │ │ │ ├── map.hpp │ │ │ │ │ ├── minus.hpp │ │ │ │ │ ├── modulus.hpp │ │ │ │ │ ├── not_equal_to.hpp │ │ │ │ │ ├── or.hpp │ │ │ │ │ ├── placeholders.hpp │ │ │ │ │ ├── plus.hpp │ │ │ │ │ ├── quote.hpp │ │ │ │ │ ├── reverse_fold_impl.hpp │ │ │ │ │ ├── reverse_iter_fold_impl.hpp │ │ │ │ │ ├── set.hpp │ │ │ │ │ ├── set_c.hpp │ │ │ │ │ ├── shift_left.hpp │ │ │ │ │ ├── shift_right.hpp │ │ │ │ │ ├── template_arity.hpp │ │ │ │ │ ├── times.hpp │ │ │ │ │ ├── unpack_args.hpp │ │ │ │ │ ├── vector.hpp │ │ │ │ │ └── vector_c.hpp │ │ │ │ ├── msvc60 │ │ │ │ │ ├── advance_backward.hpp │ │ │ │ │ ├── advance_forward.hpp │ │ │ │ │ ├── and.hpp │ │ │ │ │ ├── apply.hpp │ │ │ │ │ ├── apply_fwd.hpp │ │ │ │ │ ├── apply_wrap.hpp │ │ │ │ │ ├── arg.hpp │ │ │ │ │ ├── basic_bind.hpp │ │ │ │ │ ├── bind.hpp │ │ │ │ │ ├── bind_fwd.hpp │ │ │ │ │ ├── bitand.hpp │ │ │ │ │ ├── bitor.hpp │ │ │ │ │ ├── bitxor.hpp │ │ │ │ │ ├── deque.hpp │ │ │ │ │ ├── divides.hpp │ │ │ │ │ ├── equal_to.hpp │ │ │ │ │ ├── fold_impl.hpp │ │ │ │ │ ├── full_lambda.hpp │ │ │ │ │ ├── greater.hpp │ │ │ │ │ ├── greater_equal.hpp │ │ │ │ │ ├── inherit.hpp │ │ │ │ │ ├── iter_fold_if_impl.hpp │ │ │ │ │ ├── iter_fold_impl.hpp │ │ │ │ │ ├── lambda_no_ctps.hpp │ │ │ │ │ ├── less.hpp │ │ │ │ │ ├── less_equal.hpp │ │ │ │ │ ├── list.hpp │ │ │ │ │ ├── list_c.hpp │ │ │ │ │ ├── map.hpp │ │ │ │ │ ├── minus.hpp │ │ │ │ │ ├── modulus.hpp │ │ │ │ │ ├── not_equal_to.hpp │ │ │ │ │ ├── or.hpp │ │ │ │ │ ├── placeholders.hpp │ │ │ │ │ ├── plus.hpp │ │ │ │ │ ├── quote.hpp │ │ │ │ │ ├── reverse_fold_impl.hpp │ │ │ │ │ ├── reverse_iter_fold_impl.hpp │ │ │ │ │ ├── set.hpp │ │ │ │ │ ├── set_c.hpp │ │ │ │ │ ├── shift_left.hpp │ │ │ │ │ ├── shift_right.hpp │ │ │ │ │ ├── template_arity.hpp │ │ │ │ │ ├── times.hpp │ │ │ │ │ ├── unpack_args.hpp │ │ │ │ │ ├── vector.hpp │ │ │ │ │ └── vector_c.hpp │ │ │ │ ├── msvc70 │ │ │ │ │ ├── advance_backward.hpp │ │ │ │ │ ├── advance_forward.hpp │ │ │ │ │ ├── and.hpp │ │ │ │ │ ├── apply.hpp │ │ │ │ │ ├── apply_fwd.hpp │ │ │ │ │ ├── apply_wrap.hpp │ │ │ │ │ ├── arg.hpp │ │ │ │ │ ├── basic_bind.hpp │ │ │ │ │ ├── bind.hpp │ │ │ │ │ ├── bind_fwd.hpp │ │ │ │ │ ├── bitand.hpp │ │ │ │ │ ├── bitor.hpp │ │ │ │ │ ├── bitxor.hpp │ │ │ │ │ ├── deque.hpp │ │ │ │ │ ├── divides.hpp │ │ │ │ │ ├── equal_to.hpp │ │ │ │ │ ├── fold_impl.hpp │ │ │ │ │ ├── full_lambda.hpp │ │ │ │ │ ├── greater.hpp │ │ │ │ │ ├── greater_equal.hpp │ │ │ │ │ ├── inherit.hpp │ │ │ │ │ ├── iter_fold_if_impl.hpp │ │ │ │ │ ├── iter_fold_impl.hpp │ │ │ │ │ ├── lambda_no_ctps.hpp │ │ │ │ │ ├── less.hpp │ │ │ │ │ ├── less_equal.hpp │ │ │ │ │ ├── list.hpp │ │ │ │ │ ├── list_c.hpp │ │ │ │ │ ├── map.hpp │ │ │ │ │ ├── minus.hpp │ │ │ │ │ ├── modulus.hpp │ │ │ │ │ ├── not_equal_to.hpp │ │ │ │ │ ├── or.hpp │ │ │ │ │ ├── placeholders.hpp │ │ │ │ │ ├── plus.hpp │ │ │ │ │ ├── quote.hpp │ │ │ │ │ ├── reverse_fold_impl.hpp │ │ │ │ │ ├── reverse_iter_fold_impl.hpp │ │ │ │ │ ├── set.hpp │ │ │ │ │ ├── set_c.hpp │ │ │ │ │ ├── shift_left.hpp │ │ │ │ │ ├── shift_right.hpp │ │ │ │ │ ├── template_arity.hpp │ │ │ │ │ ├── times.hpp │ │ │ │ │ ├── unpack_args.hpp │ │ │ │ │ ├── vector.hpp │ │ │ │ │ └── vector_c.hpp │ │ │ │ ├── mwcw │ │ │ │ │ ├── advance_backward.hpp │ │ │ │ │ ├── advance_forward.hpp │ │ │ │ │ ├── and.hpp │ │ │ │ │ ├── apply.hpp │ │ │ │ │ ├── apply_fwd.hpp │ │ │ │ │ ├── apply_wrap.hpp │ │ │ │ │ ├── arg.hpp │ │ │ │ │ ├── basic_bind.hpp │ │ │ │ │ ├── bind.hpp │ │ │ │ │ ├── bind_fwd.hpp │ │ │ │ │ ├── bitand.hpp │ │ │ │ │ ├── bitor.hpp │ │ │ │ │ ├── bitxor.hpp │ │ │ │ │ ├── deque.hpp │ │ │ │ │ ├── divides.hpp │ │ │ │ │ ├── equal_to.hpp │ │ │ │ │ ├── fold_impl.hpp │ │ │ │ │ ├── full_lambda.hpp │ │ │ │ │ ├── greater.hpp │ │ │ │ │ ├── greater_equal.hpp │ │ │ │ │ ├── inherit.hpp │ │ │ │ │ ├── iter_fold_if_impl.hpp │ │ │ │ │ ├── iter_fold_impl.hpp │ │ │ │ │ ├── lambda_no_ctps.hpp │ │ │ │ │ ├── less.hpp │ │ │ │ │ ├── less_equal.hpp │ │ │ │ │ ├── list.hpp │ │ │ │ │ ├── list_c.hpp │ │ │ │ │ ├── map.hpp │ │ │ │ │ ├── minus.hpp │ │ │ │ │ ├── modulus.hpp │ │ │ │ │ ├── not_equal_to.hpp │ │ │ │ │ ├── or.hpp │ │ │ │ │ ├── placeholders.hpp │ │ │ │ │ ├── plus.hpp │ │ │ │ │ ├── quote.hpp │ │ │ │ │ ├── reverse_fold_impl.hpp │ │ │ │ │ ├── reverse_iter_fold_impl.hpp │ │ │ │ │ ├── set.hpp │ │ │ │ │ ├── set_c.hpp │ │ │ │ │ ├── shift_left.hpp │ │ │ │ │ ├── shift_right.hpp │ │ │ │ │ ├── template_arity.hpp │ │ │ │ │ ├── times.hpp │ │ │ │ │ ├── unpack_args.hpp │ │ │ │ │ ├── vector.hpp │ │ │ │ │ └── vector_c.hpp │ │ │ │ ├── no_ctps │ │ │ │ │ ├── advance_backward.hpp │ │ │ │ │ ├── advance_forward.hpp │ │ │ │ │ ├── and.hpp │ │ │ │ │ ├── apply.hpp │ │ │ │ │ ├── apply_fwd.hpp │ │ │ │ │ ├── apply_wrap.hpp │ │ │ │ │ ├── arg.hpp │ │ │ │ │ ├── basic_bind.hpp │ │ │ │ │ ├── bind.hpp │ │ │ │ │ ├── bind_fwd.hpp │ │ │ │ │ ├── bitand.hpp │ │ │ │ │ ├── bitor.hpp │ │ │ │ │ ├── bitxor.hpp │ │ │ │ │ ├── deque.hpp │ │ │ │ │ ├── divides.hpp │ │ │ │ │ ├── equal_to.hpp │ │ │ │ │ ├── fold_impl.hpp │ │ │ │ │ ├── full_lambda.hpp │ │ │ │ │ ├── greater.hpp │ │ │ │ │ ├── greater_equal.hpp │ │ │ │ │ ├── inherit.hpp │ │ │ │ │ ├── iter_fold_if_impl.hpp │ │ │ │ │ ├── iter_fold_impl.hpp │ │ │ │ │ ├── lambda_no_ctps.hpp │ │ │ │ │ ├── less.hpp │ │ │ │ │ ├── less_equal.hpp │ │ │ │ │ ├── list.hpp │ │ │ │ │ ├── list_c.hpp │ │ │ │ │ ├── map.hpp │ │ │ │ │ ├── minus.hpp │ │ │ │ │ ├── modulus.hpp │ │ │ │ │ ├── not_equal_to.hpp │ │ │ │ │ ├── or.hpp │ │ │ │ │ ├── placeholders.hpp │ │ │ │ │ ├── plus.hpp │ │ │ │ │ ├── quote.hpp │ │ │ │ │ ├── reverse_fold_impl.hpp │ │ │ │ │ ├── reverse_iter_fold_impl.hpp │ │ │ │ │ ├── set.hpp │ │ │ │ │ ├── set_c.hpp │ │ │ │ │ ├── shift_left.hpp │ │ │ │ │ ├── shift_right.hpp │ │ │ │ │ ├── template_arity.hpp │ │ │ │ │ ├── times.hpp │ │ │ │ │ ├── unpack_args.hpp │ │ │ │ │ ├── vector.hpp │ │ │ │ │ └── vector_c.hpp │ │ │ │ ├── no_ttp │ │ │ │ │ ├── advance_backward.hpp │ │ │ │ │ ├── advance_forward.hpp │ │ │ │ │ ├── and.hpp │ │ │ │ │ ├── apply.hpp │ │ │ │ │ ├── apply_fwd.hpp │ │ │ │ │ ├── apply_wrap.hpp │ │ │ │ │ ├── arg.hpp │ │ │ │ │ ├── basic_bind.hpp │ │ │ │ │ ├── bind.hpp │ │ │ │ │ ├── bind_fwd.hpp │ │ │ │ │ ├── bitand.hpp │ │ │ │ │ ├── bitor.hpp │ │ │ │ │ ├── bitxor.hpp │ │ │ │ │ ├── deque.hpp │ │ │ │ │ ├── divides.hpp │ │ │ │ │ ├── equal_to.hpp │ │ │ │ │ ├── fold_impl.hpp │ │ │ │ │ ├── full_lambda.hpp │ │ │ │ │ ├── greater.hpp │ │ │ │ │ ├── greater_equal.hpp │ │ │ │ │ ├── inherit.hpp │ │ │ │ │ ├── iter_fold_if_impl.hpp │ │ │ │ │ ├── iter_fold_impl.hpp │ │ │ │ │ ├── lambda_no_ctps.hpp │ │ │ │ │ ├── less.hpp │ │ │ │ │ ├── less_equal.hpp │ │ │ │ │ ├── list.hpp │ │ │ │ │ ├── list_c.hpp │ │ │ │ │ ├── map.hpp │ │ │ │ │ ├── minus.hpp │ │ │ │ │ ├── modulus.hpp │ │ │ │ │ ├── not_equal_to.hpp │ │ │ │ │ ├── or.hpp │ │ │ │ │ ├── placeholders.hpp │ │ │ │ │ ├── plus.hpp │ │ │ │ │ ├── quote.hpp │ │ │ │ │ ├── reverse_fold_impl.hpp │ │ │ │ │ ├── reverse_iter_fold_impl.hpp │ │ │ │ │ ├── set.hpp │ │ │ │ │ ├── set_c.hpp │ │ │ │ │ ├── shift_left.hpp │ │ │ │ │ ├── shift_right.hpp │ │ │ │ │ ├── template_arity.hpp │ │ │ │ │ ├── times.hpp │ │ │ │ │ ├── unpack_args.hpp │ │ │ │ │ ├── vector.hpp │ │ │ │ │ └── vector_c.hpp │ │ │ │ └── plain │ │ │ │ │ ├── advance_backward.hpp │ │ │ │ │ ├── advance_forward.hpp │ │ │ │ │ ├── and.hpp │ │ │ │ │ ├── apply.hpp │ │ │ │ │ ├── apply_fwd.hpp │ │ │ │ │ ├── apply_wrap.hpp │ │ │ │ │ ├── arg.hpp │ │ │ │ │ ├── basic_bind.hpp │ │ │ │ │ ├── bind.hpp │ │ │ │ │ ├── bind_fwd.hpp │ │ │ │ │ ├── bitand.hpp │ │ │ │ │ ├── bitor.hpp │ │ │ │ │ ├── bitxor.hpp │ │ │ │ │ ├── deque.hpp │ │ │ │ │ ├── divides.hpp │ │ │ │ │ ├── equal_to.hpp │ │ │ │ │ ├── fold_impl.hpp │ │ │ │ │ ├── full_lambda.hpp │ │ │ │ │ ├── greater.hpp │ │ │ │ │ ├── greater_equal.hpp │ │ │ │ │ ├── inherit.hpp │ │ │ │ │ ├── iter_fold_if_impl.hpp │ │ │ │ │ ├── iter_fold_impl.hpp │ │ │ │ │ ├── lambda_no_ctps.hpp │ │ │ │ │ ├── less.hpp │ │ │ │ │ ├── less_equal.hpp │ │ │ │ │ ├── list.hpp │ │ │ │ │ ├── list_c.hpp │ │ │ │ │ ├── map.hpp │ │ │ │ │ ├── minus.hpp │ │ │ │ │ ├── modulus.hpp │ │ │ │ │ ├── not_equal_to.hpp │ │ │ │ │ ├── or.hpp │ │ │ │ │ ├── placeholders.hpp │ │ │ │ │ ├── plus.hpp │ │ │ │ │ ├── quote.hpp │ │ │ │ │ ├── reverse_fold_impl.hpp │ │ │ │ │ ├── reverse_iter_fold_impl.hpp │ │ │ │ │ ├── set.hpp │ │ │ │ │ ├── set_c.hpp │ │ │ │ │ ├── shift_left.hpp │ │ │ │ │ ├── shift_right.hpp │ │ │ │ │ ├── template_arity.hpp │ │ │ │ │ ├── times.hpp │ │ │ │ │ ├── unpack_args.hpp │ │ │ │ │ ├── vector.hpp │ │ │ │ │ └── vector_c.hpp │ │ │ ├── preprocessor │ │ │ │ ├── add.hpp │ │ │ │ ├── def_params_tail.hpp │ │ │ │ ├── default_params.hpp │ │ │ │ ├── enum.hpp │ │ │ │ ├── ext_params.hpp │ │ │ │ ├── filter_params.hpp │ │ │ │ ├── params.hpp │ │ │ │ ├── partial_spec_params.hpp │ │ │ │ ├── range.hpp │ │ │ │ ├── repeat.hpp │ │ │ │ ├── sub.hpp │ │ │ │ └── tuple.hpp │ │ │ ├── ptr_to_ref.hpp │ │ │ ├── push_front_impl.hpp │ │ │ ├── reverse_fold_impl.hpp │ │ │ ├── reverse_fold_impl_body.hpp │ │ │ ├── sequence_wrapper.hpp │ │ │ ├── static_cast.hpp │ │ │ ├── template_arity.hpp │ │ │ ├── template_arity_fwd.hpp │ │ │ ├── traits_lambda_spec.hpp │ │ │ ├── type_wrapper.hpp │ │ │ ├── value_wknd.hpp │ │ │ └── yes_no.hpp │ │ ├── base.hpp │ │ ├── begin.hpp │ │ ├── begin_end.hpp │ │ ├── begin_end_fwd.hpp │ │ ├── bind.hpp │ │ ├── bind_fwd.hpp │ │ ├── bool.hpp │ │ ├── bool_fwd.hpp │ │ ├── clear.hpp │ │ ├── clear_fwd.hpp │ │ ├── deref.hpp │ │ ├── empty_fwd.hpp │ │ ├── end.hpp │ │ ├── erase_fwd.hpp │ │ ├── erase_key_fwd.hpp │ │ ├── eval_if.hpp │ │ ├── find.hpp │ │ ├── find_if.hpp │ │ ├── fold.hpp │ │ ├── front_fwd.hpp │ │ ├── has_key.hpp │ │ ├── has_key_fwd.hpp │ │ ├── has_xxx.hpp │ │ ├── identity.hpp │ │ ├── if.hpp │ │ ├── insert.hpp │ │ ├── insert_fwd.hpp │ │ ├── insert_range_fwd.hpp │ │ ├── int.hpp │ │ ├── int_fwd.hpp │ │ ├── integral_c.hpp │ │ ├── integral_c_fwd.hpp │ │ ├── integral_c_tag.hpp │ │ ├── is_placeholder.hpp │ │ ├── iter_fold_if.hpp │ │ ├── iterator_range.hpp │ │ ├── iterator_tags.hpp │ │ ├── key_type_fwd.hpp │ │ ├── lambda.hpp │ │ ├── lambda_fwd.hpp │ │ ├── limits │ │ │ ├── arity.hpp │ │ │ ├── list.hpp │ │ │ └── unrolling.hpp │ │ ├── list.hpp │ │ ├── list │ │ │ ├── aux_ │ │ │ │ ├── O1_size.hpp │ │ │ │ ├── begin_end.hpp │ │ │ │ ├── clear.hpp │ │ │ │ ├── empty.hpp │ │ │ │ ├── front.hpp │ │ │ │ ├── include_preprocessed.hpp │ │ │ │ ├── item.hpp │ │ │ │ ├── iterator.hpp │ │ │ │ ├── numbered.hpp │ │ │ │ ├── numbered_c.hpp │ │ │ │ ├── pop_front.hpp │ │ │ │ ├── preprocessed │ │ │ │ │ └── plain │ │ │ │ │ │ ├── list10.hpp │ │ │ │ │ │ ├── list10_c.hpp │ │ │ │ │ │ ├── list20.hpp │ │ │ │ │ │ ├── list20_c.hpp │ │ │ │ │ │ ├── list30.hpp │ │ │ │ │ │ ├── list30_c.hpp │ │ │ │ │ │ ├── list40.hpp │ │ │ │ │ │ ├── list40_c.hpp │ │ │ │ │ │ ├── list50.hpp │ │ │ │ │ │ └── list50_c.hpp │ │ │ │ ├── push_back.hpp │ │ │ │ ├── push_front.hpp │ │ │ │ ├── size.hpp │ │ │ │ └── tag.hpp │ │ │ ├── list0.hpp │ │ │ ├── list0_c.hpp │ │ │ ├── list10.hpp │ │ │ ├── list10_c.hpp │ │ │ ├── list20.hpp │ │ │ ├── list20_c.hpp │ │ │ ├── list30.hpp │ │ │ ├── list30_c.hpp │ │ │ ├── list40.hpp │ │ │ ├── list40_c.hpp │ │ │ ├── list50.hpp │ │ │ └── list50_c.hpp │ │ ├── logical.hpp │ │ ├── long.hpp │ │ ├── long_fwd.hpp │ │ ├── next.hpp │ │ ├── next_prior.hpp │ │ ├── not.hpp │ │ ├── or.hpp │ │ ├── pair.hpp │ │ ├── placeholders.hpp │ │ ├── pop_front_fwd.hpp │ │ ├── prior.hpp │ │ ├── protect.hpp │ │ ├── push_back_fwd.hpp │ │ ├── push_front.hpp │ │ ├── push_front_fwd.hpp │ │ ├── quote.hpp │ │ ├── reverse_fold.hpp │ │ ├── same_as.hpp │ │ ├── sequence_tag.hpp │ │ ├── sequence_tag_fwd.hpp │ │ ├── set │ │ │ ├── aux_ │ │ │ │ ├── at_impl.hpp │ │ │ │ ├── begin_end_impl.hpp │ │ │ │ ├── clear_impl.hpp │ │ │ │ ├── empty_impl.hpp │ │ │ │ ├── erase_impl.hpp │ │ │ │ ├── erase_key_impl.hpp │ │ │ │ ├── has_key_impl.hpp │ │ │ │ ├── insert_impl.hpp │ │ │ │ ├── insert_range_impl.hpp │ │ │ │ ├── item.hpp │ │ │ │ ├── iterator.hpp │ │ │ │ ├── key_type_impl.hpp │ │ │ │ ├── set0.hpp │ │ │ │ ├── size_impl.hpp │ │ │ │ ├── tag.hpp │ │ │ │ └── value_type_impl.hpp │ │ │ └── set0.hpp │ │ ├── size_fwd.hpp │ │ ├── size_t.hpp │ │ ├── size_t_fwd.hpp │ │ ├── value_type_fwd.hpp │ │ ├── void.hpp │ │ └── void_fwd.hpp │ ├── noncopyable.hpp │ ├── parameter.hpp │ ├── parameter │ │ ├── aux_ │ │ │ ├── arg_list.hpp │ │ │ ├── cast.hpp │ │ │ ├── default.hpp │ │ │ ├── is_maybe.hpp │ │ │ ├── overloads.hpp │ │ │ ├── parameter_requirements.hpp │ │ │ ├── parenthesized_type.hpp │ │ │ ├── preprocessor │ │ │ │ ├── flatten.hpp │ │ │ │ └── for_each.hpp │ │ │ ├── result_of0.hpp │ │ │ ├── set.hpp │ │ │ ├── tag.hpp │ │ │ ├── tagged_argument.hpp │ │ │ ├── template_keyword.hpp │ │ │ ├── unwrap_cv_reference.hpp │ │ │ ├── void.hpp │ │ │ └── yesno.hpp │ │ ├── binding.hpp │ │ ├── config.hpp │ │ ├── keyword.hpp │ │ ├── macros.hpp │ │ ├── match.hpp │ │ ├── name.hpp │ │ ├── parameters.hpp │ │ ├── preprocessor.hpp │ │ └── value_type.hpp │ ├── preprocessor │ │ ├── arithmetic │ │ │ ├── add.hpp │ │ │ ├── dec.hpp │ │ │ ├── inc.hpp │ │ │ └── sub.hpp │ │ ├── array │ │ │ ├── data.hpp │ │ │ ├── elem.hpp │ │ │ └── size.hpp │ │ ├── cat.hpp │ │ ├── comma_if.hpp │ │ ├── comparison │ │ │ ├── equal.hpp │ │ │ ├── less_equal.hpp │ │ │ └── not_equal.hpp │ │ ├── config │ │ │ └── config.hpp │ │ ├── control │ │ │ ├── detail │ │ │ │ ├── dmc │ │ │ │ │ └── while.hpp │ │ │ │ ├── edg │ │ │ │ │ └── while.hpp │ │ │ │ ├── msvc │ │ │ │ │ └── while.hpp │ │ │ │ └── while.hpp │ │ │ ├── expr_if.hpp │ │ │ ├── expr_iif.hpp │ │ │ ├── if.hpp │ │ │ ├── iif.hpp │ │ │ └── while.hpp │ │ ├── debug │ │ │ └── error.hpp │ │ ├── dec.hpp │ │ ├── detail │ │ │ ├── auto_rec.hpp │ │ │ ├── check.hpp │ │ │ ├── dmc │ │ │ │ └── auto_rec.hpp │ │ │ ├── is_binary.hpp │ │ │ ├── is_nullary.hpp │ │ │ └── split.hpp │ │ ├── empty.hpp │ │ ├── enum.hpp │ │ ├── enum_params.hpp │ │ ├── enum_params_with_a_default.hpp │ │ ├── enum_shifted_params.hpp │ │ ├── expr_if.hpp │ │ ├── facilities │ │ │ ├── detail │ │ │ │ └── is_empty.hpp │ │ │ ├── empty.hpp │ │ │ ├── expand.hpp │ │ │ ├── identity.hpp │ │ │ ├── intercept.hpp │ │ │ ├── is_1.hpp │ │ │ ├── is_empty.hpp │ │ │ ├── is_empty_variadic.hpp │ │ │ └── overload.hpp │ │ ├── for.hpp │ │ ├── identity.hpp │ │ ├── inc.hpp │ │ ├── iterate.hpp │ │ ├── iteration │ │ │ ├── detail │ │ │ │ ├── bounds │ │ │ │ │ ├── lower1.hpp │ │ │ │ │ ├── lower2.hpp │ │ │ │ │ ├── lower3.hpp │ │ │ │ │ ├── lower4.hpp │ │ │ │ │ ├── lower5.hpp │ │ │ │ │ ├── upper1.hpp │ │ │ │ │ ├── upper2.hpp │ │ │ │ │ ├── upper3.hpp │ │ │ │ │ ├── upper4.hpp │ │ │ │ │ └── upper5.hpp │ │ │ │ ├── finish.hpp │ │ │ │ ├── iter │ │ │ │ │ ├── forward1.hpp │ │ │ │ │ ├── forward2.hpp │ │ │ │ │ ├── forward3.hpp │ │ │ │ │ ├── forward4.hpp │ │ │ │ │ ├── forward5.hpp │ │ │ │ │ ├── reverse1.hpp │ │ │ │ │ ├── reverse2.hpp │ │ │ │ │ ├── reverse3.hpp │ │ │ │ │ ├── reverse4.hpp │ │ │ │ │ └── reverse5.hpp │ │ │ │ ├── local.hpp │ │ │ │ ├── rlocal.hpp │ │ │ │ ├── self.hpp │ │ │ │ └── start.hpp │ │ │ ├── iterate.hpp │ │ │ ├── local.hpp │ │ │ └── self.hpp │ │ ├── list │ │ │ ├── adt.hpp │ │ │ ├── detail │ │ │ │ ├── dmc │ │ │ │ │ └── fold_left.hpp │ │ │ │ ├── edg │ │ │ │ │ ├── fold_left.hpp │ │ │ │ │ └── fold_right.hpp │ │ │ │ ├── fold_left.hpp │ │ │ │ └── fold_right.hpp │ │ │ ├── fold_left.hpp │ │ │ ├── fold_right.hpp │ │ │ ├── for_each_i.hpp │ │ │ └── reverse.hpp │ │ ├── logical │ │ │ ├── and.hpp │ │ │ ├── bitand.hpp │ │ │ ├── bool.hpp │ │ │ ├── compl.hpp │ │ │ └── not.hpp │ │ ├── punctuation │ │ │ ├── comma.hpp │ │ │ ├── comma_if.hpp │ │ │ ├── detail │ │ │ │ └── is_begin_parens.hpp │ │ │ └── is_begin_parens.hpp │ │ ├── repeat.hpp │ │ ├── repetition │ │ │ ├── deduce_r.hpp │ │ │ ├── detail │ │ │ │ ├── dmc │ │ │ │ │ └── for.hpp │ │ │ │ ├── edg │ │ │ │ │ └── for.hpp │ │ │ │ ├── for.hpp │ │ │ │ └── msvc │ │ │ │ │ └── for.hpp │ │ │ ├── enum.hpp │ │ │ ├── enum_binary_params.hpp │ │ │ ├── enum_params.hpp │ │ │ ├── enum_params_with_a_default.hpp │ │ │ ├── enum_shifted.hpp │ │ │ ├── enum_shifted_params.hpp │ │ │ ├── enum_trailing.hpp │ │ │ ├── enum_trailing_params.hpp │ │ │ ├── for.hpp │ │ │ ├── repeat.hpp │ │ │ └── repeat_from_to.hpp │ │ ├── selection │ │ │ └── max.hpp │ │ ├── seq │ │ │ ├── detail │ │ │ │ ├── is_empty.hpp │ │ │ │ └── split.hpp │ │ │ ├── elem.hpp │ │ │ ├── enum.hpp │ │ │ ├── first_n.hpp │ │ │ ├── fold_left.hpp │ │ │ ├── for_each.hpp │ │ │ ├── for_each_i.hpp │ │ │ ├── for_each_product.hpp │ │ │ ├── push_back.hpp │ │ │ ├── rest_n.hpp │ │ │ ├── seq.hpp │ │ │ ├── size.hpp │ │ │ └── subseq.hpp │ │ ├── slot │ │ │ ├── detail │ │ │ │ ├── counter.hpp │ │ │ │ ├── def.hpp │ │ │ │ ├── shared.hpp │ │ │ │ ├── slot1.hpp │ │ │ │ ├── slot2.hpp │ │ │ │ ├── slot3.hpp │ │ │ │ ├── slot4.hpp │ │ │ │ └── slot5.hpp │ │ │ └── slot.hpp │ │ ├── stringize.hpp │ │ ├── tuple │ │ │ ├── detail │ │ │ │ └── is_single_return.hpp │ │ │ ├── eat.hpp │ │ │ ├── elem.hpp │ │ │ ├── rem.hpp │ │ │ ├── size.hpp │ │ │ └── to_list.hpp │ │ └── variadic │ │ │ ├── elem.hpp │ │ │ └── size.hpp │ ├── static_assert.hpp │ ├── swap.hpp │ ├── throw_exception.hpp │ ├── type_traits │ │ ├── add_const.hpp │ │ ├── add_lvalue_reference.hpp │ │ ├── add_reference.hpp │ │ ├── add_rvalue_reference.hpp │ │ ├── add_volatile.hpp │ │ ├── conditional.hpp │ │ ├── declval.hpp │ │ ├── detail │ │ │ ├── config.hpp │ │ │ ├── is_function_ptr_helper.hpp │ │ │ ├── is_function_ptr_tester.hpp │ │ │ ├── is_mem_fun_pointer_impl.hpp │ │ │ ├── is_mem_fun_pointer_tester.hpp │ │ │ └── yes_no_type.hpp │ │ ├── has_trivial_assign.hpp │ │ ├── has_trivial_destructor.hpp │ │ ├── integral_constant.hpp │ │ ├── intrinsics.hpp │ │ ├── is_abstract.hpp │ │ ├── is_arithmetic.hpp │ │ ├── is_array.hpp │ │ ├── is_assignable.hpp │ │ ├── is_base_and_derived.hpp │ │ ├── is_class.hpp │ │ ├── is_const.hpp │ │ ├── is_convertible.hpp │ │ ├── is_destructible.hpp │ │ ├── is_enum.hpp │ │ ├── is_floating_point.hpp │ │ ├── is_function.hpp │ │ ├── is_integral.hpp │ │ ├── is_lvalue_reference.hpp │ │ ├── is_member_function_pointer.hpp │ │ ├── is_member_pointer.hpp │ │ ├── is_pod.hpp │ │ ├── is_pointer.hpp │ │ ├── is_polymorphic.hpp │ │ ├── is_reference.hpp │ │ ├── is_rvalue_reference.hpp │ │ ├── is_same.hpp │ │ ├── is_scalar.hpp │ │ ├── is_signed.hpp │ │ ├── is_union.hpp │ │ ├── is_unsigned.hpp │ │ ├── is_void.hpp │ │ ├── is_volatile.hpp │ │ ├── make_signed.hpp │ │ ├── remove_const.hpp │ │ ├── remove_cv.hpp │ │ └── remove_reference.hpp │ ├── utility │ │ ├── declval.hpp │ │ ├── detail │ │ │ └── result_of_iterate.hpp │ │ ├── enable_if.hpp │ │ └── result_of.hpp │ └── version.hpp ├── boostqueue.h ├── contrib │ ├── benchmarks.aws-32.log │ └── benchmarks.aws-8.log ├── cpuid.cpp ├── cpuid.h ├── dlib │ ├── algs.h │ ├── array.h │ ├── array │ │ ├── array_kernel.h │ │ ├── array_kernel_abstract.h │ │ ├── array_tools.h │ │ └── array_tools_abstract.h │ ├── assert.h │ ├── binary_search_tree.h │ ├── binary_search_tree │ │ ├── binary_search_tree_kernel_1.h │ │ ├── binary_search_tree_kernel_2.h │ │ ├── binary_search_tree_kernel_abstract.h │ │ └── binary_search_tree_kernel_c.h │ ├── bound_function_pointer.h │ ├── bound_function_pointer │ │ ├── bound_function_pointer_kernel_1.h │ │ └── bound_function_pointer_kernel_abstract.h │ ├── byte_orderer.h │ ├── byte_orderer │ │ ├── byte_orderer_kernel_1.h │ │ └── byte_orderer_kernel_abstract.h │ ├── cassert │ ├── config.h │ ├── console_progress_indicator.h │ ├── cstring │ ├── dlib_basic_cpp_build_tutorial.txt │ ├── dlib_include_path_tutorial.txt │ ├── enable_if.h │ ├── error.h │ ├── float_details.h │ ├── fstream │ ├── hash.h │ ├── interfaces │ │ ├── cmd_line_parser_option.h │ │ ├── enumerable.h │ │ ├── map_pair.h │ │ └── remover.h │ ├── iomanip │ ├── iosfwd │ ├── iostream │ ├── is_kind.h │ ├── istream │ ├── locale │ ├── logger.h │ ├── logger │ │ ├── extra_logger_headers.h │ │ ├── logger_config_file.h │ │ ├── logger_kernel_1.h │ │ └── logger_kernel_abstract.h │ ├── map.h │ ├── map │ │ ├── map_kernel_1.h │ │ ├── map_kernel_abstract.h │ │ └── map_kernel_c.h │ ├── member_function_pointer.h │ ├── member_function_pointer │ │ ├── make_mfp.h │ │ ├── make_mfp_abstract.h │ │ ├── member_function_pointer_kernel_1.h │ │ └── member_function_pointer_kernel_abstract.h │ ├── memory_manager.h │ ├── memory_manager │ │ ├── memory_manager_kernel_1.h │ │ ├── memory_manager_kernel_2.h │ │ ├── memory_manager_kernel_3.h │ │ └── memory_manager_kernel_abstract.h │ ├── memory_manager_global.h │ ├── memory_manager_global │ │ ├── memory_manager_global_kernel_1.h │ │ └── memory_manager_global_kernel_abstract.h │ ├── memory_manager_stateless.h │ ├── memory_manager_stateless │ │ ├── memory_manager_stateless_kernel_1.h │ │ ├── memory_manager_stateless_kernel_2.h │ │ └── memory_manager_stateless_kernel_abstract.h │ ├── metaprogramming.h │ ├── misc_api.h │ ├── misc_api │ │ ├── misc_api_kernel_1.h │ │ ├── misc_api_kernel_2.h │ │ ├── misc_api_kernel_abstract.h │ │ ├── misc_api_shared.h │ │ ├── posix.h │ │ └── windows.h │ ├── noncopyable.h │ ├── numeric_constants.h │ ├── numerical_integration.h │ ├── numerical_integration │ │ ├── integrate_function_adapt_simpson.h │ │ └── integrate_function_adapt_simpson_abstract.h │ ├── ostream │ ├── pipe.h │ ├── pipe │ │ ├── pipe_kernel_1.h │ │ └── pipe_kernel_abstract.h │ ├── platform.h │ ├── queue.h │ ├── queue │ │ ├── queue_kernel_1.h │ │ ├── queue_kernel_2.h │ │ ├── queue_kernel_abstract.h │ │ ├── queue_kernel_c.h │ │ ├── queue_sort_1.h │ │ └── queue_sort_abstract.h │ ├── ref.h │ ├── revision.h │ ├── serialize.h │ ├── set.h │ ├── set │ │ ├── set_compare_1.h │ │ ├── set_compare_abstract.h │ │ ├── set_kernel_1.h │ │ ├── set_kernel_abstract.h │ │ └── set_kernel_c.h │ ├── sliding_buffer.h │ ├── sliding_buffer │ │ ├── circular_buffer.h │ │ ├── circular_buffer_abstract.h │ │ ├── sliding_buffer_kernel_1.h │ │ ├── sliding_buffer_kernel_abstract.h │ │ └── sliding_buffer_kernel_c.h │ ├── sockets.h │ ├── sockets │ │ ├── posix.h │ │ ├── sockets_extensions.h │ │ ├── sockets_extensions_abstract.h │ │ ├── sockets_kernel_1.h │ │ ├── sockets_kernel_2.h │ │ ├── sockets_kernel_abstract.h │ │ └── windows.h │ ├── sort.h │ ├── sparse_vector.h │ ├── sstream │ ├── stack.h │ ├── stack │ │ ├── stack_kernel_1.h │ │ ├── stack_kernel_abstract.h │ │ └── stack_kernel_c.h │ ├── stack_trace.h │ ├── std_allocator.h │ ├── stl_checked.h │ ├── stl_checked │ │ ├── std_vector_c.h │ │ └── std_vector_c_abstract.h │ ├── string.h │ ├── string │ │ ├── cassert │ │ ├── iomanip │ │ ├── iosfwd │ │ ├── iostream │ │ ├── locale │ │ ├── string.h │ │ └── string_abstract.h │ ├── test_for_odr_violations.cpp │ ├── test_for_odr_violations.h │ ├── threads.h │ ├── threads │ │ ├── async.h │ │ ├── async_abstract.h │ │ ├── auto_mutex_extension.h │ │ ├── auto_mutex_extension_abstract.h │ │ ├── auto_unlock_extension.h │ │ ├── auto_unlock_extension_abstract.h │ │ ├── create_new_thread_extension.h │ │ ├── create_new_thread_extension_abstract.h │ │ ├── multithreaded_object_extension.h │ │ ├── multithreaded_object_extension_abstract.h │ │ ├── parallel_for_extension.h │ │ ├── parallel_for_extension_abstract.h │ │ ├── posix.h │ │ ├── read_write_mutex_extension.h │ │ ├── read_write_mutex_extension_abstract.h │ │ ├── rmutex_extension.h │ │ ├── rmutex_extension_abstract.h │ │ ├── rsignaler_extension.h │ │ ├── rsignaler_extension_abstract.h │ │ ├── thread_function_extension.h │ │ ├── thread_function_extension_abstract.h │ │ ├── thread_pool_extension.h │ │ ├── thread_pool_extension_abstract.h │ │ ├── thread_specific_data_extension.h │ │ ├── thread_specific_data_extension_abstract.h │ │ ├── threaded_object_extension.h │ │ ├── threaded_object_extension_abstract.h │ │ ├── threads_kernel.h │ │ ├── threads_kernel_1.h │ │ ├── threads_kernel_2.h │ │ ├── threads_kernel_abstract.h │ │ ├── threads_kernel_shared.h │ │ └── windows.h │ ├── time_this.h │ ├── timeout.h │ ├── timeout │ │ ├── timeout.h │ │ └── timeout_abstract.h │ ├── timer.h │ ├── timer │ │ ├── timer.h │ │ ├── timer_abstract.h │ │ └── timer_heavy.h │ ├── timing.h │ ├── tokenizer.h │ ├── tokenizer │ │ ├── tokenizer_kernel_1.h │ │ ├── tokenizer_kernel_abstract.h │ │ └── tokenizer_kernel_c.h │ ├── uintn.h │ ├── unicode.h │ ├── unicode │ │ ├── unicode.h │ │ └── unicode_abstract.h │ ├── unordered_pair.h │ ├── vectorstream.h │ ├── vectorstream │ │ ├── unserialize.h │ │ ├── unserialize_abstract.h │ │ ├── vectorstream.h │ │ └── vectorstream_abstract.h │ └── windows_magic.h ├── dlibqueue.h ├── extract_graph_data.py ├── lockbasedqueue.h ├── makefile ├── simplelockfree.h ├── stdqueue.h ├── tbb │ ├── COPYING │ ├── README.txt │ ├── aggregator.h │ ├── aligned_space.h │ ├── arena.cpp │ ├── arena.h │ ├── atomic.h │ ├── blocked_range.h │ ├── blocked_range2d.h │ ├── blocked_range3d.h │ ├── cache_aligned_allocator.cpp │ ├── cache_aligned_allocator.h │ ├── cilk-tbb-interop.h │ ├── combinable.h │ ├── compat │ │ ├── condition_variable │ │ ├── ppl.h │ │ ├── thread │ │ └── tuple │ ├── concurrent_hash_map.cpp │ ├── concurrent_hash_map.h │ ├── concurrent_lru_cache.h │ ├── concurrent_monitor.cpp │ ├── concurrent_monitor.h │ ├── concurrent_priority_queue.h │ ├── concurrent_queue.cpp │ ├── concurrent_queue.h │ ├── concurrent_unordered_map.h │ ├── concurrent_unordered_set.h │ ├── concurrent_vector.cpp │ ├── concurrent_vector.h │ ├── condition_variable.cpp │ ├── critical_section.cpp │ ├── critical_section.h │ ├── custom_scheduler.h │ ├── dynamic_link.cpp │ ├── dynamic_link.h │ ├── enumerable_thread_specific.h │ ├── flow_graph.h │ ├── governor.cpp │ ├── governor.h │ ├── ia32-masm │ │ ├── atomic_support.asm │ │ ├── itsx.asm │ │ └── lock_byte.asm │ ├── ia64-gas │ │ ├── atomic_support.s │ │ ├── ia64_misc.s │ │ ├── lock_byte.s │ │ ├── log2.s │ │ └── pause.s │ ├── ibm_aix51 │ │ └── atomic_support.c │ ├── intel64-masm │ │ ├── atomic_support.asm │ │ ├── intel64_misc.asm │ │ └── itsx.asm │ ├── internal │ │ ├── _aggregator_impl.h │ │ ├── _concurrent_queue_impl.h │ │ ├── _concurrent_unordered_impl.h │ │ ├── _flow_graph_impl.h │ │ ├── _flow_graph_indexer_impl.h │ │ ├── _flow_graph_item_buffer_impl.h │ │ ├── _flow_graph_join_impl.h │ │ ├── _flow_graph_node_impl.h │ │ ├── _flow_graph_tagged_buffer_impl.h │ │ ├── _flow_graph_trace_impl.h │ │ ├── _flow_graph_types_impl.h │ │ ├── _mutex_padding.h │ │ ├── _range_iterator.h │ │ ├── _tbb_strings.h │ │ ├── _tbb_windef.h │ │ ├── _x86_eliding_mutex_impl.h │ │ └── _x86_rtm_rw_mutex_impl.h │ ├── intrusive_list.h │ ├── itt_notify.cpp │ ├── itt_notify.h │ ├── lin32-tbb-export.def │ ├── lin32-tbb-export.lst │ ├── lin64-tbb-export.def │ ├── lin64-tbb-export.lst │ ├── lin64ipf-tbb-export.def │ ├── lin64ipf-tbb-export.lst │ ├── mac32-tbb-export.def │ ├── mac32-tbb-export.lst │ ├── mac64-tbb-export.def │ ├── mac64-tbb-export.lst │ ├── machine │ │ ├── gcc_armv7.h │ │ ├── gcc_generic.h │ │ ├── gcc_ia32_common.h │ │ ├── gcc_itsx.h │ │ ├── ibm_aix51.h │ │ ├── icc_generic.h │ │ ├── linux_common.h │ │ ├── linux_ia32.h │ │ ├── linux_ia64.h │ │ ├── linux_intel64.h │ │ ├── mac_ppc.h │ │ ├── macos_common.h │ │ ├── mic_common.h │ │ ├── msvc_armv7.h │ │ ├── msvc_ia32_common.h │ │ ├── sunos_sparc.h │ │ ├── windows_api.h │ │ ├── windows_ia32.h │ │ ├── windows_intel64.h │ │ └── xbox360_ppc.h │ ├── mailbox.h │ ├── market.cpp │ ├── market.h │ ├── memory_pool.h │ ├── mutex.cpp │ ├── mutex.h │ ├── null_mutex.h │ ├── null_rw_mutex.h │ ├── observer_proxy.cpp │ ├── observer_proxy.h │ ├── parallel_do.h │ ├── parallel_for.h │ ├── parallel_for_each.h │ ├── parallel_invoke.h │ ├── parallel_reduce.h │ ├── parallel_scan.h │ ├── parallel_sort.h │ ├── parallel_while.h │ ├── partitioner.h │ ├── pipeline.cpp │ ├── pipeline.h │ ├── private_server.cpp │ ├── queuing_mutex.cpp │ ├── queuing_mutex.h │ ├── queuing_rw_mutex.cpp │ ├── queuing_rw_mutex.h │ ├── reader_writer_lock.cpp │ ├── reader_writer_lock.h │ ├── recursive_mutex.cpp │ ├── recursive_mutex.h │ ├── runtime_loader.h │ ├── scalable_allocator.h │ ├── scheduler.cpp │ ├── scheduler.h │ ├── scheduler_common.h │ ├── scheduler_utility.h │ ├── semaphore.cpp │ ├── semaphore.h │ ├── spin_mutex.cpp │ ├── spin_mutex.h │ ├── spin_rw_mutex.cpp │ ├── spin_rw_mutex.h │ ├── task.cpp │ ├── task.h │ ├── task_arena.h │ ├── task_group.h │ ├── task_group_context.cpp │ ├── task_scheduler_init.h │ ├── task_scheduler_observer.h │ ├── task_stream.h │ ├── tbb.h │ ├── tbb_allocator.h │ ├── tbb_assert_impl.h │ ├── tbb_config.h │ ├── tbb_exception.h │ ├── tbb_machine.h │ ├── tbb_main.cpp │ ├── tbb_main.h │ ├── tbb_misc.cpp │ ├── tbb_misc.h │ ├── tbb_misc_ex.cpp │ ├── tbb_profiling.h │ ├── tbb_resource.rc │ ├── tbb_statistics.cpp │ ├── tbb_statistics.h │ ├── tbb_stddef.h │ ├── tbb_thread.cpp │ ├── tbb_thread.h │ ├── tbb_version.h │ ├── tbbmalloc_proxy.h │ ├── tick_count.h │ ├── tls.h │ ├── tools_api │ │ ├── disable_warnings.h │ │ ├── internal │ │ │ └── ittnotify.h │ │ ├── ittnotify.h │ │ ├── ittnotify_config.h │ │ ├── ittnotify_static.c │ │ ├── ittnotify_static.h │ │ ├── ittnotify_types.h │ │ ├── legacy │ │ │ └── ittnotify.h │ │ └── prototype │ │ │ └── ittnotify.h │ ├── version_string.ver │ ├── win32-tbb-export.def │ ├── win32-tbb-export.lst │ ├── win64-gcc-tbb-export.def │ ├── win64-gcc-tbb-export.lst │ ├── win64-tbb-export.def │ ├── win64-tbb-export.lst │ ├── winrt-tbb-export.lst │ ├── x86_rtm_rw_mutex.cpp │ └── xbox360-tbb-export.def ├── tbbqueue.h └── wrappers.h ├── blockingconcurrentqueue.h ├── build ├── makefile ├── makefile.inc ├── msvc11 │ ├── benchmarks.vcxproj │ ├── benchmarks.vcxproj.filters │ ├── concurrentqueue.sln │ ├── fuzztests.vcxproj │ ├── fuzztests.vcxproj.filters │ ├── unittests.vcxproj │ └── unittests.vcxproj.filters ├── msvc12 │ ├── benchmarks.vcxproj │ ├── benchmarks.vcxproj.filters │ ├── concurrentqueue.sln │ ├── fuzztests.vcxproj │ ├── fuzztests.vcxproj.filters │ ├── msvc_tbb_stubs.cpp │ ├── unittests.vcxproj │ └── unittests.vcxproj.filters ├── msvc14 │ ├── benchmarks.vcxproj │ ├── benchmarks.vcxproj.filters │ ├── concurrentqueue.sln │ ├── fuzztests.vcxproj │ ├── fuzztests.vcxproj.filters │ ├── msvc_tbb_stubs.cpp │ ├── unittests.vcxproj │ └── unittests.vcxproj.filters ├── msvc15 │ ├── benchmarks.vcxproj │ ├── benchmarks.vcxproj.filters │ ├── concurrentqueue.sln │ ├── fuzztests.vcxproj │ ├── fuzztests.vcxproj.filters │ ├── msvc_tbb_stubs.cpp │ ├── unittests.vcxproj │ └── unittests.vcxproj.filters ├── msvc16 │ ├── benchmarks.vcxproj │ ├── benchmarks.vcxproj.filters │ ├── concurrentqueue.sln │ ├── fuzztests.vcxproj │ ├── fuzztests.vcxproj.filters │ ├── msvc_tbb_stubs.cpp │ ├── unittests.vcxproj │ └── unittests.vcxproj.filters └── xcode │ ├── Info.plist │ ├── concurrentqueue.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ └── contents.xcworkspacedata │ └── xcshareddata │ │ └── xcschemes │ │ └── concurrentqueue-unittests-ios.xcscheme │ └── main_ios.mm ├── c_api ├── blockingconcurrentqueue.cpp ├── concurrentqueue.cpp └── concurrentqueue.h ├── concurrentqueue.h ├── concurrentqueueConfig.cmake.in ├── internal └── concurrentqueue_internal_debug.h ├── lightweightsemaphore.h ├── samples.md └── tests ├── CDSChecker ├── README.txt ├── corealgo.h ├── enqueue_dequeue_many.cpp ├── enqueue_dequeue_one.cpp └── makefile ├── common ├── simplethread.cpp ├── simplethread.h ├── systemtime.cpp └── systemtime.h ├── corealgos.h ├── fuzztests ├── fuzztests.cpp └── makefile ├── relacy ├── freelist.cpp ├── integrated.cpp ├── makefile ├── relacy │ ├── CHANGES │ ├── LICENSE │ ├── VERSION │ ├── example │ │ ├── cli_ws_deque │ │ │ ├── cli_ws_deque.cpp │ │ │ ├── msvc8 │ │ │ │ ├── cli_ws_deque.sln │ │ │ │ └── cli_ws_deque.vcproj │ │ │ ├── stdafx.cpp │ │ │ └── stdafx.h │ │ ├── condvar │ │ │ ├── condvar.cpp │ │ │ ├── msvc8 │ │ │ │ ├── condvar.sln │ │ │ │ └── condvar.vcproj │ │ │ ├── msvc9 │ │ │ │ ├── condvar.sln │ │ │ │ └── condvar.vcproj │ │ │ ├── stdafx.cpp │ │ │ └── stdafx.h │ │ ├── eao_blocking │ │ │ └── eao_blocking.cpp │ │ ├── eventcount │ │ │ ├── eventcount.cpp │ │ │ ├── msvc8 │ │ │ │ ├── eventcount.sln │ │ │ │ └── eventcount.vcproj │ │ │ ├── msvc9 │ │ │ │ ├── eventcount.sln │ │ │ │ └── eventcount.vcproj │ │ │ ├── stdafx.cpp │ │ │ └── stdafx.h │ │ ├── examples │ │ │ ├── amp_condvar.hpp │ │ │ ├── examples.cpp │ │ │ ├── msvc9 │ │ │ │ ├── examples.sln │ │ │ │ └── examples.vcproj │ │ │ ├── spsc_overwrite_queue.hpp │ │ │ ├── stdafx.cpp │ │ │ └── stdafx.h │ │ ├── java_ws_deque │ │ │ ├── java_ws_deque.cpp │ │ │ ├── msvc8 │ │ │ │ ├── java_ws_deque.sln │ │ │ │ └── java_ws_deque.vcproj │ │ │ ├── stdafx.cpp │ │ │ └── stdafx.h │ │ ├── mpmc │ │ │ ├── mpmc.cpp │ │ │ ├── msvc8 │ │ │ │ ├── mpmc.sln │ │ │ │ └── mpmc.vcproj │ │ │ ├── pcx.h │ │ │ ├── stdafx.cpp │ │ │ └── stdafx.h │ │ ├── mutex_business_logic │ │ │ ├── msvc8 │ │ │ │ ├── mutex_business_logic.sln │ │ │ │ └── mutex_business_logic.vcproj │ │ │ ├── mutex_business_logic.cpp │ │ │ ├── stdafx.cpp │ │ │ └── stdafx.h │ │ ├── peterson │ │ │ ├── msvc8 │ │ │ │ ├── peterson.sln │ │ │ │ └── peterson.vcproj │ │ │ ├── msvc9 │ │ │ │ ├── peterson.sln │ │ │ │ └── peterson.vcproj │ │ │ ├── peterson.cpp │ │ │ ├── stdafx.cpp │ │ │ └── stdafx.h │ │ ├── proxy_collector │ │ │ ├── msvc8 │ │ │ │ ├── proxy_collector.sln │ │ │ │ └── proxy_collector.vcproj │ │ │ ├── msvc9 │ │ │ │ ├── proxy_collector.sln │ │ │ │ └── proxy_collector.vcproj │ │ │ ├── proxy_collector.cpp │ │ │ ├── stdafx.cpp │ │ │ └── stdafx.h │ │ ├── ref_counting │ │ │ ├── msvc8 │ │ │ │ ├── ref_counting.sln │ │ │ │ └── ref_counting.vcproj │ │ │ ├── msvc9 │ │ │ │ ├── ref_counting.sln │ │ │ │ └── ref_counting.vcproj │ │ │ ├── ref_counting.cpp │ │ │ ├── stdafx.cpp │ │ │ └── stdafx.h │ │ ├── smr │ │ │ ├── g++ │ │ │ │ └── Makefile │ │ │ ├── msvc8 │ │ │ │ ├── smr.sln │ │ │ │ └── smr.vcproj │ │ │ ├── msvc9 │ │ │ │ ├── smr.sln │ │ │ │ └── smr.vcproj │ │ │ ├── smr.cpp │ │ │ ├── stdafx.cpp │ │ │ └── stdafx.h │ │ ├── spsc_queue │ │ │ ├── msvc8 │ │ │ │ ├── spsc_queue.sln │ │ │ │ └── spsc_queue.vcproj │ │ │ ├── msvc9 │ │ │ │ ├── spsc_queue.sln │ │ │ │ └── spsc_queue.vcproj │ │ │ ├── spsc_queue.cpp │ │ │ ├── stdafx.cpp │ │ │ └── stdafx.h │ │ ├── stack │ │ │ ├── DESCRIPTION.TXT │ │ │ ├── msvc8 │ │ │ │ ├── stack.sln │ │ │ │ └── stack.vcproj │ │ │ ├── msvc9 │ │ │ │ ├── stack.sln │ │ │ │ └── stack.vcproj │ │ │ ├── stack.cpp │ │ │ ├── stdafx.cpp │ │ │ └── stdafx.h │ │ ├── tbb_eventcount │ │ │ ├── eventcount.cpp │ │ │ ├── msvc8 │ │ │ │ ├── eventcount.sln │ │ │ │ └── eventcount.vcproj │ │ │ ├── msvc9 │ │ │ │ ├── eventcount.sln │ │ │ │ └── eventcount.vcproj │ │ │ ├── stdafx.cpp │ │ │ └── stdafx.h │ │ ├── ws_deque │ │ │ ├── msvc8 │ │ │ │ ├── ws_deque.sln │ │ │ │ └── ws_deque.vcproj │ │ │ ├── msvc9 │ │ │ │ ├── ws_deque.sln │ │ │ │ └── ws_deque.vcproj │ │ │ ├── stdafx.cpp │ │ │ ├── stdafx.h │ │ │ └── ws_deque.cpp │ │ └── ws_deque2 │ │ │ ├── msvc8 │ │ │ ├── ws_deque.sln │ │ │ └── ws_deque.vcproj │ │ │ ├── stdafx.cpp │ │ │ ├── stdafx.h │ │ │ └── ws_deque.cpp │ ├── relacy │ │ ├── atomic.hpp │ │ ├── atomic_events.hpp │ │ ├── atomic_fence.hpp │ │ ├── backoff.hpp │ │ ├── base.hpp │ │ ├── cli.hpp │ │ ├── cli_interlocked.hpp │ │ ├── cli_var.hpp │ │ ├── cli_volatile.hpp │ │ ├── context.hpp │ │ ├── context_addr_hash.hpp │ │ ├── context_base.hpp │ │ ├── context_base_impl.hpp │ │ ├── context_bound_scheduler.hpp │ │ ├── defs.hpp │ │ ├── dyn_thread.hpp │ │ ├── dyn_thread_ctx.hpp │ │ ├── foreach.hpp │ │ ├── full_search_scheduler.hpp │ │ ├── history.hpp │ │ ├── java.hpp │ │ ├── java_atomic.hpp │ │ ├── java_var.hpp │ │ ├── java_volatile.hpp │ │ ├── memory.hpp │ │ ├── memory_order.hpp │ │ ├── pch.hpp │ │ ├── platform.hpp │ │ ├── pthread.h │ │ ├── random.hpp │ │ ├── random_scheduler.hpp │ │ ├── relacy.hpp │ │ ├── relacy_cli.hpp │ │ ├── relacy_java.hpp │ │ ├── relacy_std.hpp │ │ ├── rmw.hpp │ │ ├── scheduler.hpp │ │ ├── signature.hpp │ │ ├── slab_allocator.hpp │ │ ├── stdlib │ │ │ ├── condition_variable.hpp │ │ │ ├── event.hpp │ │ │ ├── mutex.hpp │ │ │ ├── pthread.hpp │ │ │ ├── semaphore.hpp │ │ │ └── windows.hpp │ │ ├── sync_var.hpp │ │ ├── test_params.hpp │ │ ├── test_result.hpp │ │ ├── test_suite.hpp │ │ ├── thread.hpp │ │ ├── thread_base.hpp │ │ ├── thread_local.hpp │ │ ├── thread_local_ctx.hpp │ │ ├── var.hpp │ │ ├── volatile.hpp │ │ ├── waitset.hpp │ │ └── windows.h │ └── test │ │ ├── addr_hash.hpp │ │ ├── advanced.txt │ │ ├── compare_swap.hpp │ │ ├── condvar.hpp │ │ ├── data_race.hpp │ │ ├── detection.txt │ │ ├── dyn_thread.hpp │ │ ├── event.hpp │ │ ├── features.txt │ │ ├── fence.hpp │ │ ├── foo.cpp │ │ ├── futex.hpp │ │ ├── g++ │ │ ├── build_all_cygwin_debug.bat │ │ ├── build_all_debug.bat │ │ ├── build_all_release.sh │ │ ├── build_cygwin_release.cmd │ │ ├── build_debug.cmd │ │ ├── build_release.cmd │ │ └── test.cpp │ │ ├── iriw.cpp │ │ ├── jtest │ │ ├── jtest.cpp │ │ ├── msvc8 │ │ │ ├── jtest.sln │ │ │ └── jtest.vcproj │ │ ├── msvc9 │ │ │ ├── jtest.sln │ │ │ └── jtest.vcproj │ │ ├── stdafx.cpp │ │ └── stdafx.h │ │ ├── main.cpp │ │ ├── memory.hpp │ │ ├── memory_order.hpp │ │ ├── msvc71 │ │ ├── test.sln │ │ └── test.vcproj │ │ ├── msvc8 │ │ ├── rrd.sln │ │ ├── rrd.vcproj │ │ ├── test.sln │ │ └── test.vcproj │ │ ├── msvc9 │ │ ├── rrd.sln │ │ ├── rrd.vcproj │ │ ├── test.sln │ │ └── test.vcproj │ │ ├── mutex.hpp │ │ ├── ntest │ │ ├── msvc8 │ │ │ ├── ntest.sln │ │ │ └── ntest.vcproj │ │ ├── msvc9 │ │ │ ├── ntest.sln │ │ │ └── ntest.vcproj │ │ ├── ntest.cpp │ │ ├── stdafx.cpp │ │ └── stdafx.h │ │ ├── pthread.hpp │ │ ├── scheduler.hpp │ │ ├── semaphore.hpp │ │ ├── stdafx.cpp │ │ ├── stdafx.h │ │ ├── thread_local.hpp │ │ ├── todo.txt │ │ ├── trash │ │ ├── original.hpp │ │ └── rtl.hpp │ │ ├── tutorial.txt │ │ ├── wfmo.hpp │ │ └── windows.hpp ├── relacy_shims.h └── spmchash.cpp └── unittests ├── makefile ├── mallocmacro.cpp ├── minitest.h └── unittests.cpp /.gitignore: -------------------------------------------------------------------------------- 1 | *.ipch 2 | *.suo 3 | *.user 4 | *.sdf 5 | *.opensdf 6 | *.exe 7 | *.pdb 8 | *.vs 9 | *.VC.db 10 | build/bin/ 11 | build/*.o 12 | build/*.log 13 | build/msvc16/*.log 14 | build/msvc16/obj/ 15 | build/msvc15/*.log 16 | build/msvc15/obj/ 17 | build/msvc14/*.log 18 | build/msvc14/obj/ 19 | build/msvc12/*.log 20 | build/msvc12/obj/ 21 | build/msvc11/*.log 22 | build/msvc11/obj/ 23 | build/xcode/build/ 24 | .idea/ 25 | cmake-build*/ 26 | tests/fuzztests/fuzztests.log 27 | benchmarks/benchmarks.log 28 | tests/CDSChecker/*.o 29 | tests/CDSChecker/*.log 30 | tests/CDSChecker/model-checker/ 31 | tests/relacy/freelist.exe 32 | tests/relacy/spmchash.exe 33 | tests/relacy/log.txt 34 | -------------------------------------------------------------------------------- /benchmarks/boost/README.txt: -------------------------------------------------------------------------------- 1 | This is a partial copy of Boost 1.60, specifically only the parts that 2 | boost/lockfree/queue.hpp depends on (extracted using bcp). -------------------------------------------------------------------------------- /benchmarks/boost/atomic.hpp: -------------------------------------------------------------------------------- 1 | #ifndef BOOST_ATOMIC_HPP 2 | #define BOOST_ATOMIC_HPP 3 | 4 | // Copyright (c) 2011 Helge Bahmann 5 | // 6 | // Distributed under the Boost Software License, Version 1.0. 7 | // See accompanying file LICENSE_1_0.txt or copy at 8 | // http://www.boost.org/LICENSE_1_0.txt) 9 | 10 | // This header includes all Boost.Atomic public headers 11 | 12 | #include 13 | 14 | #ifdef BOOST_HAS_PRAGMA_ONCE 15 | #pragma once 16 | #endif 17 | 18 | #endif 19 | -------------------------------------------------------------------------------- /benchmarks/boost/atomic/atomic_flag.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Distributed under the Boost Software License, Version 1.0. 3 | * (See accompanying file LICENSE_1_0.txt or copy at 4 | * http://www.boost.org/LICENSE_1_0.txt) 5 | * 6 | * Copyright (c) 2011 Helge Bahmann 7 | * Copyright (c) 2013 Tim Blechmann 8 | * Copyright (c) 2014 Andrey Semashev 9 | */ 10 | /*! 11 | * \file atomic/atomic_flag.hpp 12 | * 13 | * This header contains definition of \c atomic_flag. 14 | */ 15 | 16 | #ifndef BOOST_ATOMIC_ATOMIC_FLAG_HPP_INCLUDED_ 17 | #define BOOST_ATOMIC_ATOMIC_FLAG_HPP_INCLUDED_ 18 | 19 | #include 20 | #include 21 | #include 22 | 23 | #ifdef BOOST_HAS_PRAGMA_ONCE 24 | #pragma once 25 | #endif 26 | 27 | namespace boost { 28 | 29 | using atomics::atomic_flag; 30 | 31 | } // namespace boost 32 | 33 | #endif // BOOST_ATOMIC_ATOMIC_FLAG_HPP_INCLUDED_ 34 | -------------------------------------------------------------------------------- /benchmarks/boost/atomic/detail/operations.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Distributed under the Boost Software License, Version 1.0. 3 | * (See accompanying file LICENSE_1_0.txt or copy at 4 | * http://www.boost.org/LICENSE_1_0.txt) 5 | * 6 | * Copyright (c) 2014 Andrey Semashev 7 | */ 8 | /*! 9 | * \file atomic/detail/operations.hpp 10 | * 11 | * This header defines atomic operations, including the emulated version. 12 | */ 13 | 14 | #ifndef BOOST_ATOMIC_DETAIL_OPERATIONS_HPP_INCLUDED_ 15 | #define BOOST_ATOMIC_DETAIL_OPERATIONS_HPP_INCLUDED_ 16 | 17 | #include 18 | #include 19 | 20 | #ifdef BOOST_HAS_PRAGMA_ONCE 21 | #pragma once 22 | #endif 23 | 24 | #endif // BOOST_ATOMIC_DETAIL_OPERATIONS_HPP_INCLUDED_ 25 | -------------------------------------------------------------------------------- /benchmarks/boost/atomic/detail/operations_fwd.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Distributed under the Boost Software License, Version 1.0. 3 | * (See accompanying file LICENSE_1_0.txt or copy at 4 | * http://www.boost.org/LICENSE_1_0.txt) 5 | * 6 | * Copyright (c) 2014 Andrey Semashev 7 | */ 8 | /*! 9 | * \file atomic/detail/operations_fwd.hpp 10 | * 11 | * This header contains forward declaration of the \c operations template. 12 | */ 13 | 14 | #ifndef BOOST_ATOMIC_DETAIL_OPERATIONS_FWD_HPP_INCLUDED_ 15 | #define BOOST_ATOMIC_DETAIL_OPERATIONS_FWD_HPP_INCLUDED_ 16 | 17 | #include 18 | #include 19 | 20 | #ifdef BOOST_HAS_PRAGMA_ONCE 21 | #pragma once 22 | #endif 23 | 24 | namespace boost { 25 | namespace atomics { 26 | namespace detail { 27 | 28 | template< std::size_t Size, bool Signed > 29 | struct operations; 30 | 31 | } // namespace detail 32 | } // namespace atomics 33 | } // namespace boost 34 | 35 | #endif // BOOST_ATOMIC_DETAIL_OPERATIONS_FWD_HPP_INCLUDED_ 36 | -------------------------------------------------------------------------------- /benchmarks/boost/atomic/detail/operations_lockfree.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Distributed under the Boost Software License, Version 1.0. 3 | * (See accompanying file LICENSE_1_0.txt or copy at 4 | * http://www.boost.org/LICENSE_1_0.txt) 5 | * 6 | * Copyright (c) 2014 Andrey Semashev 7 | */ 8 | /*! 9 | * \file atomic/detail/operations_lockfree.hpp 10 | * 11 | * This header defines lockfree atomic operations. 12 | */ 13 | 14 | #ifndef BOOST_ATOMIC_DETAIL_OPERATIONS_LOCKFREE_HPP_INCLUDED_ 15 | #define BOOST_ATOMIC_DETAIL_OPERATIONS_LOCKFREE_HPP_INCLUDED_ 16 | 17 | #include 18 | #include 19 | 20 | #if !defined(BOOST_ATOMIC_EMULATED) 21 | #include BOOST_ATOMIC_DETAIL_HEADER(boost/atomic/detail/ops_) 22 | #else 23 | #include 24 | #endif 25 | 26 | #ifdef BOOST_HAS_PRAGMA_ONCE 27 | #pragma once 28 | #endif 29 | 30 | #endif // BOOST_ATOMIC_DETAIL_OPERATIONS_LOCKFREE_HPP_INCLUDED_ 31 | -------------------------------------------------------------------------------- /benchmarks/boost/config/abi/borland_suffix.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2003. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | # pragma option pop 7 | #pragma nopushoptwarn 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /benchmarks/boost/config/abi/msvc_prefix.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2003. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | // 7 | // Boost binaries are built with the compiler's default ABI settings, 8 | // if the user changes their default alignment in the VS IDE then their 9 | // code will no longer be binary compatible with the bjam built binaries 10 | // unless this header is included to force Boost code into a consistent ABI. 11 | // 12 | // Note that inclusion of this header is only necessary for libraries with 13 | // separate source, header only libraries DO NOT need this as long as all 14 | // translation units are built with the same options. 15 | // 16 | #if defined(_M_X64) 17 | # pragma pack(push,16) 18 | #else 19 | # pragma pack(push,8) 20 | #endif 21 | 22 | 23 | -------------------------------------------------------------------------------- /benchmarks/boost/config/abi/msvc_suffix.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2003. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #pragma pack(pop) 7 | 8 | 9 | -------------------------------------------------------------------------------- /benchmarks/boost/config/abi_prefix.hpp: -------------------------------------------------------------------------------- 1 | // abi_prefix header -------------------------------------------------------// 2 | 3 | // (c) Copyright John Maddock 2003 4 | 5 | // Use, modification and distribution are subject to the Boost Software License, 6 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 7 | // http://www.boost.org/LICENSE_1_0.txt). 8 | 9 | #ifndef BOOST_CONFIG_ABI_PREFIX_HPP 10 | # define BOOST_CONFIG_ABI_PREFIX_HPP 11 | #else 12 | # error double inclusion of header boost/config/abi_prefix.hpp is an error 13 | #endif 14 | 15 | #include 16 | 17 | // this must occur after all other includes and before any code appears: 18 | #ifdef BOOST_HAS_ABI_HEADERS 19 | # include BOOST_ABI_PREFIX 20 | #endif 21 | 22 | #if defined( __BORLANDC__ ) 23 | #pragma nopushoptwarn 24 | #endif 25 | 26 | -------------------------------------------------------------------------------- /benchmarks/boost/config/abi_suffix.hpp: -------------------------------------------------------------------------------- 1 | // abi_sufffix header -------------------------------------------------------// 2 | 3 | // (c) Copyright John Maddock 2003 4 | 5 | // Use, modification and distribution are subject to the Boost Software License, 6 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 7 | // http://www.boost.org/LICENSE_1_0.txt). 8 | 9 | // This header should be #included AFTER code that was preceded by a #include 10 | // . 11 | 12 | #ifndef BOOST_CONFIG_ABI_PREFIX_HPP 13 | # error Header boost/config/abi_suffix.hpp must only be used after boost/config/abi_prefix.hpp 14 | #else 15 | # undef BOOST_CONFIG_ABI_PREFIX_HPP 16 | #endif 17 | 18 | // the suffix header occurs after all of our code: 19 | #ifdef BOOST_HAS_ABI_HEADERS 20 | # include BOOST_ABI_SUFFIX 21 | #endif 22 | 23 | #if defined( __BORLANDC__ ) 24 | #pragma nopushoptwarn 25 | #endif 26 | 27 | 28 | -------------------------------------------------------------------------------- /benchmarks/boost/config/compiler/compaq_cxx.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2001 - 2003. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | // See http://www.boost.org for most recent version. 7 | 8 | // Tru64 C++ compiler setup (now HP): 9 | 10 | #define BOOST_COMPILER "HP Tru64 C++ " BOOST_STRINGIZE(__DECCXX_VER) 11 | 12 | #include "boost/config/compiler/common_edg.hpp" 13 | 14 | // 15 | // versions check: 16 | // Nothing to do here? 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /benchmarks/boost/config/compiler/greenhills.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2001. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | // See http://www.boost.org for most recent version. 7 | 8 | // Greenhills C++ compiler setup: 9 | 10 | #define BOOST_COMPILER "Greenhills C++ version " BOOST_STRINGIZE(__ghs) 11 | 12 | #include "boost/config/compiler/common_edg.hpp" 13 | 14 | // 15 | // versions check: 16 | // we don't support Greenhills prior to version 0: 17 | #if __ghs < 0 18 | # error "Compiler not supported or configured - please reconfigure" 19 | #endif 20 | // 21 | // last known and checked version is 0: 22 | #if (__ghs > 0) 23 | # if defined(BOOST_ASSERT_CONFIG) 24 | # error "Unknown compiler version - please run the configure tests and report the results" 25 | # endif 26 | #endif 27 | 28 | 29 | -------------------------------------------------------------------------------- /benchmarks/boost/config/compiler/nvcc.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright Eric Jourdanneau, Joel Falcou 2010 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | // See http://www.boost.org for most recent version. 7 | 8 | // NVIDIA CUDA C++ compiler setup 9 | 10 | #ifndef BOOST_COMPILER 11 | # define BOOST_COMPILER "NVIDIA CUDA C++ Compiler" 12 | #endif 13 | 14 | // NVIDIA Specific support 15 | // BOOST_GPU_ENABLED : Flag a function or a method as being enabled on the host and device 16 | #define BOOST_GPU_ENABLED __host__ __device__ 17 | -------------------------------------------------------------------------------- /benchmarks/boost/config/compiler/sgi_mipspro.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2001 - 2002. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | // See http://www.boost.org for most recent version. 7 | 8 | // SGI C++ compiler setup: 9 | 10 | #define BOOST_COMPILER "SGI Irix compiler version " BOOST_STRINGIZE(_COMPILER_VERSION) 11 | 12 | #include "boost/config/compiler/common_edg.hpp" 13 | 14 | // 15 | // Threading support: 16 | // Turn this on unconditionally here, it will get turned off again later 17 | // if no threading API is detected. 18 | // 19 | #define BOOST_HAS_THREADS 20 | #define BOOST_NO_TWO_PHASE_NAME_LOOKUP 21 | 22 | #undef BOOST_NO_SWPRINTF 23 | #undef BOOST_DEDUCED_TYPENAME 24 | 25 | // 26 | // version check: 27 | // probably nothing to do here? 28 | 29 | 30 | -------------------------------------------------------------------------------- /benchmarks/boost/config/no_tr1/cmath.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2008. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | // 6 | // The aim of this header is just to include but to do 7 | // so in a way that does not result in recursive inclusion of 8 | // the Boost TR1 components if boost/tr1/tr1/cmath is in the 9 | // include search path. We have to do this to avoid circular 10 | // dependencies: 11 | // 12 | 13 | #ifndef BOOST_CONFIG_CMATH 14 | # define BOOST_CONFIG_CMATH 15 | 16 | # ifndef BOOST_TR1_NO_RECURSION 17 | # define BOOST_TR1_NO_RECURSION 18 | # define BOOST_CONFIG_NO_CMATH_RECURSION 19 | # endif 20 | 21 | # include 22 | 23 | # ifdef BOOST_CONFIG_NO_CMATH_RECURSION 24 | # undef BOOST_TR1_NO_RECURSION 25 | # undef BOOST_CONFIG_NO_CMATH_RECURSION 26 | # endif 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /benchmarks/boost/config/no_tr1/complex.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2005. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | // 6 | // The aim of this header is just to include but to do 7 | // so in a way that does not result in recursive inclusion of 8 | // the Boost TR1 components if boost/tr1/tr1/complex is in the 9 | // include search path. We have to do this to avoid circular 10 | // dependencies: 11 | // 12 | 13 | #ifndef BOOST_CONFIG_COMPLEX 14 | # define BOOST_CONFIG_COMPLEX 15 | 16 | # ifndef BOOST_TR1_NO_RECURSION 17 | # define BOOST_TR1_NO_RECURSION 18 | # define BOOST_CONFIG_NO_COMPLEX_RECURSION 19 | # endif 20 | 21 | # include 22 | 23 | # ifdef BOOST_CONFIG_NO_COMPLEX_RECURSION 24 | # undef BOOST_TR1_NO_RECURSION 25 | # undef BOOST_CONFIG_NO_COMPLEX_RECURSION 26 | # endif 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /benchmarks/boost/config/no_tr1/memory.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2005. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | // 6 | // The aim of this header is just to include but to do 7 | // so in a way that does not result in recursive inclusion of 8 | // the Boost TR1 components if boost/tr1/tr1/memory is in the 9 | // include search path. We have to do this to avoid circular 10 | // dependencies: 11 | // 12 | 13 | #ifndef BOOST_CONFIG_MEMORY 14 | # define BOOST_CONFIG_MEMORY 15 | 16 | # ifndef BOOST_TR1_NO_RECURSION 17 | # define BOOST_TR1_NO_RECURSION 18 | # define BOOST_CONFIG_NO_MEMORY_RECURSION 19 | # endif 20 | 21 | # include 22 | 23 | # ifdef BOOST_CONFIG_NO_MEMORY_RECURSION 24 | # undef BOOST_TR1_NO_RECURSION 25 | # undef BOOST_CONFIG_NO_MEMORY_RECURSION 26 | # endif 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /benchmarks/boost/config/no_tr1/utility.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2005. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | // 6 | // The aim of this header is just to include but to do 7 | // so in a way that does not result in recursive inclusion of 8 | // the Boost TR1 components if boost/tr1/tr1/utility is in the 9 | // include search path. We have to do this to avoid circular 10 | // dependencies: 11 | // 12 | 13 | #ifndef BOOST_CONFIG_UTILITY 14 | # define BOOST_CONFIG_UTILITY 15 | 16 | # ifndef BOOST_TR1_NO_RECURSION 17 | # define BOOST_TR1_NO_RECURSION 18 | # define BOOST_CONFIG_NO_UTILITY_RECURSION 19 | # endif 20 | 21 | # include 22 | 23 | # ifdef BOOST_CONFIG_NO_UTILITY_RECURSION 24 | # undef BOOST_TR1_NO_RECURSION 25 | # undef BOOST_CONFIG_NO_UTILITY_RECURSION 26 | # endif 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /benchmarks/boost/config/platform/amigaos.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2002. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | // See http://www.boost.org for most recent version. 7 | 8 | #define BOOST_PLATFORM "AmigaOS" 9 | 10 | #define BOOST_DISABLE_THREADS 11 | #define BOOST_NO_CWCHAR 12 | #define BOOST_NO_STD_WSTRING 13 | #define BOOST_NO_INTRINSIC_WCHAR_T 14 | 15 | 16 | -------------------------------------------------------------------------------- /benchmarks/boost/config/platform/beos.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2001. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | // See http://www.boost.org for most recent version. 7 | 8 | // BeOS specific config options: 9 | 10 | #define BOOST_PLATFORM "BeOS" 11 | 12 | #define BOOST_NO_CWCHAR 13 | #define BOOST_NO_CWCTYPE 14 | #define BOOST_HAS_UNISTD_H 15 | 16 | #define BOOST_HAS_BETHREADS 17 | 18 | #ifndef BOOST_DISABLE_THREADS 19 | # define BOOST_HAS_THREADS 20 | #endif 21 | 22 | // boilerplate code: 23 | #include 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /benchmarks/boost/config/platform/cloudabi.hpp: -------------------------------------------------------------------------------- 1 | // Copyright Nuxi, https://nuxi.nl/ 2015. 2 | // Distributed under the Boost Software License, Version 1.0. 3 | // (See accompanying file LICENSE_1_0.txt or copy at 4 | // http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #define BOOST_PLATFORM "CloudABI" 7 | 8 | #define BOOST_HAS_DIRENT_H 9 | #define BOOST_HAS_STDINT_H 10 | #define BOOST_HAS_UNISTD_H 11 | 12 | #define BOOST_HAS_CLOCK_GETTIME 13 | #define BOOST_HAS_EXPM1 14 | #define BOOST_HAS_GETTIMEOFDAY 15 | #define BOOST_HAS_LOG1P 16 | #define BOOST_HAS_NANOSLEEP 17 | #define BOOST_HAS_PTHREADS 18 | #define BOOST_HAS_SCHED_YIELD 19 | -------------------------------------------------------------------------------- /benchmarks/boost/config/platform/cray.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2011. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | 7 | // See http://www.boost.org for most recent version. 8 | 9 | // SGI Irix specific config options: 10 | 11 | #define BOOST_PLATFORM "Cray" 12 | 13 | // boilerplate code: 14 | #define BOOST_HAS_UNISTD_H 15 | #include 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /benchmarks/boost/config/platform/haiku.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright Jessica Hamilton 2014. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | // See http://www.boost.org for most recent version. 7 | 8 | // Haiku specific config options: 9 | 10 | #define BOOST_PLATFORM "Haiku" 11 | 12 | #define BOOST_HAS_UNISTD_H 13 | #define BOOST_HAS_STDINT_H 14 | 15 | #ifndef BOOST_DISABLE_THREADS 16 | # define BOOST_HAS_THREADS 17 | #endif 18 | 19 | #define BOOST_NO_CXX11_HDR_TYPE_TRAITS 20 | #define BOOST_NO_CXX11_ATOMIC_SMART_PTR 21 | #define BOOST_NO_CXX11_STATIC_ASSERT 22 | #define BOOST_NO_CXX11_VARIADIC_MACROS 23 | 24 | // 25 | // thread API's not auto detected: 26 | // 27 | #define BOOST_HAS_SCHED_YIELD 28 | #define BOOST_HAS_GETTIMEOFDAY 29 | 30 | // boilerplate code: 31 | #include 32 | -------------------------------------------------------------------------------- /benchmarks/boost/config/platform/irix.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2001 - 2003. 2 | // (C) Copyright Jens Maurer 2003. 3 | // Use, modification and distribution are subject to the 4 | // Boost Software License, Version 1.0. (See accompanying file 5 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 | 7 | 8 | // See http://www.boost.org for most recent version. 9 | 10 | // SGI Irix specific config options: 11 | 12 | #define BOOST_PLATFORM "SGI Irix" 13 | 14 | #define BOOST_NO_SWPRINTF 15 | // 16 | // these are not auto detected by POSIX feature tests: 17 | // 18 | #define BOOST_HAS_GETTIMEOFDAY 19 | #define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE 20 | 21 | #ifdef __GNUC__ 22 | // GNU C on IRIX does not support threads (checked up to gcc 3.3) 23 | # define BOOST_DISABLE_THREADS 24 | #endif 25 | 26 | // boilerplate code: 27 | #define BOOST_HAS_UNISTD_H 28 | #include 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /benchmarks/boost/config/platform/qnxnto.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright Jim Douglas 2005. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | // See http://www.boost.org for most recent version. 7 | 8 | // QNX specific config options: 9 | 10 | #define BOOST_PLATFORM "QNX" 11 | 12 | #define BOOST_HAS_UNISTD_H 13 | #include 14 | 15 | // QNX claims XOpen version 5 compatibility, but doesn't have an nl_types.h 16 | // or log1p and expm1: 17 | #undef BOOST_HAS_NL_TYPES_H 18 | #undef BOOST_HAS_LOG1P 19 | #undef BOOST_HAS_EXPM1 20 | 21 | #define BOOST_HAS_PTHREADS 22 | #define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE 23 | 24 | #define BOOST_HAS_GETTIMEOFDAY 25 | #define BOOST_HAS_CLOCK_GETTIME 26 | #define BOOST_HAS_NANOSLEEP 27 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /benchmarks/boost/config/platform/solaris.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2001 - 2003. 2 | // (C) Copyright Jens Maurer 2003. 3 | // Use, modification and distribution are subject to the 4 | // Boost Software License, Version 1.0. (See accompanying file 5 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 | 7 | // See http://www.boost.org for most recent version. 8 | 9 | // sun specific config options: 10 | 11 | #define BOOST_PLATFORM "Sun Solaris" 12 | 13 | #define BOOST_HAS_GETTIMEOFDAY 14 | 15 | // boilerplate code: 16 | #define BOOST_HAS_UNISTD_H 17 | #include 18 | 19 | // 20 | // pthreads don't actually work with gcc unless _PTHREADS is defined: 21 | // 22 | #if defined(__GNUC__) && defined(_POSIX_THREADS) && !defined(_PTHREADS) 23 | # undef BOOST_HAS_PTHREADS 24 | #endif 25 | 26 | #define BOOST_HAS_STDINT_H 27 | #define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE 28 | #define BOOST_HAS_LOG1P 29 | #define BOOST_HAS_EXPM1 30 | 31 | 32 | -------------------------------------------------------------------------------- /benchmarks/boost/config/platform/vms.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright Artyom Beilis 2010. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #ifndef BOOST_CONFIG_PLATFORM_VMS_HPP 7 | #define BOOST_CONFIG_PLATFORM_VMS_HPP 8 | 9 | #define BOOST_PLATFORM "OpenVMS" 10 | 11 | #undef BOOST_HAS_STDINT_H 12 | #define BOOST_HAS_UNISTD_H 13 | #define BOOST_HAS_NL_TYPES_H 14 | #define BOOST_HAS_GETTIMEOFDAY 15 | #define BOOST_HAS_DIRENT_H 16 | #define BOOST_HAS_PTHREADS 17 | #define BOOST_HAS_NANOSLEEP 18 | #define BOOST_HAS_CLOCK_GETTIME 19 | #define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE 20 | #define BOOST_HAS_LOG1P 21 | #define BOOST_HAS_EXPM1 22 | #define BOOST_HAS_THREADS 23 | #undef BOOST_HAS_SCHED_YIELD 24 | 25 | #endif 26 | -------------------------------------------------------------------------------- /benchmarks/boost/detail/iterator.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright David Abrahams 2002. 2 | // Distributed under the Boost Software License, Version 1.0. (See 3 | // accompanying file LICENSE_1_0.txt or copy at 4 | // http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #ifndef ITERATOR_DWA122600_HPP_ 7 | #define ITERATOR_DWA122600_HPP_ 8 | 9 | // This header is obsolete and will be deprecated. 10 | 11 | #include 12 | 13 | namespace boost 14 | { 15 | 16 | namespace detail 17 | { 18 | 19 | using std::iterator_traits; 20 | using std::distance; 21 | 22 | } // namespace detail 23 | 24 | } // namespace boost 25 | 26 | #endif // ITERATOR_DWA122600_HPP_ 27 | -------------------------------------------------------------------------------- /benchmarks/boost/functional/hash_fwd.hpp: -------------------------------------------------------------------------------- 1 | 2 | // Copyright 2005-2009 Daniel James. 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | #if defined(BOOST_HAS_PRAGMA_ONCE) 8 | #pragma once 9 | #endif 10 | 11 | #include 12 | -------------------------------------------------------------------------------- /benchmarks/boost/lockfree/detail/tagged_ptr.hpp: -------------------------------------------------------------------------------- 1 | // tagged pointer, for aba prevention 2 | // 3 | // Copyright (C) 2008 Tim Blechmann 4 | // 5 | // Distributed under the Boost Software License, Version 1.0. (See 6 | // accompanying file LICENSE_1_0.txt or copy at 7 | // http://www.boost.org/LICENSE_1_0.txt) 8 | 9 | #ifndef BOOST_LOCKFREE_TAGGED_PTR_HPP_INCLUDED 10 | #define BOOST_LOCKFREE_TAGGED_PTR_HPP_INCLUDED 11 | 12 | #include 13 | #include 14 | 15 | #ifndef BOOST_LOCKFREE_PTR_COMPRESSION 16 | #include 17 | #else 18 | #include 19 | #endif 20 | 21 | #endif /* BOOST_LOCKFREE_TAGGED_PTR_HPP_INCLUDED */ 22 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/O1_size_fwd.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_O1_SIZE_FWD_HPP_INCLUDED 3 | #define BOOST_MPL_O1_SIZE_FWD_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2000-2004 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | namespace boost { namespace mpl { 18 | 19 | template< typename Tag > struct O1_size_impl; 20 | template< typename Sequence > struct O1_size; 21 | 22 | }} 23 | 24 | #endif // BOOST_MPL_O1_SIZE_FWD_HPP_INCLUDED 25 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/always.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_ALWAYS_HPP_INCLUDED 3 | #define BOOST_MPL_ALWAYS_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2001-2004 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #include 18 | #include 19 | #include 20 | 21 | namespace boost { namespace mpl { 22 | 23 | template< typename Value > struct always 24 | { 25 | template< 26 | BOOST_MPL_PP_DEFAULT_PARAMS(BOOST_MPL_LIMIT_METAFUNCTION_ARITY, typename T, na) 27 | > 28 | struct apply 29 | { 30 | typedef Value type; 31 | }; 32 | }; 33 | 34 | BOOST_MPL_AUX_ARITY_SPEC(0, always) 35 | 36 | }} 37 | 38 | #endif // BOOST_MPL_ALWAYS_HPP_INCLUDED 39 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/arg_fwd.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_ARG_FWD_HPP_INCLUDED 3 | #define BOOST_MPL_ARG_FWD_HPP_INCLUDED 4 | 5 | // Copyright Peter Dimov 2001-2002 6 | // Copyright Aleksey Gurtovoy 2001-2004 7 | // 8 | // Distributed under the Boost Software License, Version 1.0. 9 | // (See accompanying file LICENSE_1_0.txt or copy at 10 | // http://www.boost.org/LICENSE_1_0.txt) 11 | // 12 | // See http://www.boost.org/libs/mpl for documentation. 13 | 14 | // $Id$ 15 | // $Date$ 16 | // $Revision$ 17 | 18 | #include 19 | #include 20 | 21 | BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN 22 | 23 | template< BOOST_MPL_AUX_NTTP_DECL(int, N) > struct arg; 24 | 25 | BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE 26 | BOOST_MPL_AUX_ADL_BARRIER_DECL(arg) 27 | 28 | #endif // BOOST_MPL_ARG_FWD_HPP_INCLUDED 29 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/at_fwd.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AT_FWD_HPP_INCLUDED 3 | #define BOOST_MPL_AT_FWD_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2000-2004 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | namespace boost { namespace mpl { 18 | 19 | template< typename Tag > struct at_impl; 20 | template< typename Sequence, typename N > struct at; 21 | 22 | }} 23 | 24 | #endif // BOOST_MPL_AT_FWD_HPP_INCLUDED 25 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/aux_/arg_typedef.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_ARG_TYPEDEF_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_ARG_TYPEDEF_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2001-2004 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #include 18 | #include 19 | 20 | #if defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT) \ 21 | || BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) 22 | 23 | # define BOOST_MPL_AUX_ARG_TYPEDEF(T, name) typedef T name; 24 | 25 | #else 26 | 27 | # define BOOST_MPL_AUX_ARG_TYPEDEF(T, name) /**/ 28 | 29 | #endif 30 | 31 | #endif // BOOST_MPL_AUX_ARG_TYPEDEF_HPP_INCLUDED 32 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/aux_/clear_impl.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_CLEAR_IMPL_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_CLEAR_IMPL_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2000-2004 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #include 18 | #include 19 | #include 20 | 21 | namespace boost { namespace mpl { 22 | 23 | // no default implementation; the definition is needed to make MSVC happy 24 | 25 | template< typename Tag > 26 | struct clear_impl 27 | { 28 | template< typename Sequence > struct apply; 29 | }; 30 | 31 | BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(1, clear_impl) 32 | 33 | }} 34 | 35 | #endif // BOOST_MPL_AUX_CLEAR_IMPL_HPP_INCLUDED 36 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/aux_/config/arrays.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_CONFIG_ARRAYS_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_CONFIG_ARRAYS_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2003-2004 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #include 18 | #include 19 | 20 | #if !defined(BOOST_MPL_CFG_NO_DEPENDENT_ARRAY_TYPES) \ 21 | && !defined(BOOST_MPL_PREPROCESSING_MODE) \ 22 | && ( BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) \ 23 | || BOOST_WORKAROUND(BOOST_MSVC, <= 1300) \ 24 | ) 25 | 26 | # define BOOST_MPL_CFG_NO_DEPENDENT_ARRAY_TYPES 27 | 28 | #endif 29 | 30 | #endif // BOOST_MPL_AUX_CONFIG_ARRAYS_HPP_INCLUDED 31 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/aux_/config/bcc.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_CONFIG_BCC_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_CONFIG_BCC_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2008 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date: 2004-09-02 10:41:37 -0500 (Thu, 02 Sep 2004) $ 15 | // $Revision: 24874 $ 16 | 17 | #include 18 | 19 | #if !defined(BOOST_MPL_CFG_BCC590_WORKAROUNDS) \ 20 | && !defined(BOOST_MPL_PREPROCESSING_MODE) \ 21 | && BOOST_WORKAROUND(__BORLANDC__, >= 0x590) \ 22 | && BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) 23 | 24 | # define BOOST_MPL_CFG_BCC590_WORKAROUNDS 25 | 26 | #endif 27 | 28 | #endif // BOOST_MPL_AUX_CONFIG_BCC_HPP_INCLUDED 29 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/aux_/config/ctps.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_CONFIG_CTPS_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_CONFIG_CTPS_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2000-2004 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #include 18 | #include 19 | 20 | #if !defined(BOOST_MPL_CFG_NO_NONTYPE_TEMPLATE_PARTIAL_SPEC) \ 21 | && !defined(BOOST_MPL_PREPROCESSING_MODE) \ 22 | && BOOST_WORKAROUND(__BORLANDC__, < 0x582) 23 | 24 | # define BOOST_MPL_CFG_NO_NONTYPE_TEMPLATE_PARTIAL_SPEC 25 | 26 | #endif 27 | 28 | // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION is defined in 29 | 30 | #endif // BOOST_MPL_AUX_CONFIG_CTPS_HPP_INCLUDED 31 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_CONFIG_DMC_AMBIGUOUS_CTPS_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_CONFIG_DMC_AMBIGUOUS_CTPS_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2004 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #include 18 | 19 | #if !defined(BOOST_MPL_CFG_DMC_AMBIGUOUS_CTPS) \ 20 | && !defined(BOOST_MPL_PREPROCESSING_MODE) \ 21 | && BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) 22 | 23 | # define BOOST_MPL_CFG_DMC_AMBIGUOUS_CTPS 24 | 25 | #endif 26 | 27 | #endif // BOOST_MPL_AUX_CONFIG_DMC_AMBIGUOUS_CTPS_HPP_INCLUDED 28 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/aux_/config/forwarding.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_CONFIG_FORWARDING_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_CONFIG_FORWARDING_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2004 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #include 18 | 19 | #if !defined(BOOST_MPL_CFG_NO_NESTED_FORWARDING) \ 20 | && !defined(BOOST_MPL_PREPROCESSING_MODE) \ 21 | && BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) 22 | 23 | # define BOOST_MPL_CFG_NO_NESTED_FORWARDING 24 | 25 | #endif 26 | 27 | #endif // BOOST_MPL_AUX_CONFIG_FORWARDING_HPP_INCLUDED 28 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/aux_/config/gcc.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_CONFIG_GCC_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_CONFIG_GCC_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2004 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #if defined(__GNUC__) && !defined(__EDG_VERSION__) 18 | # define BOOST_MPL_CFG_GCC ((__GNUC__ << 8) | __GNUC_MINOR__) 19 | #else 20 | # define BOOST_MPL_CFG_GCC 0 21 | #endif 22 | 23 | #endif // BOOST_MPL_AUX_CONFIG_GCC_HPP_INCLUDED 24 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/aux_/config/gpu.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_CONFIG_GPU_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_CONFIG_GPU_HPP_INCLUDED 4 | 5 | // Copyright Eric Niebler 2014 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #include 18 | 19 | #if !defined(BOOST_MPL_CFG_GPU_ENABLED) \ 20 | 21 | # define BOOST_MPL_CFG_GPU_ENABLED BOOST_GPU_ENABLED 22 | 23 | #endif 24 | 25 | #if defined __CUDACC__ 26 | 27 | # define BOOST_MPL_CFG_GPU 1 28 | 29 | #else 30 | 31 | # define BOOST_MPL_CFG_GPU 0 32 | 33 | #endif 34 | 35 | #endif // BOOST_MPL_AUX_CONFIG_GPU_HPP_INCLUDED 36 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/aux_/config/intel.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_CONFIG_INTEL_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_CONFIG_INTEL_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2004 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | 18 | // BOOST_INTEL_CXX_VERSION is defined here: 19 | #include 20 | 21 | #endif // BOOST_MPL_AUX_CONFIG_INTEL_HPP_INCLUDED 22 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/aux_/config/msvc.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_CONFIG_MSVC_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_CONFIG_MSVC_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2002-2004 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | 18 | // BOOST_MSVC is defined here: 19 | #include 20 | 21 | #endif // BOOST_MPL_AUX_CONFIG_MSVC_HPP_INCLUDED 22 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/aux_/config/msvc_typename.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_CONFIG_MSVC_TYPENAME_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_CONFIG_MSVC_TYPENAME_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2000-2004 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #include 18 | #include 19 | 20 | #if BOOST_WORKAROUND(BOOST_MSVC, <= 1300) 21 | # define BOOST_MSVC_TYPENAME 22 | #else 23 | # define BOOST_MSVC_TYPENAME typename 24 | #endif 25 | 26 | #endif // BOOST_MPL_AUX_CONFIG_MSVC_TYPENAME_HPP_INCLUDED 27 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/aux_/config/overload_resolution.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_CONFIG_OVERLOAD_RESOLUTION_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_CONFIG_OVERLOAD_RESOLUTION_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2002-2004 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #include 18 | 19 | #if !defined(BOOST_MPL_CFG_BROKEN_OVERLOAD_RESOLUTION) \ 20 | && !defined(BOOST_MPL_PREPROCESSING_MODE) \ 21 | && ( BOOST_WORKAROUND(__BORLANDC__, < 0x590) \ 22 | || BOOST_WORKAROUND(__MWERKS__, < 0x3001) \ 23 | ) 24 | 25 | # define BOOST_MPL_CFG_BROKEN_OVERLOAD_RESOLUTION 26 | 27 | #endif 28 | 29 | #endif // BOOST_MPL_AUX_CONFIG_OVERLOAD_RESOLUTION_HPP_INCLUDED 30 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/aux_/config/pp_counter.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_CONFIG_PP_COUNTER_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_CONFIG_PP_COUNTER_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2006 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #if !defined(BOOST_MPL_AUX_PP_COUNTER) 18 | # include 19 | # if BOOST_WORKAROUND(BOOST_MSVC, >= 1300) 20 | # define BOOST_MPL_AUX_PP_COUNTER() __COUNTER__ 21 | # else 22 | # define BOOST_MPL_AUX_PP_COUNTER() __LINE__ 23 | # endif 24 | #endif 25 | 26 | #endif // BOOST_MPL_AUX_CONFIG_PP_COUNTER_HPP_INCLUDED 27 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/aux_/config/static_constant.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_CONFIG_STATIC_CONSTANT_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_CONFIG_STATIC_CONSTANT_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2000-2004 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #if !defined(BOOST_MPL_PREPROCESSING_MODE) 18 | // BOOST_STATIC_CONSTANT is defined here: 19 | # include 20 | #else 21 | // undef the macro for the preprocessing mode 22 | # undef BOOST_STATIC_CONSTANT 23 | #endif 24 | 25 | #endif // BOOST_MPL_AUX_CONFIG_STATIC_CONSTANT_HPP_INCLUDED 26 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/aux_/config/use_preprocessed.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_CONFIG_USE_PREPROCESSED_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_CONFIG_USE_PREPROCESSED_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2000-2004 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | // #define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS 18 | 19 | #endif // BOOST_MPL_AUX_CONFIG_USE_PREPROCESSED_HPP_INCLUDED 20 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/aux_/config/workaround.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_CONFIG_WORKAROUND_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_CONFIG_WORKAROUND_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2002-2004 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #include 18 | 19 | #endif // BOOST_MPL_AUX_CONFIG_WORKAROUND_HPP_INCLUDED 20 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/aux_/find_if_pred.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_FIND_IF_PRED_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_FIND_IF_PRED_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2000-2004 6 | // Copyright Eric Friedman 2002 7 | // 8 | // Distributed under the Boost Software License, Version 1.0. 9 | // (See accompanying file LICENSE_1_0.txt or copy at 10 | // http://www.boost.org/LICENSE_1_0.txt) 11 | // 12 | // See http://www.boost.org/libs/mpl for documentation. 13 | 14 | #include 15 | #include 16 | 17 | namespace boost { namespace mpl { namespace aux { 18 | 19 | template< typename Predicate > 20 | struct find_if_pred 21 | { 22 | template< typename Iterator > 23 | struct apply 24 | { 25 | typedef not_< aux::iter_apply1 > type; 26 | }; 27 | }; 28 | 29 | }}} 30 | 31 | #endif // BOOST_MPL_AUX_FIND_IF_PRED_HPP_INCLUDED 32 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/aux_/has_apply.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_HAS_APPLY_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_HAS_APPLY_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2004 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #include 18 | #include 19 | 20 | namespace boost { namespace mpl { namespace aux { 21 | #if !defined(BOOST_MPL_CFG_NO_HAS_APPLY) 22 | BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(has_apply, apply, false) 23 | #else 24 | template< typename T, typename fallback_ = false_ > 25 | struct has_apply 26 | : fallback_ 27 | { 28 | }; 29 | #endif 30 | }}} 31 | 32 | #endif // BOOST_MPL_AUX_HAS_APPLY_HPP_INCLUDED 33 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/aux_/has_begin.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_HAS_BEGIN_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_HAS_BEGIN_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2002-2004 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #include 18 | 19 | namespace boost { namespace mpl { namespace aux { 20 | BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(has_begin, begin, true) 21 | }}} 22 | 23 | #endif // BOOST_MPL_AUX_HAS_BEGIN_HPP_INCLUDED 24 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/aux_/has_size.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_HAS_SIZE_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_HAS_SIZE_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2002-2004 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #include 18 | 19 | namespace boost { namespace mpl { namespace aux { 20 | BOOST_MPL_HAS_XXX_TRAIT_DEF(size) 21 | }}} 22 | 23 | #endif // BOOST_MPL_AUX_HAS_SIZE_HPP_INCLUDED 24 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/aux_/has_tag.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_HAS_TAG_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_HAS_TAG_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2002-2004 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #include 18 | 19 | namespace boost { namespace mpl { namespace aux { 20 | BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(has_tag, tag, false) 21 | }}} 22 | 23 | #endif // BOOST_MPL_AUX_HAS_TAG_HPP_INCLUDED 24 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/aux_/has_type.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_HAS_TYPE_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_HAS_TYPE_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2002-2004 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #include 18 | 19 | namespace boost { namespace mpl { namespace aux { 20 | BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(has_type, type, true) 21 | }}} 22 | 23 | #endif // BOOST_MPL_AUX_HAS_TYPE_HPP_INCLUDED 24 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/aux_/lambda_arity_param.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_LAMBDA_ARITY_PARAM_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_LAMBDA_ARITY_PARAM_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2001-2004 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #include 18 | 19 | #if !defined(BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING) 20 | # define BOOST_MPL_AUX_LAMBDA_ARITY_PARAM(param) 21 | #else 22 | # define BOOST_MPL_AUX_LAMBDA_ARITY_PARAM(param) , param 23 | #endif 24 | 25 | #endif // BOOST_MPL_AUX_LAMBDA_ARITY_PARAM_HPP_INCLUDED 26 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/aux_/msvc_never_true.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_MSVC_NEVER_TRUE_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_MSVC_NEVER_TRUE_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2000-2004 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #include 18 | #include 19 | 20 | #if BOOST_WORKAROUND(BOOST_MSVC, <= 1300) 21 | 22 | namespace boost { namespace mpl { namespace aux { 23 | 24 | template< typename T > 25 | struct msvc_never_true 26 | { 27 | enum { value = false }; 28 | }; 29 | 30 | }}} 31 | 32 | #endif // BOOST_MSVC 33 | 34 | #endif // BOOST_MPL_AUX_MSVC_NEVER_TRUE_HPP_INCLUDED 35 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/aux_/na_fwd.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_NA_FWD_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_NA_FWD_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2001-2004 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #include 18 | 19 | BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN 20 | 21 | // n.a. == not available 22 | struct na 23 | { 24 | typedef na type; 25 | enum { value = 0 }; 26 | }; 27 | 28 | BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE 29 | BOOST_MPL_AUX_ADL_BARRIER_DECL(na) 30 | 31 | #endif // BOOST_MPL_AUX_NA_FWD_HPP_INCLUDED 32 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/aux_/nttp_decl.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_NTTP_DECL_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_NTTP_DECL_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2001-2004 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #include 18 | 19 | #if defined(BOOST_MPL_CFG_NTTP_BUG) 20 | 21 | typedef bool _mpl_nttp_bool; 22 | typedef int _mpl_nttp_int; 23 | typedef unsigned _mpl_nttp_unsigned; 24 | typedef long _mpl_nttp_long; 25 | 26 | # include 27 | # define BOOST_MPL_AUX_NTTP_DECL(T, x) BOOST_PP_CAT(_mpl_nttp_,T) x /**/ 28 | 29 | #else 30 | 31 | # define BOOST_MPL_AUX_NTTP_DECL(T, x) T x /**/ 32 | 33 | #endif 34 | 35 | #endif // BOOST_MPL_AUX_NTTP_DECL_HPP_INCLUDED 36 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/aux_/preprocessed/bcc/template_arity.hpp: -------------------------------------------------------------------------------- 1 | 2 | // Copyright Aleksey Gurtovoy 2001-2004 3 | // 4 | // Distributed under the Boost Software License, Version 1.0. 5 | // (See accompanying file LICENSE_1_0.txt or copy at 6 | // http://www.boost.org/LICENSE_1_0.txt) 7 | // 8 | 9 | // *Preprocessed* version of the main "template_arity.hpp" header 10 | // -- DO NOT modify by hand! 11 | 12 | namespace boost { namespace mpl { namespace aux { 13 | 14 | template< bool > 15 | struct template_arity_impl 16 | { 17 | template< typename F > struct result_ 18 | : mpl::int_< -1 > 19 | { 20 | }; 21 | }; 22 | 23 | template<> 24 | struct template_arity_impl 25 | { 26 | template< typename F > struct result_ 27 | : F::arity 28 | { 29 | }; 30 | }; 31 | 32 | template< typename F > 33 | struct template_arity 34 | : template_arity_impl< ::boost::mpl::aux::has_rebind::value > 35 | ::template result_ 36 | { 37 | }; 38 | 39 | }}} 40 | 41 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/aux_/preprocessed/bcc551/quote.hpp: -------------------------------------------------------------------------------- 1 | 2 | // Copyright Aleksey Gurtovoy 2000-2004 3 | // 4 | // Distributed under the Boost Software License, Version 1.0. 5 | // (See accompanying file LICENSE_1_0.txt or copy at 6 | // http://www.boost.org/LICENSE_1_0.txt) 7 | // 8 | 9 | // Preprocessed version of "boost/mpl/quote.hpp" header 10 | // -- DO NOT modify by hand! 11 | 12 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/aux_/preprocessed/bcc551/template_arity.hpp: -------------------------------------------------------------------------------- 1 | 2 | // Copyright Aleksey Gurtovoy 2001-2004 3 | // 4 | // Distributed under the Boost Software License, Version 1.0. 5 | // (See accompanying file LICENSE_1_0.txt or copy at 6 | // http://www.boost.org/LICENSE_1_0.txt) 7 | // 8 | 9 | // Preprocessed version of "boost/mpl/aux_/template_arity.hpp" header 10 | // -- DO NOT modify by hand! 11 | 12 | namespace boost { namespace mpl { namespace aux { 13 | 14 | template< bool > 15 | struct template_arity_impl 16 | { 17 | template< typename F > struct result_ 18 | : mpl::int_< -1 > 19 | { 20 | }; 21 | }; 22 | 23 | template<> 24 | struct template_arity_impl 25 | { 26 | template< typename F > struct result_ 27 | : F::arity 28 | { 29 | }; 30 | }; 31 | 32 | template< typename F > 33 | struct template_arity 34 | : template_arity_impl< ::boost::mpl::aux::has_rebind::value > 35 | ::template result_ 36 | { 37 | }; 38 | 39 | }}} 40 | 41 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/aux_/preprocessed/bcc_pre590/quote.hpp: -------------------------------------------------------------------------------- 1 | 2 | // Copyright Aleksey Gurtovoy 2000-2008 3 | // 4 | // Distributed under the Boost Software License, Version 1.0. 5 | // (See accompanying file LICENSE_1_0.txt or copy at 6 | // http://www.boost.org/LICENSE_1_0.txt) 7 | // 8 | 9 | // *Preprocessed* version of the main "quote.hpp" header 10 | // -- DO NOT modify by hand! 11 | 12 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/aux_/preprocessed/bcc_pre590/template_arity.hpp: -------------------------------------------------------------------------------- 1 | 2 | // Copyright Aleksey Gurtovoy 2001-2004 3 | // 4 | // Distributed under the Boost Software License, Version 1.0. 5 | // (See accompanying file LICENSE_1_0.txt or copy at 6 | // http://www.boost.org/LICENSE_1_0.txt) 7 | // 8 | 9 | // *Preprocessed* version of the main "template_arity.hpp" header 10 | // -- DO NOT modify by hand! 11 | 12 | namespace boost { namespace mpl { namespace aux { 13 | 14 | template< bool > 15 | struct template_arity_impl 16 | { 17 | template< typename F > struct result_ 18 | : mpl::int_< -1 > 19 | { 20 | }; 21 | }; 22 | 23 | template<> 24 | struct template_arity_impl 25 | { 26 | template< typename F > struct result_ 27 | : F::arity 28 | { 29 | }; 30 | }; 31 | 32 | template< typename F > 33 | struct template_arity 34 | : template_arity_impl< ::boost::mpl::aux::has_rebind::value > 35 | ::template result_ 36 | { 37 | }; 38 | 39 | }}} 40 | 41 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/aux_/preprocessed/dmc/template_arity.hpp: -------------------------------------------------------------------------------- 1 | 2 | // Copyright Aleksey Gurtovoy 2001-2004 3 | // 4 | // Distributed under the Boost Software License, Version 1.0. 5 | // (See accompanying file LICENSE_1_0.txt or copy at 6 | // http://www.boost.org/LICENSE_1_0.txt) 7 | // 8 | 9 | // Preprocessed version of "boost/mpl/aux_/template_arity.hpp" header 10 | // -- DO NOT modify by hand! 11 | 12 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/aux_/preprocessed/msvc60/quote.hpp: -------------------------------------------------------------------------------- 1 | 2 | // Copyright Aleksey Gurtovoy 2000-2004 3 | // 4 | // Distributed under the Boost Software License, Version 1.0. 5 | // (See accompanying file LICENSE_1_0.txt or copy at 6 | // http://www.boost.org/LICENSE_1_0.txt) 7 | // 8 | 9 | // Preprocessed version of "boost/mpl/quote.hpp" header 10 | // -- DO NOT modify by hand! 11 | 12 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/aux_/preprocessed/mwcw/template_arity.hpp: -------------------------------------------------------------------------------- 1 | 2 | // Copyright Aleksey Gurtovoy 2001-2004 3 | // 4 | // Distributed under the Boost Software License, Version 1.0. 5 | // (See accompanying file LICENSE_1_0.txt or copy at 6 | // http://www.boost.org/LICENSE_1_0.txt) 7 | // 8 | 9 | // Preprocessed version of "boost/mpl/aux_/template_arity.hpp" header 10 | // -- DO NOT modify by hand! 11 | 12 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/aux_/preprocessed/no_ctps/template_arity.hpp: -------------------------------------------------------------------------------- 1 | 2 | // Copyright Aleksey Gurtovoy 2001-2004 3 | // 4 | // Distributed under the Boost Software License, Version 1.0. 5 | // (See accompanying file LICENSE_1_0.txt or copy at 6 | // http://www.boost.org/LICENSE_1_0.txt) 7 | // 8 | 9 | // Preprocessed version of "boost/mpl/aux_/template_arity.hpp" header 10 | // -- DO NOT modify by hand! 11 | 12 | namespace boost { namespace mpl { namespace aux { 13 | 14 | template< bool > 15 | struct template_arity_impl 16 | { 17 | template< typename F > struct result_ 18 | : mpl::int_< -1 > 19 | { 20 | }; 21 | }; 22 | 23 | template<> 24 | struct template_arity_impl 25 | { 26 | template< typename F > struct result_ 27 | : F::arity 28 | { 29 | }; 30 | }; 31 | 32 | template< typename F > 33 | struct template_arity 34 | : template_arity_impl< ::boost::mpl::aux::has_rebind::value > 35 | ::template result_ 36 | { 37 | }; 38 | 39 | }}} 40 | 41 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/aux_/preprocessed/no_ttp/quote.hpp: -------------------------------------------------------------------------------- 1 | 2 | // Copyright Aleksey Gurtovoy 2000-2004 3 | // 4 | // Distributed under the Boost Software License, Version 1.0. 5 | // (See accompanying file LICENSE_1_0.txt or copy at 6 | // http://www.boost.org/LICENSE_1_0.txt) 7 | // 8 | 9 | // Preprocessed version of "boost/mpl/quote.hpp" header 10 | // -- DO NOT modify by hand! 11 | 12 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/aux_/preprocessed/no_ttp/template_arity.hpp: -------------------------------------------------------------------------------- 1 | 2 | // Copyright Aleksey Gurtovoy 2001-2004 3 | // 4 | // Distributed under the Boost Software License, Version 1.0. 5 | // (See accompanying file LICENSE_1_0.txt or copy at 6 | // http://www.boost.org/LICENSE_1_0.txt) 7 | // 8 | 9 | // Preprocessed version of "boost/mpl/aux_/template_arity.hpp" header 10 | // -- DO NOT modify by hand! 11 | 12 | namespace boost { namespace mpl { namespace aux { 13 | 14 | template< bool > 15 | struct template_arity_impl 16 | { 17 | template< typename F > struct result_ 18 | : mpl::int_< -1 > 19 | { 20 | }; 21 | }; 22 | 23 | template<> 24 | struct template_arity_impl 25 | { 26 | template< typename F > struct result_ 27 | : F::arity 28 | { 29 | }; 30 | }; 31 | 32 | template< typename F > 33 | struct template_arity 34 | : template_arity_impl< ::boost::mpl::aux::has_rebind::value > 35 | ::template result_ 36 | { 37 | }; 38 | 39 | }}} 40 | 41 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/aux_/preprocessed/plain/template_arity.hpp: -------------------------------------------------------------------------------- 1 | 2 | // Copyright Aleksey Gurtovoy 2001-2004 3 | // 4 | // Distributed under the Boost Software License, Version 1.0. 5 | // (See accompanying file LICENSE_1_0.txt or copy at 6 | // http://www.boost.org/LICENSE_1_0.txt) 7 | // 8 | 9 | // Preprocessed version of "boost/mpl/aux_/template_arity.hpp" header 10 | // -- DO NOT modify by hand! 11 | 12 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/aux_/preprocessor/range.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_PREPROCESSOR_RANGE_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_PREPROCESSOR_RANGE_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2002-2004 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #include 18 | #include 19 | #include 20 | 21 | #define BOOST_MPL_PP_RANGE_ITEM(z,n,_) (n) 22 | 23 | #define BOOST_MPL_PP_RANGE(first, length) \ 24 | BOOST_PP_SEQ_SUBSEQ( \ 25 | BOOST_PP_REPEAT(BOOST_PP_ADD(first,length), BOOST_MPL_PP_RANGE_ITEM, _), \ 26 | first, length \ 27 | ) \ 28 | /**/ 29 | 30 | #endif // BOOST_MPL_AUX_PREPROCESSOR_RANGE_HPP_INCLUDED 31 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/aux_/static_cast.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_STATIC_CAST_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_STATIC_CAST_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2001-2004 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #include 18 | 19 | #if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x561)) \ 20 | || BOOST_WORKAROUND(__GNUC__, < 3) \ 21 | || BOOST_WORKAROUND(__MWERKS__, <= 0x3001) 22 | # define BOOST_MPL_AUX_STATIC_CAST(T, expr) (T)(expr) 23 | #else 24 | # define BOOST_MPL_AUX_STATIC_CAST(T, expr) static_cast(expr) 25 | #endif 26 | 27 | #endif // BOOST_MPL_AUX_STATIC_CAST_HPP_INCLUDED 28 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/aux_/template_arity_fwd.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_TEMPLATE_ARITY_FWD_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_TEMPLATE_ARITY_FWD_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2001-2004 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | namespace boost { namespace mpl { namespace aux { 18 | 19 | template< typename F > struct template_arity; 20 | 21 | }}} 22 | 23 | #endif // BOOST_MPL_AUX_TEMPLATE_ARITY_FWD_HPP_INCLUDED 24 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/base.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_BASE_HPP_INCLUDED 3 | #define BOOST_MPL_BASE_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2000-2004 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #include 18 | #include 19 | 20 | namespace boost { namespace mpl { 21 | 22 | template< 23 | typename BOOST_MPL_AUX_NA_PARAM(T) 24 | > 25 | struct base 26 | { 27 | typedef typename T::base type; 28 | BOOST_MPL_AUX_LAMBDA_SUPPORT(1,base,(T)) 29 | }; 30 | 31 | BOOST_MPL_AUX_NA_SPEC(1, base) 32 | 33 | }} 34 | 35 | #endif // BOOST_MPL_BASE_HPP_INCLUDED 36 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/begin.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_BEGIN_HPP_INCLUDED 3 | #define BOOST_MPL_BEGIN_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2004 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #include 18 | 19 | #endif // BOOST_MPL_BEGIN_HPP_INCLUDED 20 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/begin_end_fwd.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_BEGIN_END_FWD_HPP_INCLUDED 3 | #define BOOST_MPL_BEGIN_END_FWD_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2000-2004 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | namespace boost { namespace mpl { 18 | 19 | template< typename Tag > struct begin_impl; 20 | template< typename Tag > struct end_impl; 21 | 22 | template< typename Sequence > struct begin; 23 | template< typename Sequence > struct end; 24 | 25 | }} 26 | 27 | #endif // BOOST_MPL_BEGIN_END_FWD_HPP_INCLUDED 28 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/bool_fwd.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_BOOL_FWD_HPP_INCLUDED 3 | #define BOOST_MPL_BOOL_FWD_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2000-2004 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #include 18 | 19 | BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN 20 | 21 | template< bool C_ > struct bool_; 22 | 23 | // shorcuts 24 | typedef bool_ true_; 25 | typedef bool_ false_; 26 | 27 | BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE 28 | 29 | BOOST_MPL_AUX_ADL_BARRIER_DECL(bool_) 30 | BOOST_MPL_AUX_ADL_BARRIER_DECL(true_) 31 | BOOST_MPL_AUX_ADL_BARRIER_DECL(false_) 32 | 33 | #endif // BOOST_MPL_BOOL_FWD_HPP_INCLUDED 34 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/clear_fwd.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_CLEAR_FWD_HPP_INCLUDED 3 | #define BOOST_MPL_CLEAR_FWD_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2000-2004 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | namespace boost { namespace mpl { 18 | 19 | template< typename Tag > struct clear_impl; 20 | template< typename Sequence > struct clear; 21 | 22 | }} 23 | 24 | #endif // BOOST_MPL_CLEAR_FWD_HPP_INCLUDED 25 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/empty_fwd.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_EMPTY_FWD_HPP_INCLUDED 3 | #define BOOST_MPL_EMPTY_FWD_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2000-2004 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | namespace boost { namespace mpl { 18 | 19 | template< typename Tag > struct empty_impl; 20 | template< typename Sequence > struct empty; 21 | 22 | }} 23 | 24 | #endif // BOOST_MPL_EMPTY_FWD_HPP_INCLUDED 25 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/end.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_END_HPP_INCLUDED 3 | #define BOOST_MPL_END_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2004 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #include 18 | 19 | #endif // BOOST_MPL_END_HPP_INCLUDED 20 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/erase_fwd.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_ERASE_FWD_HPP_INCLUDED 3 | #define BOOST_MPL_ERASE_FWD_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2000-2004 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | namespace boost { namespace mpl { 18 | 19 | template< typename Tag > struct erase_impl; 20 | template< typename Sequence, typename First, typename Last > struct erase; 21 | 22 | }} 23 | 24 | #endif // BOOST_MPL_ERASE_FWD_HPP_INCLUDED 25 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/erase_key_fwd.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_ERASE_KEY_FWD_HPP_INCLUDED 3 | #define BOOST_MPL_ERASE_KEY_FWD_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2000-2004 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | namespace boost { namespace mpl { 18 | 19 | template< typename Tag > struct erase_key_impl; 20 | template< typename Sequence, typename Key > struct erase_key; 21 | 22 | }} 23 | 24 | #endif // BOOST_MPL_ERASE_KEY_FWD_HPP_INCLUDED 25 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/find.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_FIND_HPP_INCLUDED 3 | #define BOOST_MPL_FIND_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2000-2002 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #include 18 | #include 19 | #include 20 | #include 21 | 22 | namespace boost { namespace mpl { 23 | 24 | template< 25 | typename BOOST_MPL_AUX_NA_PARAM(Sequence) 26 | , typename BOOST_MPL_AUX_NA_PARAM(T) 27 | > 28 | struct find 29 | : find_if< Sequence,same_as > 30 | { 31 | BOOST_MPL_AUX_LAMBDA_SUPPORT(2,find,(Sequence,T)) 32 | }; 33 | 34 | BOOST_MPL_AUX_NA_SPEC(2, find) 35 | 36 | }} 37 | 38 | #endif // BOOST_MPL_FIND_HPP_INCLUDED 39 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/front_fwd.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_FRONT_FWD_HPP_INCLUDED 3 | #define BOOST_MPL_FRONT_FWD_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2000-2004 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | namespace boost { namespace mpl { 18 | 19 | template< typename Tag > struct front_impl; 20 | template< typename Sequence > struct front; 21 | 22 | }} 23 | 24 | #endif // BOOST_MPL_FRONT_FWD_HPP_INCLUDED 25 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/has_key_fwd.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_HAS_KEY_FWD_HPP_INCLUDED 3 | #define BOOST_MPL_HAS_KEY_FWD_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2003-2004 6 | // Copyright David Abrahams 2003-2004 7 | // 8 | // Distributed under the Boost Software License, Version 1.0. 9 | // (See accompanying file LICENSE_1_0.txt or copy at 10 | // http://www.boost.org/LICENSE_1_0.txt) 11 | // 12 | // See http://www.boost.org/libs/mpl for documentation. 13 | 14 | // $Id$ 15 | // $Date$ 16 | // $Revision$ 17 | 18 | namespace boost { namespace mpl { 19 | 20 | template< typename Tag > struct has_key_impl; 21 | template< typename AssociativeSequence, typename Key > struct has_key; 22 | 23 | }} 24 | 25 | #endif // BOOST_MPL_HAS_KEY_FWD_HPP_INCLUDED 26 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/insert_fwd.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_INSERT_FWD_HPP_INCLUDED 3 | #define BOOST_MPL_INSERT_FWD_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2000-2004 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | namespace boost { namespace mpl { 18 | 19 | template< typename Tag > struct insert_impl; 20 | template< typename Sequence, typename Pos_or_T, typename T > struct insert; 21 | 22 | }} 23 | 24 | #endif // BOOST_MPL_INSERT_FWD_HPP_INCLUDED 25 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/insert_range_fwd.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_INSERT_RANGE_FWD_HPP_INCLUDED 3 | #define BOOST_MPL_INSERT_RANGE_FWD_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2000-2004 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | namespace boost { namespace mpl { 18 | 19 | template< typename Tag > struct insert_range_impl; 20 | template< typename Sequence, typename Pos, typename Range > struct insert_range; 21 | 22 | }} 23 | 24 | #endif // BOOST_MPL_INSERT_RANGE_FWD_HPP_INCLUDED 25 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/int.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_INT_HPP_INCLUDED 3 | #define BOOST_MPL_INT_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2000-2004 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #include 18 | 19 | #define AUX_WRAPPER_VALUE_TYPE int 20 | #include 21 | 22 | #endif // BOOST_MPL_INT_HPP_INCLUDED 23 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/int_fwd.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_INT_FWD_HPP_INCLUDED 3 | #define BOOST_MPL_INT_FWD_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2000-2004 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #include 18 | #include 19 | 20 | BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN 21 | 22 | template< BOOST_MPL_AUX_NTTP_DECL(int, N) > struct int_; 23 | 24 | BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE 25 | BOOST_MPL_AUX_ADL_BARRIER_DECL(int_) 26 | 27 | #endif // BOOST_MPL_INT_FWD_HPP_INCLUDED 28 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/integral_c_tag.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_INTEGRAL_C_TAG_HPP_INCLUDED 3 | #define BOOST_MPL_INTEGRAL_C_TAG_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2004 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | 18 | #include 19 | #include 20 | 21 | BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN 22 | struct integral_c_tag { BOOST_STATIC_CONSTANT(int, value = 0); }; 23 | BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE 24 | BOOST_MPL_AUX_ADL_BARRIER_DECL(integral_c_tag) 25 | 26 | #endif // BOOST_MPL_INTEGRAL_C_TAG_HPP_INCLUDED 27 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/iterator_tags.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_ITERATOR_TAG_HPP_INCLUDED 3 | #define BOOST_MPL_ITERATOR_TAG_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2000-2004 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #include 18 | 19 | namespace boost { namespace mpl { 20 | 21 | struct forward_iterator_tag : int_<0> { typedef forward_iterator_tag type; }; 22 | struct bidirectional_iterator_tag : int_<1> { typedef bidirectional_iterator_tag type; }; 23 | struct random_access_iterator_tag : int_<2> { typedef random_access_iterator_tag type; }; 24 | 25 | }} 26 | 27 | #endif // BOOST_MPL_ITERATOR_TAG_HPP_INCLUDED 28 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/key_type_fwd.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_KEY_TYPE_FWD_HPP_INCLUDED 3 | #define BOOST_MPL_KEY_TYPE_FWD_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2003-2004 6 | // Copyright David Abrahams 2003-2004 7 | // 8 | // Distributed under the Boost Software License, Version 1.0. 9 | // (See accompanying file LICENSE_1_0.txt or copy at 10 | // http://www.boost.org/LICENSE_1_0.txt) 11 | // 12 | // See http://www.boost.org/libs/mpl for documentation. 13 | 14 | // $Id$ 15 | // $Date$ 16 | // $Revision$ 17 | 18 | namespace boost { namespace mpl { 19 | 20 | template< typename Tag > struct key_type_impl; 21 | template< typename AssociativeSequence, typename T > struct key_type; 22 | 23 | }} 24 | 25 | #endif // BOOST_MPL_KEY_TYPE_FWD_HPP_INCLUDED 26 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/lambda.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_LAMBDA_HPP_INCLUDED 3 | #define BOOST_MPL_LAMBDA_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2001-2004 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #include 18 | #include 19 | #include 20 | 21 | #if !defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT) 22 | # include 23 | #else 24 | # include 25 | # include 26 | # define BOOST_MPL_CFG_NO_IMPLICIT_METAFUNCTIONS 27 | #endif 28 | 29 | #endif // BOOST_MPL_LAMBDA_HPP_INCLUDED 30 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/limits/arity.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_LIMITS_ARITY_HPP_INCLUDED 3 | #define BOOST_MPL_LIMITS_ARITY_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2000-2004 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #if !defined(BOOST_MPL_LIMIT_METAFUNCTION_ARITY) 18 | # define BOOST_MPL_LIMIT_METAFUNCTION_ARITY 5 19 | #endif 20 | 21 | #endif // BOOST_MPL_LIMITS_ARITY_HPP_INCLUDED 22 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/limits/list.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_LIMITS_LIST_HPP_INCLUDED 3 | #define BOOST_MPL_LIMITS_LIST_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2000-2004 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #if !defined(BOOST_MPL_LIMIT_LIST_SIZE) 18 | # define BOOST_MPL_LIMIT_LIST_SIZE 20 19 | #endif 20 | 21 | #endif // BOOST_MPL_LIMITS_LIST_HPP_INCLUDED 22 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/limits/unrolling.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_LIMITS_UNROLLING_HPP_INCLUDED 3 | #define BOOST_MPL_LIMITS_UNROLLING_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2000-2004 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #if !defined(BOOST_MPL_LIMIT_UNROLLING) 18 | # define BOOST_MPL_LIMIT_UNROLLING 4 19 | #endif 20 | 21 | #endif // BOOST_MPL_LIMITS_UNROLLING_HPP_INCLUDED 22 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/list/aux_/O1_size.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_LIST_AUX_O1_SIZE_HPP_INCLUDED 3 | #define BOOST_MPL_LIST_AUX_O1_SIZE_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2000-2004 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #include 18 | #include 19 | 20 | namespace boost { namespace mpl { 21 | 22 | template<> 23 | struct O1_size_impl< aux::list_tag > 24 | { 25 | template< typename List > struct apply 26 | : List::size 27 | { 28 | }; 29 | }; 30 | 31 | }} 32 | 33 | #endif // BOOST_MPL_LIST_AUX_O1_SIZE_HPP_INCLUDED 34 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/list/aux_/clear.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_LIST_AUX_CLEAR_HPP_INCLUDED 3 | #define BOOST_MPL_LIST_AUX_CLEAR_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2000-2004 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #include 18 | #include 19 | #include 20 | 21 | namespace boost { namespace mpl { 22 | 23 | template<> 24 | struct clear_impl< aux::list_tag > 25 | { 26 | template< typename List > struct apply 27 | { 28 | typedef l_end type; 29 | }; 30 | }; 31 | 32 | }} 33 | 34 | #endif // BOOST_MPL_LIST_AUX_CLEAR_HPP_INCLUDED 35 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/list/aux_/empty.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_LIST_AUX_EMPTY_HPP_INCLUDED 3 | #define BOOST_MPL_LIST_AUX_EMPTY_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2000-2004 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #include 18 | #include 19 | #include 20 | 21 | namespace boost { namespace mpl { 22 | 23 | template<> 24 | struct empty_impl< aux::list_tag > 25 | { 26 | template< typename List > struct apply 27 | : not_ 28 | { 29 | }; 30 | }; 31 | 32 | }} 33 | 34 | #endif // BOOST_MPL_LIST_AUX_EMPTY_HPP_INCLUDED 35 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/list/aux_/front.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_LIST_AUX_FRONT_HPP_INCLUDED 3 | #define BOOST_MPL_LIST_AUX_FRONT_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2000-2004 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #include 18 | #include 19 | 20 | namespace boost { namespace mpl { 21 | 22 | template<> 23 | struct front_impl< aux::list_tag > 24 | { 25 | template< typename List > struct apply 26 | { 27 | typedef typename List::item type; 28 | }; 29 | }; 30 | 31 | }} 32 | 33 | #endif // BOOST_MPL_LIST_AUX_FRONT_HPP_INCLUDED 34 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/list/aux_/pop_front.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_LIST_AUX_POP_FRONT_HPP_INCLUDED 3 | #define BOOST_MPL_LIST_AUX_POP_FRONT_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2000-2004 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #include 18 | #include 19 | #include 20 | 21 | namespace boost { namespace mpl { 22 | 23 | template<> 24 | struct pop_front_impl< aux::list_tag > 25 | { 26 | template< typename List > struct apply 27 | { 28 | typedef typename mpl::next::type type; 29 | }; 30 | }; 31 | 32 | }} 33 | 34 | #endif // BOOST_MPL_LIST_AUX_POP_FRONT_HPP_INCLUDED 35 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/list/aux_/push_back.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_LIST_AUX_PUSH_BACK_HPP_INCLUDED 3 | #define BOOST_MPL_LIST_AUX_PUSH_BACK_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2000-2004 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #include 18 | #include 19 | #include 20 | 21 | namespace boost { namespace mpl { 22 | 23 | template< typename Tag > struct has_push_back_impl; 24 | 25 | template<> 26 | struct has_push_back_impl< aux::list_tag > 27 | { 28 | template< typename Seq > struct apply 29 | : false_ 30 | { 31 | }; 32 | }; 33 | 34 | }} 35 | 36 | #endif // BOOST_MPL_LIST_AUX_PUSH_BACK_HPP_INCLUDED 37 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/list/aux_/size.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_LIST_AUX_SIZE_HPP_INCLUDED 3 | #define BOOST_MPL_LIST_AUX_SIZE_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2000-2004 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #include 18 | #include 19 | 20 | namespace boost { namespace mpl { 21 | 22 | template<> 23 | struct size_impl< aux::list_tag > 24 | { 25 | template< typename List > struct apply 26 | : List::size 27 | { 28 | }; 29 | }; 30 | 31 | }} 32 | 33 | #endif // BOOST_MPL_LIST_AUX_SIZE_HPP_INCLUDED 34 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/list/aux_/tag.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_LIST_AUX_TAG_HPP_INCLUDED 3 | #define BOOST_MPL_LIST_AUX_TAG_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2000-2004 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | namespace boost { namespace mpl { namespace aux { 18 | 19 | struct list_tag; 20 | struct l_iter_tag; 21 | 22 | }}} 23 | 24 | #endif // BOOST_MPL_LIST_AUX_TAG_HPP_INCLUDED 25 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/list/list0_c.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_LIST_LIST0_C_HPP_INCLUDED 3 | #define BOOST_MPL_LIST_LIST0_C_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2000-2004 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #include 18 | #include 19 | 20 | namespace boost { namespace mpl { 21 | 22 | template< typename T > struct list0_c 23 | : l_end 24 | { 25 | typedef l_end type; 26 | typedef T value_type; 27 | }; 28 | 29 | }} 30 | 31 | #endif // BOOST_MPL_LIST_LIST0_C_HPP_INCLUDED 32 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/logical.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_LOGICAL_HPP_INCLUDED 3 | #define BOOST_MPL_LOGICAL_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2000-2004 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #include 18 | #include 19 | #include 20 | 21 | #endif // BOOST_MPL_LOGICAL_HPP_INCLUDED 22 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/long.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_LONG_HPP_INCLUDED 3 | #define BOOST_MPL_LONG_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2000-2004 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #include 18 | 19 | #define AUX_WRAPPER_VALUE_TYPE long 20 | #include 21 | 22 | #endif // BOOST_MPL_LONG_HPP_INCLUDED 23 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/long_fwd.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_LONG_FWD_HPP_INCLUDED 3 | #define BOOST_MPL_LONG_FWD_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2000-2004 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #include 18 | #include 19 | 20 | BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN 21 | 22 | template< BOOST_MPL_AUX_NTTP_DECL(long, N) > struct long_; 23 | 24 | BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE 25 | BOOST_MPL_AUX_ADL_BARRIER_DECL(long_) 26 | 27 | #endif // BOOST_MPL_LONG_FWD_HPP_INCLUDED 28 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/next.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_NEXT_HPP_INCLUDED 3 | #define BOOST_MPL_NEXT_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2004 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #include 18 | 19 | #endif // BOOST_MPL_NEXT_HPP_INCLUDED 20 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/pop_front_fwd.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_POP_FRONT_FWD_HPP_INCLUDED 3 | #define BOOST_MPL_POP_FRONT_FWD_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2000-2004 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | namespace boost { namespace mpl { 18 | 19 | template< typename Tag > struct pop_front_impl; 20 | template< typename Sequence > struct pop_front; 21 | 22 | }} 23 | 24 | #endif // BOOST_MPL_POP_FRONT_FWD_HPP_INCLUDED 25 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/prior.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_PRIOR_HPP_INCLUDED 3 | #define BOOST_MPL_PRIOR_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2004 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #include 18 | 19 | #endif // BOOST_MPL_PRIOR_HPP_INCLUDED 20 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/push_back_fwd.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_PUSH_BACK_FWD_HPP_INCLUDED 3 | #define BOOST_MPL_PUSH_BACK_FWD_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2000-2004 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | namespace boost { namespace mpl { 18 | 19 | template< typename Tag > struct push_back_impl; 20 | template< typename Sequence, typename T > struct push_back; 21 | 22 | }} 23 | 24 | #endif // BOOST_MPL_PUSH_BACK_FWD_HPP_INCLUDED 25 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/push_front_fwd.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_PUSH_FRONT_FWD_HPP_INCLUDED 3 | #define BOOST_MPL_PUSH_FRONT_FWD_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2000-2004 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | namespace boost { namespace mpl { 18 | 19 | template< typename Tag > struct push_front_impl; 20 | template< typename Sequence, typename T > struct push_front; 21 | 22 | }} 23 | 24 | #endif // BOOST_MPL_PUSH_FRONT_FWD_HPP_INCLUDED 25 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/sequence_tag_fwd.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_SEQUENCE_TAG_FWD_HPP_INCLUDED 3 | #define BOOST_MPL_SEQUENCE_TAG_FWD_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2000-2004 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | namespace boost { namespace mpl { 18 | 19 | struct nested_begin_end_tag; 20 | struct non_sequence_tag; 21 | 22 | template< typename Sequence > struct sequence_tag; 23 | 24 | }} 25 | 26 | #endif // BOOST_MPL_SEQUENCE_TAG_FWD_HPP_INCLUDED 27 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/set/aux_/clear_impl.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_SET_AUX_CLEAR_IMPL_HPP_INCLUDED 3 | #define BOOST_MPL_SET_AUX_CLEAR_IMPL_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2003-2004 6 | // Copyright David Abrahams 2003-2004 7 | // 8 | // Distributed under the Boost Software License, Version 1.0. 9 | // (See accompanying file LICENSE_1_0.txt or copy at 10 | // http://www.boost.org/LICENSE_1_0.txt) 11 | // 12 | // See http://www.boost.org/libs/mpl for documentation. 13 | 14 | // $Id$ 15 | // $Date$ 16 | // $Revision$ 17 | 18 | #include 19 | #include 20 | #include 21 | 22 | namespace boost { namespace mpl { 23 | 24 | template<> 25 | struct clear_impl< aux::set_tag > 26 | { 27 | template< typename Set > struct apply 28 | { 29 | typedef set0<> type; 30 | }; 31 | }; 32 | 33 | }} 34 | 35 | #endif // BOOST_MPL_SET_AUX_CLEAR_IMPL_HPP_INCLUDED 36 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/set/aux_/empty_impl.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_SET_AUX_EMPTY_IMPL_HPP_INCLUDED 3 | #define BOOST_MPL_SET_AUX_EMPTY_IMPL_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2003-2004 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #include 18 | #include 19 | #include 20 | 21 | namespace boost { namespace mpl { 22 | 23 | template<> 24 | struct empty_impl< aux::set_tag > 25 | { 26 | template< typename Set > struct apply 27 | : not_< typename Set::size > 28 | { 29 | }; 30 | }; 31 | 32 | }} 33 | 34 | #endif // BOOST_MPL_SET_AUX_EMPTY_IMPL_HPP_INCLUDED 35 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/set/aux_/key_type_impl.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_SET_AUX_KEY_TYPE_IMPL_HPP_INCLUDED 3 | #define BOOST_MPL_SET_AUX_KEY_TYPE_IMPL_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2003-2004 6 | // Copyright David Abrahams 2003-2004 7 | // 8 | // Distributed under the Boost Software License, Version 1.0. 9 | // (See accompanying file LICENSE_1_0.txt or copy at 10 | // http://www.boost.org/LICENSE_1_0.txt) 11 | // 12 | // See http://www.boost.org/libs/mpl for documentation. 13 | 14 | // $Id$ 15 | // $Date$ 16 | // $Revision$ 17 | 18 | #include 19 | #include 20 | 21 | namespace boost { namespace mpl { 22 | 23 | template<> 24 | struct key_type_impl< aux::set_tag > 25 | { 26 | template< typename Set, typename T > struct apply 27 | { 28 | typedef T type; 29 | }; 30 | }; 31 | 32 | }} 33 | 34 | #endif // BOOST_MPL_SET_AUX_KEY_TYPE_IMPL_HPP_INCLUDED 35 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/set/aux_/size_impl.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_SET_AUX_SIZE_IMPL_HPP_INCLUDED 3 | #define BOOST_MPL_SET_AUX_SIZE_IMPL_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2003-2004 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #include 18 | #include 19 | 20 | namespace boost { namespace mpl { 21 | 22 | template<> 23 | struct size_impl< aux::set_tag > 24 | { 25 | template< typename Set > struct apply 26 | : Set::size 27 | { 28 | }; 29 | }; 30 | 31 | }} 32 | 33 | #endif // BOOST_MPL_SET_AUX_SIZE_IMPL_HPP_INCLUDED 34 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/set/aux_/tag.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_SET_AUX_TAG_HPP_INCLUDED 3 | #define BOOST_MPL_SET_AUX_TAG_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2003-2004 6 | // Copyright David Abrahams 2003-2004 7 | // 8 | // Distributed under the Boost Software License, Version 1.0. 9 | // (See accompanying file LICENSE_1_0.txt or copy at 10 | // http://www.boost.org/LICENSE_1_0.txt) 11 | // 12 | // See http://www.boost.org/libs/mpl for documentation. 13 | 14 | // $Id$ 15 | // $Date$ 16 | // $Revision$ 17 | 18 | namespace boost { namespace mpl { namespace aux { 19 | 20 | struct set_tag; 21 | 22 | }}} 23 | 24 | #endif // BOOST_MPL_SET_AUX_TAG_HPP_INCLUDED 25 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/set/aux_/value_type_impl.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_SET_AUX_VALUE_TYPE_IMPL_HPP_INCLUDED 3 | #define BOOST_MPL_SET_AUX_VALUE_TYPE_IMPL_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2003-2004 6 | // Copyright David Abrahams 2003-2004 7 | // 8 | // Distributed under the Boost Software License, Version 1.0. 9 | // (See accompanying file LICENSE_1_0.txt or copy at 10 | // http://www.boost.org/LICENSE_1_0.txt) 11 | // 12 | // See http://www.boost.org/libs/mpl for documentation. 13 | 14 | // $Id$ 15 | // $Date$ 16 | // $Revision$ 17 | 18 | #include 19 | #include 20 | 21 | namespace boost { namespace mpl { 22 | 23 | template<> 24 | struct value_type_impl< aux::set_tag > 25 | { 26 | template< typename Set, typename T > struct apply 27 | { 28 | typedef T type; 29 | }; 30 | }; 31 | 32 | }} 33 | 34 | #endif // BOOST_MPL_SET_AUX_VALUE_TYPE_IMPL_HPP_INCLUDED 35 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/size_fwd.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_SIZE_FWD_HPP_INCLUDED 3 | #define BOOST_MPL_SIZE_FWD_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2000-2004 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | namespace boost { namespace mpl { 18 | 19 | template< typename Tag > struct size_impl; 20 | template< typename Sequence > struct size; 21 | 22 | }} 23 | 24 | #endif // BOOST_MPL_SIZE_FWD_HPP_INCLUDED 25 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/size_t.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_SIZE_T_HPP_INCLUDED 3 | #define BOOST_MPL_SIZE_T_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2000-2004 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #include 18 | 19 | #define AUX_WRAPPER_VALUE_TYPE std::size_t 20 | #define AUX_WRAPPER_NAME size_t 21 | #define AUX_WRAPPER_PARAMS(N) std::size_t N 22 | 23 | #include 24 | 25 | #endif // BOOST_MPL_SIZE_T_HPP_INCLUDED 26 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/size_t_fwd.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_SIZE_T_FWD_HPP_INCLUDED 3 | #define BOOST_MPL_SIZE_T_FWD_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2000-2004 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #include 18 | #include // make sure 'size_t' is placed into 'std' 19 | #include 20 | 21 | BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN 22 | 23 | template< std::size_t N > struct size_t; 24 | 25 | BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE 26 | BOOST_MPL_AUX_ADL_BARRIER_DECL(size_t) 27 | 28 | #endif // BOOST_MPL_SIZE_T_FWD_HPP_INCLUDED 29 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/value_type_fwd.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_VALUE_TYPE_FWD_HPP_INCLUDED 3 | #define BOOST_MPL_VALUE_TYPE_FWD_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2003-2004 6 | // Copyright David Abrahams 2003-2004 7 | // 8 | // Distributed under the Boost Software License, Version 1.0. 9 | // (See accompanying file LICENSE_1_0.txt or copy at 10 | // http://www.boost.org/LICENSE_1_0.txt) 11 | // 12 | // See http://www.boost.org/libs/mpl for documentation. 13 | 14 | // $Id$ 15 | // $Date$ 16 | // $Revision$ 17 | 18 | namespace boost { namespace mpl { 19 | 20 | template< typename Tag > struct value_type_impl; 21 | template< typename AssociativeSequence, typename T > struct value_type; 22 | 23 | }} 24 | 25 | #endif // BOOST_MPL_VALUE_TYPE_FWD_HPP_INCLUDED 26 | -------------------------------------------------------------------------------- /benchmarks/boost/mpl/void_fwd.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_VOID_FWD_HPP_INCLUDED 3 | #define BOOST_MPL_VOID_FWD_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2001-2004 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // (See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #include 18 | 19 | BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN 20 | 21 | struct void_; 22 | 23 | BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE 24 | BOOST_MPL_AUX_ADL_BARRIER_DECL(void_) 25 | 26 | #endif // BOOST_MPL_VOID_FWD_HPP_INCLUDED 27 | -------------------------------------------------------------------------------- /benchmarks/boost/noncopyable.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2014 Glen Fernandes 3 | * 4 | * Distributed under the Boost Software License, Version 1.0. (See 5 | * accompanying file LICENSE_1_0.txt or copy at 6 | * http://www.boost.org/LICENSE_1_0.txt) 7 | */ 8 | 9 | #ifndef BOOST_NONCOPYABLE_HPP 10 | #define BOOST_NONCOPYABLE_HPP 11 | 12 | // The header file at this path is deprecated; 13 | // use boost/core/noncopyable.hpp instead. 14 | 15 | #include 16 | 17 | #endif 18 | -------------------------------------------------------------------------------- /benchmarks/boost/parameter.hpp: -------------------------------------------------------------------------------- 1 | // Copyright David Abrahams, Daniel Wallin 2005. Use, modification and 2 | // distribution is subject to the Boost Software License, Version 1.0. 3 | // (See accompanying file LICENSE_1_0.txt or copy at 4 | // http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | // See www.boost.org/libs/parameter for documentation. 7 | 8 | #ifndef BOOST_PARAMETER_050401_HPP 9 | #define BOOST_PARAMETER_050401_HPP 10 | 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | 20 | #endif // BOOST_PARAMETER_050401_HPP 21 | 22 | -------------------------------------------------------------------------------- /benchmarks/boost/parameter/aux_/is_maybe.hpp: -------------------------------------------------------------------------------- 1 | // Copyright Daniel Wallin, David Abrahams 2010. Use, modification and 2 | // distribution is subject to the Boost Software License, Version 1.0. (See 3 | // accompanying file LICENSE_1_0.txt or copy at 4 | // http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #ifndef BOOST_PARAMETER_IS_MAYBE_050329_HPP 7 | #define BOOST_PARAMETER_IS_MAYBE_050329_HPP 8 | 9 | #include 10 | 11 | namespace boost { 12 | namespace parameter { 13 | namespace aux { 14 | 15 | struct maybe_base {}; 16 | 17 | template 18 | struct is_maybe 19 | : is_base_and_derived 20 | {}; 21 | 22 | } // namespace aux 23 | } // namespace parameter 24 | } // namespace boost 25 | 26 | #endif // BOOST_PARAMETER_IS_MAYBE_050329_HPP 27 | -------------------------------------------------------------------------------- /benchmarks/boost/parameter/aux_/void.hpp: -------------------------------------------------------------------------------- 1 | // Copyright Daniel Wallin, David Abrahams 2005. Use, modification and 2 | // distribution is subject to the Boost Software License, Version 1.0. (See 3 | // accompanying file LICENSE_1_0.txt or copy at 4 | // http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #ifndef BOOST_PARAMETER_VOID_050329_HPP 7 | #define BOOST_PARAMETER_VOID_050329_HPP 8 | 9 | namespace boost { namespace parameter { 10 | 11 | // A placemarker for "no argument passed." 12 | // MAINTAINER NOTE: Do not make this into a metafunction 13 | struct void_ {}; 14 | 15 | namespace aux 16 | { 17 | 18 | inline void_& void_reference() 19 | { 20 | static void_ instance; 21 | return instance; 22 | } 23 | 24 | } // namespace aux 25 | 26 | }} // namespace boost::parameter 27 | 28 | #endif // BOOST_PARAMETER_VOID_050329_HPP 29 | 30 | -------------------------------------------------------------------------------- /benchmarks/boost/parameter/aux_/yesno.hpp: -------------------------------------------------------------------------------- 1 | // Copyright Daniel Wallin, David Abrahams 2005. Use, modification and 2 | // distribution is subject to the Boost Software License, Version 1.0. (See 3 | // accompanying file LICENSE_1_0.txt or copy at 4 | // http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #ifndef YESNO_050328_HPP 7 | #define YESNO_050328_HPP 8 | 9 | #include 10 | 11 | namespace boost { namespace parameter { namespace aux { 12 | 13 | // types used with the "sizeof trick" to capture the results of 14 | // overload resolution at compile-time. 15 | typedef char yes_tag; 16 | typedef char (&no_tag)[2]; 17 | 18 | // mpl::true_ and mpl::false_ are not distinguishable by sizeof(), 19 | // so we pass them through these functions to get a type that is. 20 | yes_tag to_yesno(mpl::true_); 21 | no_tag to_yesno(mpl::false_); 22 | 23 | }}} // namespace boost::parameter::aux 24 | 25 | #endif // YESNO_050328_HPP 26 | 27 | -------------------------------------------------------------------------------- /benchmarks/boost/parameter/config.hpp: -------------------------------------------------------------------------------- 1 | // Copyright Daniel Wallin, David Abrahams 2005. Use, modification and 2 | // distribution is subject to the Boost Software License, Version 1.0. (See 3 | // accompanying file LICENSE_1_0.txt or copy at 4 | // http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #ifndef BOOST_PARAMETER_CONFIG_050403_HPP 7 | #define BOOST_PARAMETER_CONFIG_050403_HPP 8 | 9 | #ifndef BOOST_PARAMETER_MAX_ARITY 10 | # define BOOST_PARAMETER_MAX_ARITY 8 11 | #endif 12 | 13 | #endif // BOOST_PARAMETER_CONFIG_050403_HPP 14 | 15 | -------------------------------------------------------------------------------- /benchmarks/boost/preprocessor/comma_if.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_COMMA_IF_HPP 13 | # define BOOST_PREPROCESSOR_COMMA_IF_HPP 14 | # 15 | # include 16 | # 17 | # endif 18 | -------------------------------------------------------------------------------- /benchmarks/boost/preprocessor/dec.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_DEC_HPP 13 | # define BOOST_PREPROCESSOR_DEC_HPP 14 | # 15 | # include 16 | # 17 | # endif 18 | -------------------------------------------------------------------------------- /benchmarks/boost/preprocessor/empty.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_EMPTY_HPP 13 | # define BOOST_PREPROCESSOR_EMPTY_HPP 14 | # 15 | # include 16 | # 17 | # endif 18 | -------------------------------------------------------------------------------- /benchmarks/boost/preprocessor/enum.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_ENUM_HPP 13 | # define BOOST_PREPROCESSOR_ENUM_HPP 14 | # 15 | # include 16 | # 17 | # endif 18 | -------------------------------------------------------------------------------- /benchmarks/boost/preprocessor/enum_params.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_ENUM_PARAMS_HPP 13 | # define BOOST_PREPROCESSOR_ENUM_PARAMS_HPP 14 | # 15 | # include 16 | # 17 | # endif 18 | -------------------------------------------------------------------------------- /benchmarks/boost/preprocessor/enum_params_with_a_default.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_ENUM_PARAMS_WITH_A_DEFAULT_HPP 13 | # define BOOST_PREPROCESSOR_ENUM_PARAMS_WITH_A_DEFAULT_HPP 14 | # 15 | # include 16 | # 17 | # endif 18 | -------------------------------------------------------------------------------- /benchmarks/boost/preprocessor/enum_shifted_params.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_ENUM_SHIFTED_PARAMS_HPP 13 | # define BOOST_PREPROCESSOR_ENUM_SHIFTED_PARAMS_HPP 14 | # 15 | # include 16 | # 17 | # endif 18 | -------------------------------------------------------------------------------- /benchmarks/boost/preprocessor/expr_if.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_EXPR_IF_HPP 13 | # define BOOST_PREPROCESSOR_EXPR_IF_HPP 14 | # 15 | # include 16 | # 17 | # endif 18 | -------------------------------------------------------------------------------- /benchmarks/boost/preprocessor/facilities/empty.hpp: -------------------------------------------------------------------------------- 1 | # /* Copyright (C) 2001 2 | # * Housemarque Oy 3 | # * http://www.housemarque.com 4 | # * 5 | # * Distributed under the Boost Software License, Version 1.0. (See 6 | # * accompanying file LICENSE_1_0.txt or copy at 7 | # * http://www.boost.org/LICENSE_1_0.txt) 8 | # */ 9 | # 10 | # /* Revised by Paul Mensonides (2002) */ 11 | # 12 | # /* See http://www.boost.org for most recent version. */ 13 | # 14 | # ifndef BOOST_PREPROCESSOR_FACILITIES_EMPTY_HPP 15 | # define BOOST_PREPROCESSOR_FACILITIES_EMPTY_HPP 16 | # 17 | # include 18 | # 19 | # /* BOOST_PP_EMPTY */ 20 | # 21 | # define BOOST_PP_EMPTY() 22 | # 23 | # endif 24 | -------------------------------------------------------------------------------- /benchmarks/boost/preprocessor/facilities/expand.hpp: -------------------------------------------------------------------------------- 1 | # /* Copyright (C) 2001 2 | # * Housemarque Oy 3 | # * http://www.housemarque.com 4 | # * 5 | # * Distributed under the Boost Software License, Version 1.0. (See 6 | # * accompanying file LICENSE_1_0.txt or copy at 7 | # * http://www.boost.org/LICENSE_1_0.txt) 8 | # */ 9 | # 10 | # /* Revised by Paul Mensonides (2002) */ 11 | # 12 | # /* See http://www.boost.org for most recent version. */ 13 | # 14 | # ifndef BOOST_PREPROCESSOR_FACILITIES_EXPAND_HPP 15 | # define BOOST_PREPROCESSOR_FACILITIES_EXPAND_HPP 16 | # 17 | # include 18 | # 19 | # if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() && ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_DMC() 20 | # define BOOST_PP_EXPAND(x) BOOST_PP_EXPAND_I(x) 21 | # else 22 | # define BOOST_PP_EXPAND(x) BOOST_PP_EXPAND_OO((x)) 23 | # define BOOST_PP_EXPAND_OO(par) BOOST_PP_EXPAND_I ## par 24 | # endif 25 | # 26 | # define BOOST_PP_EXPAND_I(x) x 27 | # 28 | # endif 29 | -------------------------------------------------------------------------------- /benchmarks/boost/preprocessor/facilities/identity.hpp: -------------------------------------------------------------------------------- 1 | # /* Copyright (C) 2001 2 | # * Housemarque Oy 3 | # * http://www.housemarque.com 4 | # * 5 | # * Distributed under the Boost Software License, Version 1.0. (See 6 | # * accompanying file LICENSE_1_0.txt or copy at 7 | # * http://www.boost.org/LICENSE_1_0.txt) 8 | # */ 9 | # 10 | # /* Revised by Paul Mensonides (2002) */ 11 | # /* Revised by Edward Diener (2015) */ 12 | # 13 | # /* See http://www.boost.org for most recent version. */ 14 | # 15 | # ifndef BOOST_PREPROCESSOR_FACILITIES_IDENTITY_HPP 16 | # define BOOST_PREPROCESSOR_FACILITIES_IDENTITY_HPP 17 | # 18 | # include 19 | # include 20 | # 21 | # /* BOOST_PP_IDENTITY */ 22 | # 23 | # define BOOST_PP_IDENTITY(item) item BOOST_PP_EMPTY 24 | # 25 | # define BOOST_PP_IDENTITY_N(item,n) item BOOST_PP_TUPLE_EAT_N(n) 26 | # 27 | # endif 28 | -------------------------------------------------------------------------------- /benchmarks/boost/preprocessor/for.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_FOR_HPP 13 | # define BOOST_PREPROCESSOR_FOR_HPP 14 | # 15 | # include 16 | # 17 | # endif 18 | -------------------------------------------------------------------------------- /benchmarks/boost/preprocessor/identity.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_IDENTITY_HPP 13 | # define BOOST_PREPROCESSOR_IDENTITY_HPP 14 | # 15 | # include 16 | # 17 | # endif 18 | -------------------------------------------------------------------------------- /benchmarks/boost/preprocessor/inc.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_INC_HPP 13 | # define BOOST_PREPROCESSOR_INC_HPP 14 | # 15 | # include 16 | # 17 | # endif 18 | -------------------------------------------------------------------------------- /benchmarks/boost/preprocessor/iterate.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_ITERATE_HPP 13 | # define BOOST_PREPROCESSOR_ITERATE_HPP 14 | # 15 | # include 16 | # 17 | # endif 18 | -------------------------------------------------------------------------------- /benchmarks/boost/preprocessor/iteration/detail/self.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # if !defined(BOOST_PP_INDIRECT_SELF) 13 | # error BOOST_PP_ERROR: no indirect file to include 14 | # endif 15 | # 16 | # define BOOST_PP_IS_SELFISH 1 17 | # 18 | # include BOOST_PP_INDIRECT_SELF 19 | # 20 | # undef BOOST_PP_IS_SELFISH 21 | # undef BOOST_PP_INDIRECT_SELF 22 | -------------------------------------------------------------------------------- /benchmarks/boost/preprocessor/iteration/self.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_ITERATION_SELF_HPP 13 | # define BOOST_PREPROCESSOR_ITERATION_SELF_HPP 14 | # 15 | # /* BOOST_PP_INCLUDE_SELF */ 16 | # 17 | # define BOOST_PP_INCLUDE_SELF() 18 | # 19 | # endif 20 | -------------------------------------------------------------------------------- /benchmarks/boost/preprocessor/logical/not.hpp: -------------------------------------------------------------------------------- 1 | # /* Copyright (C) 2001 2 | # * Housemarque Oy 3 | # * http://www.housemarque.com 4 | # * 5 | # * Distributed under the Boost Software License, Version 1.0. (See 6 | # * accompanying file LICENSE_1_0.txt or copy at 7 | # * http://www.boost.org/LICENSE_1_0.txt) 8 | # */ 9 | # 10 | # /* Revised by Paul Mensonides (2002) */ 11 | # 12 | # /* See http://www.boost.org for most recent version. */ 13 | # 14 | # ifndef BOOST_PREPROCESSOR_LOGICAL_NOT_HPP 15 | # define BOOST_PREPROCESSOR_LOGICAL_NOT_HPP 16 | # 17 | # include 18 | # include 19 | # include 20 | # 21 | # /* BOOST_PP_NOT */ 22 | # 23 | # if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() 24 | # define BOOST_PP_NOT(x) BOOST_PP_COMPL(BOOST_PP_BOOL(x)) 25 | # else 26 | # define BOOST_PP_NOT(x) BOOST_PP_NOT_I(x) 27 | # define BOOST_PP_NOT_I(x) BOOST_PP_COMPL(BOOST_PP_BOOL(x)) 28 | # endif 29 | # 30 | # endif 31 | -------------------------------------------------------------------------------- /benchmarks/boost/preprocessor/punctuation/comma.hpp: -------------------------------------------------------------------------------- 1 | # /* Copyright (C) 2001 2 | # * Housemarque Oy 3 | # * http://www.housemarque.com 4 | # * 5 | # * Distributed under the Boost Software License, Version 1.0. (See 6 | # * accompanying file LICENSE_1_0.txt or copy at 7 | # * http://www.boost.org/LICENSE_1_0.txt) 8 | # */ 9 | # 10 | # /* Revised by Paul Mensonides (2002) */ 11 | # 12 | # /* See http://www.boost.org for most recent version. */ 13 | # 14 | # ifndef BOOST_PREPROCESSOR_PUNCTUATION_COMMA_HPP 15 | # define BOOST_PREPROCESSOR_PUNCTUATION_COMMA_HPP 16 | # 17 | # /* BOOST_PP_COMMA */ 18 | # 19 | # define BOOST_PP_COMMA() , 20 | # 21 | # endif 22 | -------------------------------------------------------------------------------- /benchmarks/boost/preprocessor/repeat.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_REPEAT_HPP 13 | # define BOOST_PREPROCESSOR_REPEAT_HPP 14 | # 15 | # include 16 | # 17 | # endif 18 | -------------------------------------------------------------------------------- /benchmarks/boost/preprocessor/repetition/enum_params_with_a_default.hpp: -------------------------------------------------------------------------------- 1 | # /* Copyright (C) 2001 2 | # * Housemarque Oy 3 | # * http://www.housemarque.com 4 | # * 5 | # * Distributed under the Boost Software License, Version 1.0. (See 6 | # * accompanying file LICENSE_1_0.txt or copy at 7 | # * http://www.boost.org/LICENSE_1_0.txt) 8 | # */ 9 | # 10 | # /* Revised by Paul Mensonides (2002) */ 11 | # 12 | # /* See http://www.boost.org for most recent version. */ 13 | # 14 | # ifndef BOOST_PREPROCESSOR_REPETITION_ENUM_PARAMS_WITH_A_DEFAULT_HPP 15 | # define BOOST_PREPROCESSOR_REPETITION_ENUM_PARAMS_WITH_A_DEFAULT_HPP 16 | # 17 | # include 18 | # include 19 | # include 20 | # 21 | # /* BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT */ 22 | # 23 | # define BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT(count, param, def) BOOST_PP_ENUM_BINARY_PARAMS(count, param, = def BOOST_PP_INTERCEPT) 24 | # 25 | # endif 26 | -------------------------------------------------------------------------------- /benchmarks/boost/preprocessor/seq/push_back.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_SEQ_PUSH_BACK_HPP 13 | # define BOOST_PREPROCESSOR_SEQ_PUSH_BACK_HPP 14 | # 15 | # /* BOOST_PP_SEQ_PUSH_BACK */ 16 | # 17 | # define BOOST_PP_SEQ_PUSH_BACK(seq, elem) seq(elem) 18 | # 19 | # endif 20 | -------------------------------------------------------------------------------- /benchmarks/boost/swap.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2014 Glen Fernandes 3 | * 4 | * Distributed under the Boost Software License, Version 1.0. (See 5 | * accompanying file LICENSE_1_0.txt or copy at 6 | * http://www.boost.org/LICENSE_1_0.txt) 7 | */ 8 | 9 | #ifndef BOOST_SWAP_HPP 10 | #define BOOST_SWAP_HPP 11 | 12 | // The header file at this path is deprecated; 13 | // use boost/core/swap.hpp instead. 14 | 15 | #include 16 | 17 | #endif 18 | -------------------------------------------------------------------------------- /benchmarks/boost/type_traits/add_lvalue_reference.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2010 John Maddock 2 | 3 | // Distributed under the Boost Software License, Version 1.0. 4 | // See http://www.boost.org/LICENSE_1_0.txt 5 | 6 | #ifndef BOOST_TYPE_TRAITS_EXT_ADD_LVALUE_REFERENCE__HPP 7 | #define BOOST_TYPE_TRAITS_EXT_ADD_LVALUE_REFERENCE__HPP 8 | 9 | #include 10 | 11 | namespace boost{ 12 | 13 | template struct add_lvalue_reference 14 | { 15 | typedef typename boost::add_reference::type type; 16 | }; 17 | 18 | #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES 19 | template struct add_lvalue_reference 20 | { 21 | typedef T& type; 22 | }; 23 | #endif 24 | 25 | } 26 | 27 | #endif // BOOST_TYPE_TRAITS_EXT_ADD_LVALUE_REFERENCE__HPP 28 | -------------------------------------------------------------------------------- /benchmarks/boost/type_traits/conditional.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2010. 2 | // Use, modification and distribution are subject to the Boost Software License, 3 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 4 | // http://www.boost.org/LICENSE_1_0.txt). 5 | // 6 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 7 | 8 | 9 | #ifndef BOOST_TT_CONDITIONAL_HPP_INCLUDED 10 | #define BOOST_TT_CONDITIONAL_HPP_INCLUDED 11 | 12 | namespace boost { 13 | 14 | template struct conditional { typedef T type; }; 15 | template struct conditional { typedef U type; }; 16 | 17 | } // namespace boost 18 | 19 | 20 | #endif // BOOST_TT_CONDITIONAL_HPP_INCLUDED 21 | -------------------------------------------------------------------------------- /benchmarks/boost/type_traits/detail/yes_no_type.hpp: -------------------------------------------------------------------------------- 1 | 2 | // (C) Copyright John Maddock and Steve Cleary 2000. 3 | // Use, modification and distribution are subject to the Boost Software License, 4 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 5 | // http://www.boost.org/LICENSE_1_0.txt). 6 | // 7 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 8 | // 9 | // macros and helpers for working with integral-constant-expressions. 10 | 11 | #ifndef BOOST_TT_DETAIL_YES_NO_TYPE_HPP_INCLUDED 12 | #define BOOST_TT_DETAIL_YES_NO_TYPE_HPP_INCLUDED 13 | 14 | namespace boost { 15 | namespace type_traits { 16 | 17 | typedef char yes_type; 18 | struct no_type 19 | { 20 | char padding[8]; 21 | }; 22 | 23 | } // namespace type_traits 24 | } // namespace boost 25 | 26 | #endif // BOOST_TT_DETAIL_YES_NO_TYPE_HPP_INCLUDED 27 | -------------------------------------------------------------------------------- /benchmarks/boost/type_traits/is_arithmetic.hpp: -------------------------------------------------------------------------------- 1 | 2 | // (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. 3 | // Use, modification and distribution are subject to the Boost Software License, 4 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 5 | // http://www.boost.org/LICENSE_1_0.txt). 6 | // 7 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 8 | 9 | #ifndef BOOST_TT_IS_ARITHMETIC_HPP_INCLUDED 10 | #define BOOST_TT_IS_ARITHMETIC_HPP_INCLUDED 11 | 12 | #include 13 | #include 14 | 15 | namespace boost { 16 | 17 | template 18 | struct is_arithmetic : public integral_constant::value || is_floating_point::value> {}; 19 | 20 | } // namespace boost 21 | 22 | #endif // BOOST_TT_IS_ARITHMETIC_HPP_INCLUDED 23 | -------------------------------------------------------------------------------- /benchmarks/boost/type_traits/is_rvalue_reference.hpp: -------------------------------------------------------------------------------- 1 | 2 | // (C) John Maddock 2010. 3 | // Use, modification and distribution are subject to the Boost Software License, 4 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 5 | // http://www.boost.org/LICENSE_1_0.txt). 6 | // 7 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 8 | 9 | #ifndef BOOST_TT_IS_RVALUE_REFERENCE_HPP_INCLUDED 10 | #define BOOST_TT_IS_RVALUE_REFERENCE_HPP_INCLUDED 11 | 12 | #include 13 | #include 14 | 15 | namespace boost { 16 | 17 | template struct is_rvalue_reference : public false_type {}; 18 | #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES 19 | template struct is_rvalue_reference : public true_type {}; 20 | #endif 21 | 22 | } // namespace boost 23 | 24 | #endif // BOOST_TT_IS_REFERENCE_HPP_INCLUDED 25 | 26 | -------------------------------------------------------------------------------- /benchmarks/boost/utility/declval.hpp: -------------------------------------------------------------------------------- 1 | // declval.hpp -------------------------------------------------------------// 2 | 3 | // Copyright 2010 Vicente J. Botet Escriba 4 | 5 | // Distributed under the Boost Software License, Version 1.0. 6 | // See http://www.boost.org/LICENSE_1_0.txt 7 | 8 | #ifndef BOOST_UTILITY_DECLVAL_HPP 9 | #define BOOST_UTILITY_DECLVAL_HPP 10 | 11 | #include 12 | 13 | #endif // BOOST_UTILITY_DECLVAL_HPP 14 | -------------------------------------------------------------------------------- /benchmarks/boost/utility/enable_if.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2014 Glen Fernandes 3 | * 4 | * Distributed under the Boost Software License, Version 1.0. (See 5 | * accompanying file LICENSE_1_0.txt or copy at 6 | * http://www.boost.org/LICENSE_1_0.txt) 7 | */ 8 | 9 | #ifndef BOOST_UTILITY_ENABLE_IF_HPP 10 | #define BOOST_UTILITY_ENABLE_IF_HPP 11 | 12 | // The header file at this path is deprecated; 13 | // use boost/core/enable_if.hpp instead. 14 | 15 | #include 16 | 17 | #endif 18 | -------------------------------------------------------------------------------- /benchmarks/cpuid.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace moodycamel 4 | { 5 | static const char UNKNOWN_CPU_STRING[] = "unknown processor"; 6 | 7 | // Returns a string representing the system's CPU info. 8 | // Assumes an x86/x64 architecture (returns UNKNOWN_CPU_STRING otherwise). 9 | // Returned string is valid in perpetuity. 10 | // Not thread safe. 11 | const char* getCPUString(); 12 | } 13 | -------------------------------------------------------------------------------- /benchmarks/dlib/array.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2003 Davis E. King (davis@dlib.net) 2 | // License: Boost Software License See LICENSE.txt for the full license. 3 | #ifndef DLIB_ARRAy_ 4 | #define DLIB_ARRAy_ 5 | 6 | #include "array/array_kernel.h" 7 | #include "array/array_tools.h" 8 | 9 | #endif // DLIB_ARRAy_ 10 | 11 | -------------------------------------------------------------------------------- /benchmarks/dlib/bound_function_pointer.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2008 Davis E. King (davis@dlib.net) 2 | // License: Boost Software License See LICENSE.txt for the full license. 3 | #ifndef DLIB_BOUND_FUNCTION_POINTEr_ 4 | #define DLIB_BOUND_FUNCTION_POINTEr_ 5 | 6 | #include "bound_function_pointer/bound_function_pointer_kernel_1.h" 7 | 8 | #endif // DLIB_BOUND_FUNCTION_POINTEr_ 9 | 10 | 11 | -------------------------------------------------------------------------------- /benchmarks/dlib/byte_orderer.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2006 Davis E. King (davis@dlib.net) 2 | // License: Boost Software License See LICENSE.txt for the full license. 3 | #ifndef DLIB_BYTE_ORDEREr_ 4 | #define DLIB_BYTE_ORDEREr_ 5 | 6 | 7 | #include "byte_orderer/byte_orderer_kernel_1.h" 8 | 9 | #endif // DLIB_BYTE_ORDEREr_ 10 | 11 | -------------------------------------------------------------------------------- /benchmarks/dlib/cassert: -------------------------------------------------------------------------------- 1 | #include "dlib_include_path_tutorial.txt" 2 | -------------------------------------------------------------------------------- /benchmarks/dlib/cstring: -------------------------------------------------------------------------------- 1 | #include "dlib_include_path_tutorial.txt" 2 | -------------------------------------------------------------------------------- /benchmarks/dlib/dlib_basic_cpp_build_tutorial.txt: -------------------------------------------------------------------------------- 1 | #error "Don't write #include in your code." 2 | /* 3 | In C++, it is generally an error to #include .cpp files. This is because it 4 | can lead to what are called multiply defined symbol errors. Therefore, you 5 | should compile dlib/all/source.cpp into your application just like you would 6 | compile any other .cpp file. 7 | 8 | If you are using Visual Studio you add .cpp files to your application using 9 | the solution explorer window. Specifically, right click on Source Files, 10 | then select Add -> Existing Item and select the .cpp files you want to add. 11 | 12 | For general information on compiling dlib see http://dlib.net/compile.html 13 | */ 14 | -------------------------------------------------------------------------------- /benchmarks/dlib/fstream: -------------------------------------------------------------------------------- 1 | #include "dlib_include_path_tutorial.txt" 2 | -------------------------------------------------------------------------------- /benchmarks/dlib/hash.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2011 Davis E. King (davis@dlib.net) 2 | // License: Boost Software License See LICENSE.txt for the full license. 3 | #ifndef DLIB_HASh_ 4 | #define DLIB_HASh_ 5 | 6 | 7 | #include "general_hash/hash.h" 8 | #include "general_hash/random_hashing.h" 9 | #include "general_hash/count_bits.h" 10 | 11 | 12 | #endif // DLIB_HASh_ 13 | 14 | 15 | -------------------------------------------------------------------------------- /benchmarks/dlib/iomanip: -------------------------------------------------------------------------------- 1 | #include "dlib_include_path_tutorial.txt" 2 | -------------------------------------------------------------------------------- /benchmarks/dlib/iosfwd: -------------------------------------------------------------------------------- 1 | #include "dlib_include_path_tutorial.txt" 2 | -------------------------------------------------------------------------------- /benchmarks/dlib/iostream: -------------------------------------------------------------------------------- 1 | #include "dlib_include_path_tutorial.txt" 2 | -------------------------------------------------------------------------------- /benchmarks/dlib/istream: -------------------------------------------------------------------------------- 1 | #include "dlib_include_path_tutorial.txt" 2 | -------------------------------------------------------------------------------- /benchmarks/dlib/locale: -------------------------------------------------------------------------------- 1 | #include "dlib_include_path_tutorial.txt" 2 | -------------------------------------------------------------------------------- /benchmarks/dlib/logger.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2006 Davis E. King (davis@dlib.net) 2 | // License: Boost Software License See LICENSE.txt for the full license. 3 | #ifndef DLIB_LOGGEr_ 4 | #define DLIB_LOGGEr_ 5 | 6 | #include "logger/logger_kernel_1.h" 7 | #include "logger/extra_logger_headers.h" 8 | #include "logger/logger_config_file.h" 9 | 10 | #endif // DLIB_LOGGEr_ 11 | 12 | -------------------------------------------------------------------------------- /benchmarks/dlib/member_function_pointer.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2005 Davis E. King (davis@dlib.net) 2 | // License: Boost Software License See LICENSE.txt for the full license. 3 | #ifndef DLIB_MEMBER_FUNCTION_POINTEr_ 4 | #define DLIB_MEMBER_FUNCTION_POINTEr_ 5 | 6 | #include "member_function_pointer/member_function_pointer_kernel_1.h" 7 | #include "member_function_pointer/make_mfp.h" 8 | 9 | #endif // DLIB_MEMBER_FUNCTION_POINTEr_ 10 | 11 | -------------------------------------------------------------------------------- /benchmarks/dlib/memory_manager_global.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2006 Davis E. King (davis@dlib.net) 2 | // License: Boost Software License See LICENSE.txt for the full license. 3 | #ifndef DLIB_MEMORY_MANAGER_GLOBAl_ 4 | #define DLIB_MEMORY_MANAGER_GLOBAl_ 5 | 6 | #include "memory_manager_global/memory_manager_global_kernel_1.h" 7 | #include "memory_manager.h" 8 | 9 | 10 | 11 | namespace dlib 12 | { 13 | 14 | template < 15 | typename T, 16 | typename factory 17 | > 18 | class memory_manager_global 19 | { 20 | memory_manager_global() {} 21 | 22 | 23 | public: 24 | 25 | //----------- kernels --------------- 26 | 27 | // kernel_1 28 | typedef memory_manager_global_kernel_1 29 | kernel_1a; 30 | 31 | 32 | 33 | 34 | }; 35 | } 36 | 37 | #endif // DLIB_MEMORY_MANAGER_GLOBAl_ 38 | 39 | -------------------------------------------------------------------------------- /benchmarks/dlib/misc_api.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2004 Davis E. King (davis@dlib.net) 2 | // License: Boost Software License See LICENSE.txt for the full license. 3 | 4 | #ifndef DLIB_MISC_APi_ 5 | #define DLIB_MISC_APi_ 6 | 7 | #include "platform.h" 8 | 9 | #ifdef WIN32 10 | #include "misc_api/windows.h" 11 | #endif 12 | 13 | #ifndef WIN32 14 | #include "misc_api/posix.h" 15 | #endif 16 | 17 | #include "misc_api/misc_api_shared.h" 18 | 19 | #endif // DLIB_MISC_APi_ 20 | 21 | -------------------------------------------------------------------------------- /benchmarks/dlib/misc_api/posix.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2004 Davis E. King (davis@dlib.net) 2 | // License: Boost Software License See LICENSE.txt for the full license. 3 | #ifndef DLIB_MISC_API_KERNEl_1_ 4 | #include "misc_api_kernel_2.h" 5 | #endif 6 | 7 | -------------------------------------------------------------------------------- /benchmarks/dlib/misc_api/windows.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2004 Davis E. King (davis@dlib.net) 2 | // License: Boost Software License See LICENSE.txt for the full license. 3 | #ifndef DLIB_MISC_API_KERNEl_2_ 4 | #include "misc_api_kernel_1.h" 5 | #endif 6 | 7 | -------------------------------------------------------------------------------- /benchmarks/dlib/numerical_integration.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2013 Steve Taylor (steve98654@gmail.com) 2 | // License: Boost Software License See LICENSE.txt for the full license. 3 | #ifndef DLIB_INTEGRATE_FUNCTION_ADAPT_SIMPSON_HEADER 4 | #define DLIB_INTEGRATE_FUNCTION_ADAPT_SIMPSON_HEADER 5 | 6 | #include "numerical_integration/integrate_function_adapt_simpson.h" 7 | 8 | #endif // DLIB_INTEGRATE_FUNCTION_ADAPT_SIMPSON_HEADER 9 | -------------------------------------------------------------------------------- /benchmarks/dlib/ostream: -------------------------------------------------------------------------------- 1 | #include "dlib_include_path_tutorial.txt" 2 | -------------------------------------------------------------------------------- /benchmarks/dlib/pipe.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2006 Davis E. King (davis@dlib.net) 2 | // License: Boost Software License See LICENSE.txt for the full license. 3 | #ifndef DLIB_PIPe_ 4 | #define DLIB_PIPe_ 5 | 6 | #include "pipe/pipe_kernel_1.h" 7 | 8 | 9 | #endif // DLIB_PIPe_ 10 | 11 | -------------------------------------------------------------------------------- /benchmarks/dlib/revision.h: -------------------------------------------------------------------------------- 1 | #ifndef DLIB_REVISION_H 2 | #define DLIB_MAJOR_VERSION 19 3 | #define DLIB_MINOR_VERSION 21 4 | #define DLIB_PATCH_VERSION 99 5 | #endif 6 | 7 | -------------------------------------------------------------------------------- /benchmarks/dlib/sliding_buffer.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2004 Davis E. King (davis@dlib.net) 2 | // License: Boost Software License See LICENSE.txt for the full license. 3 | #ifndef DLIB_SLIDING_BUFFEr_ 4 | #define DLIB_SLIDING_BUFFEr_ 5 | 6 | 7 | #include "sliding_buffer/sliding_buffer_kernel_1.h" 8 | #include "sliding_buffer/sliding_buffer_kernel_c.h" 9 | #include "sliding_buffer/circular_buffer.h" 10 | 11 | 12 | 13 | namespace dlib 14 | { 15 | 16 | template < 17 | typename T 18 | > 19 | class sliding_buffer 20 | { 21 | 22 | sliding_buffer() {} 23 | public: 24 | 25 | //----------- kernels --------------- 26 | 27 | // kernel_1a 28 | typedef sliding_buffer_kernel_1 29 | kernel_1a; 30 | typedef sliding_buffer_kernel_c 31 | kernel_1a_c; 32 | 33 | 34 | }; 35 | } 36 | 37 | #endif // DLIB_SLIDING_BUFFEr_ 38 | 39 | -------------------------------------------------------------------------------- /benchmarks/dlib/sockets.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2003 Davis E. King (davis@dlib.net) 2 | // License: Boost Software License See LICENSE.txt for the full license. 3 | #ifndef DLIB_SOCKETs_ 4 | #define DLIB_SOCKETs_ 5 | 6 | #include "platform.h" 7 | 8 | 9 | #ifdef WIN32 10 | #include "sockets/windows.h" 11 | #endif 12 | 13 | #ifndef WIN32 14 | #include "sockets/posix.h" 15 | #endif 16 | 17 | #include "sockets/sockets_extensions.h" 18 | 19 | #endif // DLIB_SOCKETs_ 20 | 21 | -------------------------------------------------------------------------------- /benchmarks/dlib/sockets/posix.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2003 Davis E. King (davis@dlib.net) 2 | // License: Boost Software License See LICENSE.txt for the full license. 3 | #ifndef DLIB_SOCKETS_KERNEl_1_ 4 | #include "sockets_kernel_2.h" 5 | #endif 6 | 7 | -------------------------------------------------------------------------------- /benchmarks/dlib/sockets/windows.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2003 Davis E. King (davis@dlib.net) 2 | // License: Boost Software License See LICENSE.txt for the full license. 3 | #ifndef DLIB_SOCKETS_KERNEl_2_ 4 | #include "sockets_kernel_1.h" 5 | #endif 6 | 7 | -------------------------------------------------------------------------------- /benchmarks/dlib/sparse_vector.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2012 Davis E. King (davis@dlib.net) 2 | // License: Boost Software License See LICENSE.txt for the full license. 3 | #ifndef DLIB_SPaRSE_VECTOR_Hh_ 4 | #define DLIB_SPaRSE_VECTOR_Hh_ 5 | 6 | #include "svm/sparse_vector.h" 7 | 8 | #endif // DLIB_SPaRSE_VECTOR_Hh_ 9 | 10 | 11 | -------------------------------------------------------------------------------- /benchmarks/dlib/sstream: -------------------------------------------------------------------------------- 1 | #include "dlib_include_path_tutorial.txt" 2 | -------------------------------------------------------------------------------- /benchmarks/dlib/stack.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2003 Davis E. King (davis@dlib.net) 2 | // License: Boost Software License See LICENSE.txt for the full license. 3 | #ifndef DLIB_STACk_ 4 | #define DLIB_STACk_ 5 | 6 | #include "stack/stack_kernel_1.h" 7 | #include "stack/stack_kernel_c.h" 8 | #include "algs.h" 9 | 10 | namespace dlib 11 | { 12 | 13 | template < 14 | typename T, 15 | typename mem_manager = default_memory_manager 16 | > 17 | class stack 18 | { 19 | stack() {} 20 | public: 21 | 22 | //----------- kernels --------------- 23 | 24 | // kernel_1a 25 | typedef stack_kernel_1 26 | kernel_1a; 27 | typedef stack_kernel_c 28 | kernel_1a_c; 29 | 30 | }; 31 | } 32 | 33 | #endif // DLIB_STACk_ 34 | 35 | -------------------------------------------------------------------------------- /benchmarks/dlib/stl_checked.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2008 Davis E. King (davis@dlib.net) 2 | // License: Boost Software License See LICENSE.txt for the full license. 3 | #ifndef DLIB_STL_CHECKEd_HEADER 4 | #define DLIB_STL_CHECKEd_HEADER 5 | 6 | #include "stl_checked/std_vector_c.h" 7 | 8 | #endif // DLIB_STL_CHECKEd_HEADER 9 | 10 | 11 | -------------------------------------------------------------------------------- /benchmarks/dlib/string.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2006 Davis E. King (davis@dlib.net) 2 | // License: Boost Software License See LICENSE.txt for the full license. 3 | #ifndef DLIB_STRINg_TOP_ 4 | #define DLIB_STRINg_TOP_ 5 | 6 | #include "string/string.h" 7 | 8 | #endif // DLIB_STRINg_TOP_ 9 | 10 | -------------------------------------------------------------------------------- /benchmarks/dlib/string/cassert: -------------------------------------------------------------------------------- 1 | #include "../dlib_include_path_tutorial.txt" 2 | -------------------------------------------------------------------------------- /benchmarks/dlib/string/iomanip: -------------------------------------------------------------------------------- 1 | #include "../dlib_include_path_tutorial.txt" 2 | -------------------------------------------------------------------------------- /benchmarks/dlib/string/iosfwd: -------------------------------------------------------------------------------- 1 | #include "../dlib_include_path_tutorial.txt" 2 | -------------------------------------------------------------------------------- /benchmarks/dlib/string/iostream: -------------------------------------------------------------------------------- 1 | #include "../dlib_include_path_tutorial.txt" 2 | -------------------------------------------------------------------------------- /benchmarks/dlib/string/locale: -------------------------------------------------------------------------------- 1 | #include "../dlib_include_path_tutorial.txt" 2 | -------------------------------------------------------------------------------- /benchmarks/dlib/threads.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2003 Davis E. King (davis@dlib.net) 2 | // License: Boost Software License See LICENSE.txt for the full license. 3 | 4 | #ifdef DLIB_ALL_SOURCE_END 5 | #include "dlib_basic_cpp_build_tutorial.txt" 6 | #endif 7 | 8 | #ifndef DLIB_THREADs_ 9 | #define DLIB_THREADs_ 10 | 11 | #include "threads/threads_kernel.h" 12 | 13 | #include "threads/auto_mutex_extension.h" 14 | #include "threads/auto_unlock_extension.h" 15 | #include "threads/create_new_thread_extension.h" 16 | #include "threads/multithreaded_object_extension.h" 17 | #include "threads/rmutex_extension.h" 18 | #include "threads/rsignaler_extension.h" 19 | #include "threads/threaded_object_extension.h" 20 | #include "threads/thread_specific_data_extension.h" 21 | #include "threads/thread_function_extension.h" 22 | #include "threads/thread_pool_extension.h" 23 | #include "threads/read_write_mutex_extension.h" 24 | #include "threads/parallel_for_extension.h" 25 | #include "threads/async.h" 26 | 27 | #endif // DLIB_THREADs_ 28 | 29 | -------------------------------------------------------------------------------- /benchmarks/dlib/threads/posix.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2003 Davis E. King (davis@dlib.net) 2 | // License: Boost Software License See LICENSE.txt for the full license. 3 | #ifndef DLIB_THREADS_KERNEl_1_ 4 | #include "threads_kernel_2.h" 5 | #endif 6 | 7 | -------------------------------------------------------------------------------- /benchmarks/dlib/threads/threads_kernel.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2006 Davis E. King (davis@dlib.net) 2 | // License: Boost Software License See LICENSE.txt for the full license. 3 | #ifndef DLIB_THREADs_KERNEL_ 4 | #define DLIB_THREADs_KERNEL_ 5 | 6 | #include "../platform.h" 7 | 8 | #ifdef WIN32 9 | #include "windows.h" 10 | #endif 11 | 12 | #ifndef WIN32 13 | #include "posix.h" 14 | #endif 15 | 16 | #endif // DLIB_THREADs_KERNEL_ 17 | 18 | 19 | -------------------------------------------------------------------------------- /benchmarks/dlib/threads/windows.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2003 Davis E. King (davis@dlib.net) 2 | // License: Boost Software License See LICENSE.txt for the full license. 3 | #ifndef DLIB_THREADS_KERNEl_2_ 4 | #include "threads_kernel_1.h" 5 | #endif 6 | 7 | -------------------------------------------------------------------------------- /benchmarks/dlib/timeout.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2007 Davis E. King (davis@dlib.net) 2 | // License: Boost Software License See LICENSE.txt for the full license. 3 | #ifndef DLIB_TIMEOUt_ 4 | #define DLIB_TIMEOUt_ 5 | 6 | #include "timeout/timeout.h" 7 | 8 | #endif // DLIB_TIMEOUt_ 9 | 10 | 11 | -------------------------------------------------------------------------------- /benchmarks/dlib/timer.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2005 Davis E. King (davis@dlib.net) 2 | // License: Boost Software License See LICENSE.txt for the full license. 3 | #ifndef DLIB_TIMEr_ 4 | #define DLIB_TIMEr_ 5 | 6 | #include "timer/timer.h" 7 | #include "timer/timer_heavy.h" 8 | 9 | #endif // DLIB_TIMEr_ 10 | 11 | -------------------------------------------------------------------------------- /benchmarks/dlib/tokenizer.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2005 Davis E. King (davis@dlib.net) 2 | // License: Boost Software License See LICENSE.txt for the full license. 3 | #ifndef DLIB_TOKENIZEr_ 4 | #define DLIB_TOKENIZEr_ 5 | 6 | #include "tokenizer/tokenizer_kernel_1.h" 7 | #include "tokenizer/tokenizer_kernel_c.h" 8 | 9 | 10 | namespace dlib 11 | { 12 | 13 | class tokenizer 14 | { 15 | tokenizer() {} 16 | 17 | 18 | public: 19 | 20 | //----------- kernels --------------- 21 | 22 | // kernel_1a 23 | typedef tokenizer_kernel_1 24 | kernel_1a; 25 | typedef tokenizer_kernel_c 26 | kernel_1a_c; 27 | 28 | 29 | }; 30 | } 31 | 32 | #endif // DLIB_TOKENIZEr_ 33 | 34 | -------------------------------------------------------------------------------- /benchmarks/dlib/unicode.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2007 Davis E. King (davis@dlib.net) 2 | // License: Boost Software License See LICENSE.txt for the full license. 3 | #ifndef DLIB_UNICODe_TOP_ 4 | #define DLIB_UNICODe_TOP_ 5 | 6 | #include "unicode/unicode.h" 7 | 8 | #endif // DLIB_UNICODe_TOP_ 9 | 10 | -------------------------------------------------------------------------------- /benchmarks/dlib/vectorstream.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2012 Davis E. King (davis@dlib.net) 2 | // License: Boost Software License See LICENSE.txt for the full license. 3 | #ifndef DLIB_VECTORSTReAMh_ 4 | #define DLIB_VECTORSTReAMh_ 5 | 6 | #include "vectorstream/vectorstream.h" 7 | #include "vectorstream/unserialize.h" 8 | 9 | 10 | #endif // DLIB_VECTORSTReAMh_ 11 | 12 | -------------------------------------------------------------------------------- /benchmarks/makefile: -------------------------------------------------------------------------------- 1 | # ©2013-2014 Cameron Desrochers 2 | 3 | include ../build/makefile.inc 4 | 5 | default: 6 | $(MAKE) -C ../build bin/benchmarks$(EXT) 7 | 8 | run: default 9 | ../build/bin/benchmarks$(EXT) 10 | -------------------------------------------------------------------------------- /benchmarks/tbb/README.txt: -------------------------------------------------------------------------------- 1 | This is a partial copy of the Intel TBB open source version. 2 | The version taken is 4.3, obtained from https://www.threadingbuildingblocks.org/download 3 | The files in this directory consist of the files taken from src/tbb and include/tbb -------------------------------------------------------------------------------- /benchmarks/tbb/version_string.ver: -------------------------------------------------------------------------------- 1 | #define __TBB_VERSION_STRINGS(N) "Empty" 2 | -------------------------------------------------------------------------------- /benchmarks/wrappers.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | struct DummyToken 4 | { 5 | template 6 | DummyToken(TQueue const&) 7 | { 8 | } 9 | }; 10 | -------------------------------------------------------------------------------- /build/makefile.inc: -------------------------------------------------------------------------------- 1 | # ©2013 Cameron Desrochers 2 | 3 | ifeq ($(OS),Windows_NT) 4 | EXT = .exe 5 | else 6 | EXT = 7 | endif 8 | -------------------------------------------------------------------------------- /build/xcode/concurrentqueue.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /concurrentqueueConfig.cmake.in: -------------------------------------------------------------------------------- 1 | @PACKAGE_INIT@ 2 | 3 | include(${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake) 4 | -------------------------------------------------------------------------------- /tests/CDSChecker/README.txt: -------------------------------------------------------------------------------- 1 | These tests require CDSChecker to be checked out into a subdirectory 2 | named 'model-checker'. 3 | 4 | CDSChecker can be obtained from: git://demsky.eecs.uci.edu/model-checker.git 5 | The version last used for testing was: da671f78d0aa057272bb82f580b36a188b6331bd 6 | -------------------------------------------------------------------------------- /tests/CDSChecker/enqueue_dequeue_one.cpp: -------------------------------------------------------------------------------- 1 | // ©2013 Cameron Desrochers. 2 | // Distributed under the simplified BSD license (see the LICENSE file that 3 | // should have come with this file). 4 | 5 | #include "model-checker/include/threads.h" 6 | #include "corealgo.h" 7 | 8 | void producer_thread(void*) 9 | { 10 | enqueue(1234); 11 | } 12 | 13 | void consumer_thread(void*) 14 | { 15 | int element; 16 | bool result = try_dequeue(element); 17 | MODEL_ASSERT(!result || element == 1234); 18 | 19 | if (result) { 20 | MODEL_ASSERT(!try_dequeue(element)); 21 | } 22 | } 23 | 24 | int user_main(int, char**) 25 | { 26 | init(); 27 | 28 | thrd_t p, c; 29 | 30 | thrd_create(&p, &producer_thread, nullptr); 31 | thrd_create(&c, &consumer_thread, nullptr); 32 | 33 | thrd_join(p); 34 | thrd_join(c); 35 | 36 | return 0; 37 | } 38 | -------------------------------------------------------------------------------- /tests/CDSChecker/makefile: -------------------------------------------------------------------------------- 1 | default: enqueue_dequeue_one.o enqueue_dequeue_many.o 2 | 3 | enqueue_dequeue_one.o: CDSChecker makefile enqueue_dequeue_many.cpp enqueue_dequeue_one.cpp corealgo.h 4 | g++ -std=c++11 -DNDEBUG -O3 enqueue_dequeue_one.cpp -o enqueue_dequeue_one.o -Lmodel-checker -lmodel 5 | 6 | enqueue_dequeue_many.o: CDSChecker makefile enqueue_dequeue_many.cpp corealgo.h 7 | g++ -std=c++11 -DNDEBUG -O3 enqueue_dequeue_many.cpp -o enqueue_dequeue_many.o -Lmodel-checker -lmodel 8 | 9 | CDSChecker: 10 | $(MAKE) -C model-checker 11 | 12 | run: enqueue_dequeue_one.o enqueue_dequeue_many.o 13 | cd model-checker && ./run.sh ../enqueue_dequeue_one.o > ../enqueue_dequeue_one.log 14 | cd model-checker && ./run.sh ../enqueue_dequeue_many.o > ../enqueue_dequeue_many.log 15 | -------------------------------------------------------------------------------- /tests/common/systemtime.h: -------------------------------------------------------------------------------- 1 | // ©2013-2014 Cameron Desrochers 2 | 3 | #pragma once 4 | 5 | #if defined(_WIN32) 6 | #define ST_WINDOWS 7 | #elif defined(__APPLE__) && defined(__MACH__) 8 | #define ST_APPLE 9 | #elif defined(__linux__) || defined(__FreeBSD__) || defined(BSD) 10 | #define ST_NIX 11 | #else 12 | #error "Unknown platform" 13 | #endif 14 | 15 | #if defined(ST_WINDOWS) 16 | namespace moodycamel { typedef unsigned long long SystemTime; } 17 | #elif defined(ST_APPLE) 18 | #include 19 | namespace moodycamel { typedef std::uint64_t SystemTime; } 20 | #elif defined(ST_NIX) 21 | #include 22 | namespace moodycamel { typedef timespec SystemTime; } 23 | #endif 24 | 25 | namespace moodycamel 26 | { 27 | void sleep(int milliseconds); 28 | 29 | SystemTime getSystemTime(); 30 | 31 | // Returns the delta time, in milliseconds 32 | double getTimeDelta(SystemTime start); 33 | } 34 | -------------------------------------------------------------------------------- /tests/fuzztests/makefile: -------------------------------------------------------------------------------- 1 | # ©2013-2014 Cameron Desrochers 2 | 3 | include ../../build/makefile.inc 4 | 5 | default: 6 | $(MAKE) -C ../../build bin/fuzztests$(EXT) 7 | 8 | run: default 9 | ../../build/bin/fuzztests$(EXT) 10 | -------------------------------------------------------------------------------- /tests/relacy/makefile: -------------------------------------------------------------------------------- 1 | # ©2014-2015 Cameron Desrochers 2 | 3 | include ../../build/makefile.inc 4 | 5 | ifeq ($(OS),Windows_NT) 6 | PLATFORM_OPTS = -static 7 | else 8 | PLATFORM_OPTS = -lrt 9 | endif 10 | 11 | OPTS = -Wno-int-to-pointer-cast -pthread $(PLATFORM_OPTS) -O3 -g 12 | 13 | default: freelist$(EXT) spmchash$(EXT) integrated$(EXT) 14 | 15 | freelist$(EXT): makefile freelist.cpp 16 | g++ -std=c++11 -fpermissive $(OPTS) freelist.cpp -o freelist$(EXT) 17 | 18 | spmchash$(EXT): makefile spmchash.cpp 19 | g++ -std=c++11 -fpermissive $(OPTS) spmchash.cpp -o spmchash$(EXT) 20 | 21 | integrated$(EXT): makefile integrated.cpp ../../concurrentqueue.h relacy_shims.h 22 | g++ -std=c++11 -fpermissive $(OPTS) -Irelacy -I. integrated.cpp -o integrated$(EXT) 23 | 24 | #run: freelist$(EXT) 25 | # ./freelist$(EXT) 26 | #run: spmchash$(EXT) 27 | # ./spmchash$(EXT) 28 | run: integrated$(EXT) 29 | ./integrated$(EXT) 30 | -------------------------------------------------------------------------------- /tests/relacy/relacy/VERSION: -------------------------------------------------------------------------------- 1 | acc09bbe65a1837a08912774c7fed178547514e6 2 | -------------------------------------------------------------------------------- /tests/relacy/relacy/example/cli_ws_deque/msvc8/cli_ws_deque.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 9.00 3 | # Visual Studio 2005 4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cli_ws_deque", "cli_ws_deque.vcproj", "{0B597F19-DEBB-4832-B520-9A93A286D595}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Debug|Win32 = Debug|Win32 9 | Release|Win32 = Release|Win32 10 | EndGlobalSection 11 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 12 | {0B597F19-DEBB-4832-B520-9A93A286D595}.Debug|Win32.ActiveCfg = Debug|Win32 13 | {0B597F19-DEBB-4832-B520-9A93A286D595}.Debug|Win32.Build.0 = Debug|Win32 14 | {0B597F19-DEBB-4832-B520-9A93A286D595}.Release|Win32.ActiveCfg = Release|Win32 15 | {0B597F19-DEBB-4832-B520-9A93A286D595}.Release|Win32.Build.0 = Release|Win32 16 | EndGlobalSection 17 | GlobalSection(SolutionProperties) = preSolution 18 | HideSolutionNode = FALSE 19 | EndGlobalSection 20 | EndGlobal 21 | -------------------------------------------------------------------------------- /tests/relacy/relacy/example/cli_ws_deque/stdafx.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | -------------------------------------------------------------------------------- /tests/relacy/relacy/example/cli_ws_deque/stdafx.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | 4 | #include "../../relacy/pch.hpp" 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /tests/relacy/relacy/example/condvar/msvc8/condvar.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 9.00 3 | # Visual Studio 2005 4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "condvar", "condvar.vcproj", "{D4756EE9-3953-4E17-B1B5-E89F853303C1}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Debug|Win32 = Debug|Win32 9 | Release|Win32 = Release|Win32 10 | EndGlobalSection 11 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 12 | {D4756EE9-3953-4E17-B1B5-E89F853303C1}.Debug|Win32.ActiveCfg = Debug|Win32 13 | {D4756EE9-3953-4E17-B1B5-E89F853303C1}.Debug|Win32.Build.0 = Debug|Win32 14 | {D4756EE9-3953-4E17-B1B5-E89F853303C1}.Release|Win32.ActiveCfg = Release|Win32 15 | {D4756EE9-3953-4E17-B1B5-E89F853303C1}.Release|Win32.Build.0 = Release|Win32 16 | EndGlobalSection 17 | GlobalSection(SolutionProperties) = preSolution 18 | HideSolutionNode = FALSE 19 | EndGlobalSection 20 | EndGlobal 21 | -------------------------------------------------------------------------------- /tests/relacy/relacy/example/condvar/msvc9/condvar.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 10.00 3 | # Visual Studio 2008 4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "condvar", "condvar.vcproj", "{D4756EE9-3953-4E17-B1B5-E89F853303C1}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Debug|Win32 = Debug|Win32 9 | Release|Win32 = Release|Win32 10 | EndGlobalSection 11 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 12 | {D4756EE9-3953-4E17-B1B5-E89F853303C1}.Debug|Win32.ActiveCfg = Debug|Win32 13 | {D4756EE9-3953-4E17-B1B5-E89F853303C1}.Debug|Win32.Build.0 = Debug|Win32 14 | {D4756EE9-3953-4E17-B1B5-E89F853303C1}.Release|Win32.ActiveCfg = Release|Win32 15 | {D4756EE9-3953-4E17-B1B5-E89F853303C1}.Release|Win32.Build.0 = Release|Win32 16 | EndGlobalSection 17 | GlobalSection(SolutionProperties) = preSolution 18 | HideSolutionNode = FALSE 19 | EndGlobalSection 20 | EndGlobal 21 | -------------------------------------------------------------------------------- /tests/relacy/relacy/example/condvar/stdafx.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | -------------------------------------------------------------------------------- /tests/relacy/relacy/example/condvar/stdafx.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #ifdef NDEBUG 4 | # define _SECURE_SCL 0 5 | #endif 6 | 7 | #define RL_MSVC_OUTPUT 8 | //#define RL_DEBUGBREAK_ON_FAILURE 9 | 10 | #include "../../relacy/pch.hpp" 11 | #include "../../relacy/relacy_std.hpp" 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /tests/relacy/relacy/example/eventcount/msvc8/eventcount.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 9.00 3 | # Visual Studio 2005 4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "eventcount", "eventcount.vcproj", "{ECB64178-A35E-4EB2-9EB0-BD72D6F7B6E5}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Debug|Win32 = Debug|Win32 9 | Release|Win32 = Release|Win32 10 | EndGlobalSection 11 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 12 | {ECB64178-A35E-4EB2-9EB0-BD72D6F7B6E5}.Debug|Win32.ActiveCfg = Debug|Win32 13 | {ECB64178-A35E-4EB2-9EB0-BD72D6F7B6E5}.Debug|Win32.Build.0 = Debug|Win32 14 | {ECB64178-A35E-4EB2-9EB0-BD72D6F7B6E5}.Release|Win32.ActiveCfg = Release|Win32 15 | {ECB64178-A35E-4EB2-9EB0-BD72D6F7B6E5}.Release|Win32.Build.0 = Release|Win32 16 | EndGlobalSection 17 | GlobalSection(SolutionProperties) = preSolution 18 | HideSolutionNode = FALSE 19 | EndGlobalSection 20 | EndGlobal 21 | -------------------------------------------------------------------------------- /tests/relacy/relacy/example/eventcount/msvc9/eventcount.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 10.00 3 | # Visual Studio 2005 4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "eventcount", "eventcount.vcproj", "{ECB64178-A35E-4EB2-9EB0-BD72D6F7B6E5}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Debug|Win32 = Debug|Win32 9 | Release|Win32 = Release|Win32 10 | EndGlobalSection 11 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 12 | {ECB64178-A35E-4EB2-9EB0-BD72D6F7B6E4}.Debug|Win32.ActiveCfg = Debug|Win32 13 | {ECB64178-A35E-4EB2-9EB0-BD72D6F7B6E4}.Debug|Win32.Build.0 = Debug|Win32 14 | {ECB64178-A35E-4EB2-9EB0-BD72D6F7B6E4}.Release|Win32.ActiveCfg = Release|Win32 15 | {ECB64178-A35E-4EB2-9EB0-BD72D6F7B6E4}.Release|Win32.Build.0 = Release|Win32 16 | EndGlobalSection 17 | GlobalSection(SolutionProperties) = preSolution 18 | HideSolutionNode = FALSE 19 | EndGlobalSection 20 | EndGlobal 21 | -------------------------------------------------------------------------------- /tests/relacy/relacy/example/eventcount/stdafx.cpp: -------------------------------------------------------------------------------- 1 | // stdafx.cpp : source file that includes just the standard includes 2 | // ws_deque.pch will be the pre-compiled header 3 | // stdafx.obj will contain the pre-compiled type information 4 | 5 | #include "stdafx.h" 6 | 7 | // TODO: reference any additional headers you need in STDAFX.H 8 | // and not in this file 9 | -------------------------------------------------------------------------------- /tests/relacy/relacy/example/eventcount/stdafx.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #define _WIN32_WINNT 0x0500 4 | #include 5 | #include 6 | #include 7 | 8 | #include "../../relacy/pch.hpp" 9 | #include "../../relacy/relacy_std.hpp" 10 | 11 | -------------------------------------------------------------------------------- /tests/relacy/relacy/example/examples/examples.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | #include "spsc_overwrite_queue.hpp" 3 | #include "amp_condvar.hpp" 4 | 5 | 6 | int main() 7 | { 8 | rl::test_params p; 9 | p.iteration_count = 10000; 10 | //p.search_type = rl::sched_bound; 11 | //p.context_bound = 3; 12 | 13 | rl::execute(p); 14 | rl::simulate(p); 15 | rl::simulate(p); 16 | } 17 | 18 | -------------------------------------------------------------------------------- /tests/relacy/relacy/example/examples/msvc9/examples.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 10.00 3 | # Visual Studio 2008 4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "examples", "examples.vcproj", "{6CC59CF8-408B-441B-8F65-15651210CB82}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Debug|Win32 = Debug|Win32 9 | Release|Win32 = Release|Win32 10 | EndGlobalSection 11 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 12 | {6CC59CF8-408B-441B-8F65-15651210CB82}.Debug|Win32.ActiveCfg = Debug|Win32 13 | {6CC59CF8-408B-441B-8F65-15651210CB82}.Debug|Win32.Build.0 = Debug|Win32 14 | {6CC59CF8-408B-441B-8F65-15651210CB82}.Release|Win32.ActiveCfg = Release|Win32 15 | {6CC59CF8-408B-441B-8F65-15651210CB82}.Release|Win32.Build.0 = Release|Win32 16 | EndGlobalSection 17 | GlobalSection(SolutionProperties) = preSolution 18 | HideSolutionNode = FALSE 19 | EndGlobalSection 20 | EndGlobal 21 | -------------------------------------------------------------------------------- /tests/relacy/relacy/example/examples/stdafx.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | -------------------------------------------------------------------------------- /tests/relacy/relacy/example/examples/stdafx.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #ifdef NDEBUG 4 | # define _SECURE_SCL 0 5 | #endif 6 | 7 | #define RL_FORCE_SEQ_CST 8 | #define RL_MSVC_OUTPUT 9 | //#define RL_DEBUGBREAK_ON_FAILURE 10 | 11 | #include "../../relacy/pch.hpp" 12 | #include "../../relacy/relacy_std.hpp" 13 | #include "../../relacy/stdlib/windows.hpp" 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /tests/relacy/relacy/example/java_ws_deque/msvc8/java_ws_deque.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 9.00 3 | # Visual Studio 2005 4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "java_ws_deque", "java_ws_deque.vcproj", "{D4756EE9-3953-4E17-B1B5-E89F853303C1}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Debug|Win32 = Debug|Win32 9 | Release|Win32 = Release|Win32 10 | EndGlobalSection 11 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 12 | {D4756EE9-3953-4E17-B1B5-E89F853303C1}.Debug|Win32.ActiveCfg = Debug|Win32 13 | {D4756EE9-3953-4E17-B1B5-E89F853303C1}.Debug|Win32.Build.0 = Debug|Win32 14 | {D4756EE9-3953-4E17-B1B5-E89F853303C1}.Release|Win32.ActiveCfg = Release|Win32 15 | {D4756EE9-3953-4E17-B1B5-E89F853303C1}.Release|Win32.Build.0 = Release|Win32 16 | EndGlobalSection 17 | GlobalSection(SolutionProperties) = preSolution 18 | HideSolutionNode = FALSE 19 | EndGlobalSection 20 | EndGlobal 21 | -------------------------------------------------------------------------------- /tests/relacy/relacy/example/java_ws_deque/stdafx.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | -------------------------------------------------------------------------------- /tests/relacy/relacy/example/java_ws_deque/stdafx.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | 4 | #include "../../relacy/pch.hpp" 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /tests/relacy/relacy/example/mpmc/msvc8/mpmc.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 9.00 3 | # Visual Studio 2005 4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mpmc", "mpmc.vcproj", "{ECB64178-A35E-4EB2-9EB0-BD72D6F7B6E4}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Debug|Win32 = Debug|Win32 9 | Release|Win32 = Release|Win32 10 | EndGlobalSection 11 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 12 | {ECB64178-A35E-4EB2-9EB0-BD72D6F7B6E4}.Debug|Win32.ActiveCfg = Debug|Win32 13 | {ECB64178-A35E-4EB2-9EB0-BD72D6F7B6E4}.Debug|Win32.Build.0 = Debug|Win32 14 | {ECB64178-A35E-4EB2-9EB0-BD72D6F7B6E4}.Release|Win32.ActiveCfg = Release|Win32 15 | {ECB64178-A35E-4EB2-9EB0-BD72D6F7B6E4}.Release|Win32.Build.0 = Release|Win32 16 | EndGlobalSection 17 | GlobalSection(SolutionProperties) = preSolution 18 | HideSolutionNode = FALSE 19 | EndGlobalSection 20 | EndGlobal 21 | -------------------------------------------------------------------------------- /tests/relacy/relacy/example/mpmc/stdafx.cpp: -------------------------------------------------------------------------------- 1 | // stdafx.cpp : source file that includes just the standard includes 2 | // ws_deque.pch will be the pre-compiled header 3 | // stdafx.obj will contain the pre-compiled type information 4 | 5 | #include "stdafx.h" 6 | 7 | // TODO: reference any additional headers you need in STDAFX.H 8 | // and not in this file 9 | -------------------------------------------------------------------------------- /tests/relacy/relacy/example/mpmc/stdafx.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #pragma warning (disable: 4201) 4 | 5 | //#define RL_GC 6 | #define RL_MSVC_OUTPUT 7 | 8 | #include "../../relacy/pch.hpp" 9 | #include "../../relacy/relacy_std.hpp" 10 | 11 | -------------------------------------------------------------------------------- /tests/relacy/relacy/example/mutex_business_logic/stdafx.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | -------------------------------------------------------------------------------- /tests/relacy/relacy/example/mutex_business_logic/stdafx.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #ifdef NDEBUG 4 | # define _SECURE_SCL 0 5 | #endif 6 | 7 | #define RL_MSVC_OUTPUT 8 | //#define RL_DEBUGBREAK_ON_FAILURE 9 | 10 | #include "../../relacy/pch.hpp" 11 | #include "../../relacy/relacy_std.hpp" 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /tests/relacy/relacy/example/peterson/msvc8/peterson.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 9.00 3 | # Visual Studio 2005 4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "peterson", "peterson.vcproj", "{D4756EE9-3953-4E17-B1B5-E89F853303C1}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Debug|Win32 = Debug|Win32 9 | Release|Win32 = Release|Win32 10 | EndGlobalSection 11 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 12 | {D4756EE9-3953-4E17-B1B5-E89F853303C1}.Debug|Win32.ActiveCfg = Debug|Win32 13 | {D4756EE9-3953-4E17-B1B5-E89F853303C1}.Debug|Win32.Build.0 = Debug|Win32 14 | {D4756EE9-3953-4E17-B1B5-E89F853303C1}.Release|Win32.ActiveCfg = Release|Win32 15 | {D4756EE9-3953-4E17-B1B5-E89F853303C1}.Release|Win32.Build.0 = Release|Win32 16 | EndGlobalSection 17 | GlobalSection(SolutionProperties) = preSolution 18 | HideSolutionNode = FALSE 19 | EndGlobalSection 20 | EndGlobal 21 | -------------------------------------------------------------------------------- /tests/relacy/relacy/example/peterson/msvc9/peterson.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 10.00 3 | # Visual Studio 2008 4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "peterson", "peterson.vcproj", "{D4756EE9-3953-4E17-B1B5-E89F853303C1}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Debug|Win32 = Debug|Win32 9 | Release|Win32 = Release|Win32 10 | EndGlobalSection 11 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 12 | {D4756EE9-3953-4E17-B1B5-E89F853303C1}.Debug|Win32.ActiveCfg = Debug|Win32 13 | {D4756EE9-3953-4E17-B1B5-E89F853303C1}.Debug|Win32.Build.0 = Debug|Win32 14 | {D4756EE9-3953-4E17-B1B5-E89F853303C1}.Release|Win32.ActiveCfg = Release|Win32 15 | {D4756EE9-3953-4E17-B1B5-E89F853303C1}.Release|Win32.Build.0 = Release|Win32 16 | EndGlobalSection 17 | GlobalSection(SolutionProperties) = preSolution 18 | HideSolutionNode = FALSE 19 | EndGlobalSection 20 | EndGlobal 21 | -------------------------------------------------------------------------------- /tests/relacy/relacy/example/peterson/stdafx.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | -------------------------------------------------------------------------------- /tests/relacy/relacy/example/peterson/stdafx.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #ifdef NDEBUG 4 | # define _SECURE_SCL 0 5 | #endif 6 | 7 | #define RL_MSVC_OUTPUT 8 | //#define RL_DEBUGBREAK_ON_FAILURE 9 | 10 | #include "../../relacy/pch.hpp" 11 | #include "../../relacy/relacy_std.hpp" 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /tests/relacy/relacy/example/proxy_collector/stdafx.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | -------------------------------------------------------------------------------- /tests/relacy/relacy/example/proxy_collector/stdafx.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #ifdef NDEBUG 4 | # define _SECURE_SCL 0 5 | #endif 6 | 7 | #include "../../relacy/pch.hpp" 8 | 9 | #include 10 | 11 | 12 | -------------------------------------------------------------------------------- /tests/relacy/relacy/example/ref_counting/msvc8/ref_counting.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 9.00 3 | # Visual Studio 2005 4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ref_counting", "ref_counting.vcproj", "{31994C0C-3BAD-4F25-8BC8-3206FF349B28}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Debug|Win32 = Debug|Win32 9 | Release|Win32 = Release|Win32 10 | EndGlobalSection 11 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 12 | {31994C0C-3BAD-4F25-8BC8-3206FF349B28}.Debug|Win32.ActiveCfg = Debug|Win32 13 | {31994C0C-3BAD-4F25-8BC8-3206FF349B28}.Debug|Win32.Build.0 = Debug|Win32 14 | {31994C0C-3BAD-4F25-8BC8-3206FF349B28}.Release|Win32.ActiveCfg = Release|Win32 15 | {31994C0C-3BAD-4F25-8BC8-3206FF349B28}.Release|Win32.Build.0 = Release|Win32 16 | EndGlobalSection 17 | GlobalSection(SolutionProperties) = preSolution 18 | HideSolutionNode = FALSE 19 | EndGlobalSection 20 | EndGlobal 21 | -------------------------------------------------------------------------------- /tests/relacy/relacy/example/ref_counting/msvc9/ref_counting.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 10.00 3 | # Visual Studio 2008 4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ref_counting", "ref_counting.vcproj", "{31994C0C-3BAD-4F25-8BC8-3206FF349B28}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Debug|Win32 = Debug|Win32 9 | Release|Win32 = Release|Win32 10 | EndGlobalSection 11 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 12 | {31994C0C-3BAD-4F25-8BC8-3206FF349B28}.Debug|Win32.ActiveCfg = Debug|Win32 13 | {31994C0C-3BAD-4F25-8BC8-3206FF349B28}.Debug|Win32.Build.0 = Debug|Win32 14 | {31994C0C-3BAD-4F25-8BC8-3206FF349B28}.Release|Win32.ActiveCfg = Release|Win32 15 | {31994C0C-3BAD-4F25-8BC8-3206FF349B28}.Release|Win32.Build.0 = Release|Win32 16 | EndGlobalSection 17 | GlobalSection(SolutionProperties) = preSolution 18 | HideSolutionNode = FALSE 19 | EndGlobalSection 20 | EndGlobal 21 | -------------------------------------------------------------------------------- /tests/relacy/relacy/example/ref_counting/stdafx.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | -------------------------------------------------------------------------------- /tests/relacy/relacy/example/ref_counting/stdafx.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #ifdef NDEBUG 4 | # define _SECURE_SCL 0 5 | #endif 6 | 7 | #include "../../relacy/pch.hpp" 8 | 9 | -------------------------------------------------------------------------------- /tests/relacy/relacy/example/smr/g++/Makefile: -------------------------------------------------------------------------------- 1 | TARGET=smr 2 | SRC=smr.cpp 3 | HEADERS=stdafx.h 4 | 5 | all: ${TARGET} 6 | 7 | ${TARGET}: Makefile ${SRC} ${HEADERS} 8 | g++ ${SRC} -O3 -g -o ${TARGET} 9 | 10 | clean: 11 | rm ${TARGET} 12 | -------------------------------------------------------------------------------- /tests/relacy/relacy/example/smr/msvc8/smr.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 9.00 3 | # Visual Studio 2005 4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "smr", "smr.vcproj", "{BC168133-5E3D-4691-BA15-8E0FD61DFDB5}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Debug|Win32 = Debug|Win32 9 | Release|Win32 = Release|Win32 10 | EndGlobalSection 11 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 12 | {BC168133-5E3D-4691-BA15-8E0FD61DFDB5}.Debug|Win32.ActiveCfg = Debug|Win32 13 | {BC168133-5E3D-4691-BA15-8E0FD61DFDB5}.Debug|Win32.Build.0 = Debug|Win32 14 | {BC168133-5E3D-4691-BA15-8E0FD61DFDB5}.Release|Win32.ActiveCfg = Release|Win32 15 | {BC168133-5E3D-4691-BA15-8E0FD61DFDB5}.Release|Win32.Build.0 = Release|Win32 16 | EndGlobalSection 17 | GlobalSection(SolutionProperties) = preSolution 18 | HideSolutionNode = FALSE 19 | EndGlobalSection 20 | EndGlobal 21 | -------------------------------------------------------------------------------- /tests/relacy/relacy/example/smr/msvc9/smr.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 10.00 3 | # Visual Studio 2008 4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "smr", "smr.vcproj", "{BC168133-5E3D-4691-BA15-8E0FD61DFDB5}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Debug|Win32 = Debug|Win32 9 | Release|Win32 = Release|Win32 10 | EndGlobalSection 11 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 12 | {BC168133-5E3D-4691-BA15-8E0FD61DFDB5}.Debug|Win32.ActiveCfg = Debug|Win32 13 | {BC168133-5E3D-4691-BA15-8E0FD61DFDB5}.Debug|Win32.Build.0 = Debug|Win32 14 | {BC168133-5E3D-4691-BA15-8E0FD61DFDB5}.Release|Win32.ActiveCfg = Release|Win32 15 | {BC168133-5E3D-4691-BA15-8E0FD61DFDB5}.Release|Win32.Build.0 = Release|Win32 16 | EndGlobalSection 17 | GlobalSection(SolutionProperties) = preSolution 18 | HideSolutionNode = FALSE 19 | EndGlobalSection 20 | EndGlobal 21 | -------------------------------------------------------------------------------- /tests/relacy/relacy/example/smr/stdafx.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | -------------------------------------------------------------------------------- /tests/relacy/relacy/example/smr/stdafx.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #ifdef NDEBUG 4 | # define _SECURE_SCL 0 5 | #endif 6 | 7 | #define RL_MSVC_OUTPUT 8 | 9 | #include "../../relacy/pch.hpp" 10 | 11 | -------------------------------------------------------------------------------- /tests/relacy/relacy/example/spsc_queue/msvc8/spsc_queue.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 9.00 3 | # Visual Studio 2005 4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "spsc_queue", "spsc_queue.vcproj", "{2F0B1A3B-27CA-47D4-A9D1-5EC66BB0A85B}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Debug|Win32 = Debug|Win32 9 | Release|Win32 = Release|Win32 10 | EndGlobalSection 11 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 12 | {2F0B1A3B-27CA-47D4-A9D1-5EC66BB0A85B}.Debug|Win32.ActiveCfg = Debug|Win32 13 | {2F0B1A3B-27CA-47D4-A9D1-5EC66BB0A85B}.Debug|Win32.Build.0 = Debug|Win32 14 | {2F0B1A3B-27CA-47D4-A9D1-5EC66BB0A85B}.Release|Win32.ActiveCfg = Release|Win32 15 | {2F0B1A3B-27CA-47D4-A9D1-5EC66BB0A85B}.Release|Win32.Build.0 = Release|Win32 16 | EndGlobalSection 17 | GlobalSection(SolutionProperties) = preSolution 18 | HideSolutionNode = FALSE 19 | EndGlobalSection 20 | EndGlobal 21 | -------------------------------------------------------------------------------- /tests/relacy/relacy/example/spsc_queue/msvc9/spsc_queue.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 10.00 3 | # Visual Studio 2008 4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "spsc_queue", "spsc_queue.vcproj", "{D4756EE9-3953-4E17-B1B5-E89F853303C1}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Debug|Win32 = Debug|Win32 9 | Release|Win32 = Release|Win32 10 | EndGlobalSection 11 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 12 | {D4756EE9-3953-4E17-B1B5-E89F853303C1}.Debug|Win32.ActiveCfg = Debug|Win32 13 | {D4756EE9-3953-4E17-B1B5-E89F853303C1}.Debug|Win32.Build.0 = Debug|Win32 14 | {D4756EE9-3953-4E17-B1B5-E89F853303C1}.Release|Win32.ActiveCfg = Release|Win32 15 | {D4756EE9-3953-4E17-B1B5-E89F853303C1}.Release|Win32.Build.0 = Release|Win32 16 | EndGlobalSection 17 | GlobalSection(SolutionProperties) = preSolution 18 | HideSolutionNode = FALSE 19 | EndGlobalSection 20 | EndGlobal 21 | -------------------------------------------------------------------------------- /tests/relacy/relacy/example/spsc_queue/stdafx.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | -------------------------------------------------------------------------------- /tests/relacy/relacy/example/spsc_queue/stdafx.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #ifdef NDEBUG 4 | # define _SECURE_SCL 0 5 | #endif 6 | 7 | //#define RL_MSVC_OUTPUT 8 | 9 | #include "../../relacy/pch.hpp" 10 | #include "../../relacy/relacy_std.hpp" 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /tests/relacy/relacy/example/stack/DESCRIPTION.TXT: -------------------------------------------------------------------------------- 1 | lock-free stack 2 | code contains several bugs: access to freed memory and ABA problem 3 | -------------------------------------------------------------------------------- /tests/relacy/relacy/example/stack/msvc8/stack.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 9.00 3 | # Visual Studio 2005 4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "stack", "stack.vcproj", "{4D6D7FC3-66D1-4F80-B434-2FDCBBFBC9F5}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Debug|Win32 = Debug|Win32 9 | Release|Win32 = Release|Win32 10 | EndGlobalSection 11 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 12 | {4D6D7FC3-66D1-4F80-B434-2FDCBBFBC9F5}.Debug|Win32.ActiveCfg = Debug|Win32 13 | {4D6D7FC3-66D1-4F80-B434-2FDCBBFBC9F5}.Debug|Win32.Build.0 = Debug|Win32 14 | {4D6D7FC3-66D1-4F80-B434-2FDCBBFBC9F5}.Release|Win32.ActiveCfg = Release|Win32 15 | {4D6D7FC3-66D1-4F80-B434-2FDCBBFBC9F5}.Release|Win32.Build.0 = Release|Win32 16 | EndGlobalSection 17 | GlobalSection(SolutionProperties) = preSolution 18 | HideSolutionNode = FALSE 19 | EndGlobalSection 20 | EndGlobal 21 | -------------------------------------------------------------------------------- /tests/relacy/relacy/example/stack/msvc9/stack.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 10.00 3 | # Visual Studio 2008 4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "stack", "stack.vcproj", "{4D6D7FC3-66D1-4F80-B434-2FDCBBFBC9F5}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Debug|Win32 = Debug|Win32 9 | Release|Win32 = Release|Win32 10 | EndGlobalSection 11 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 12 | {4D6D7FC3-66D1-4F80-B434-2FDCBBFBC9F5}.Debug|Win32.ActiveCfg = Debug|Win32 13 | {4D6D7FC3-66D1-4F80-B434-2FDCBBFBC9F5}.Debug|Win32.Build.0 = Debug|Win32 14 | {4D6D7FC3-66D1-4F80-B434-2FDCBBFBC9F5}.Release|Win32.ActiveCfg = Release|Win32 15 | {4D6D7FC3-66D1-4F80-B434-2FDCBBFBC9F5}.Release|Win32.Build.0 = Release|Win32 16 | EndGlobalSection 17 | GlobalSection(SolutionProperties) = preSolution 18 | HideSolutionNode = FALSE 19 | EndGlobalSection 20 | EndGlobal 21 | -------------------------------------------------------------------------------- /tests/relacy/relacy/example/stack/stdafx.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | -------------------------------------------------------------------------------- /tests/relacy/relacy/example/stack/stdafx.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #ifdef NDEBUG 4 | # define _SECURE_SCL 0 5 | #endif 6 | 7 | #include "../../relacy/pch.hpp" 8 | 9 | -------------------------------------------------------------------------------- /tests/relacy/relacy/example/tbb_eventcount/msvc8/eventcount.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 9.00 3 | # Visual Studio 2005 4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "eventcount", "eventcount.vcproj", "{ECB64178-A35E-4EB2-9EB0-BD72D6F7B6E5}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Debug|Win32 = Debug|Win32 9 | Release|Win32 = Release|Win32 10 | EndGlobalSection 11 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 12 | {ECB64178-A35E-4EB2-9EB0-BD72D6F7B6E5}.Debug|Win32.ActiveCfg = Debug|Win32 13 | {ECB64178-A35E-4EB2-9EB0-BD72D6F7B6E5}.Debug|Win32.Build.0 = Debug|Win32 14 | {ECB64178-A35E-4EB2-9EB0-BD72D6F7B6E5}.Release|Win32.ActiveCfg = Release|Win32 15 | {ECB64178-A35E-4EB2-9EB0-BD72D6F7B6E5}.Release|Win32.Build.0 = Release|Win32 16 | EndGlobalSection 17 | GlobalSection(SolutionProperties) = preSolution 18 | HideSolutionNode = FALSE 19 | EndGlobalSection 20 | EndGlobal 21 | -------------------------------------------------------------------------------- /tests/relacy/relacy/example/tbb_eventcount/msvc9/eventcount.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 10.00 3 | # Visual Studio 2005 4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "eventcount", "eventcount.vcproj", "{ECB64178-A35E-4EB2-9EB0-BD72D6F7B6E5}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Debug|Win32 = Debug|Win32 9 | Release|Win32 = Release|Win32 10 | EndGlobalSection 11 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 12 | {ECB64178-A35E-4EB2-9EB0-BD72D6F7B6E5}.Debug|Win32.ActiveCfg = Debug|Win32 13 | {ECB64178-A35E-4EB2-9EB0-BD72D6F7B6E5}.Debug|Win32.Build.0 = Debug|Win32 14 | {ECB64178-A35E-4EB2-9EB0-BD72D6F7B6E5}.Release|Win32.ActiveCfg = Release|Win32 15 | {ECB64178-A35E-4EB2-9EB0-BD72D6F7B6E5}.Release|Win32.Build.0 = Release|Win32 16 | EndGlobalSection 17 | GlobalSection(SolutionProperties) = preSolution 18 | HideSolutionNode = FALSE 19 | EndGlobalSection 20 | EndGlobal 21 | -------------------------------------------------------------------------------- /tests/relacy/relacy/example/tbb_eventcount/stdafx.cpp: -------------------------------------------------------------------------------- 1 | // stdafx.cpp : source file that includes just the standard includes 2 | // ws_deque.pch will be the pre-compiled header 3 | // stdafx.obj will contain the pre-compiled type information 4 | 5 | #include "stdafx.h" 6 | 7 | // TODO: reference any additional headers you need in STDAFX.H 8 | // and not in this file 9 | -------------------------------------------------------------------------------- /tests/relacy/relacy/example/tbb_eventcount/stdafx.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | 4 | #include "../../relacy/pch.hpp" 5 | #include "../../relacy/relacy_std.hpp" 6 | 7 | -------------------------------------------------------------------------------- /tests/relacy/relacy/example/ws_deque/msvc8/ws_deque.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 9.00 3 | # Visual Studio 2005 4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ws_deque", "ws_deque.vcproj", "{0B597F19-DEBB-4832-B520-9A93A286D595}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Debug|Win32 = Debug|Win32 9 | Release|Win32 = Release|Win32 10 | EndGlobalSection 11 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 12 | {0B597F19-DEBB-4832-B520-9A93A286D595}.Debug|Win32.ActiveCfg = Debug|Win32 13 | {0B597F19-DEBB-4832-B520-9A93A286D595}.Debug|Win32.Build.0 = Debug|Win32 14 | {0B597F19-DEBB-4832-B520-9A93A286D595}.Release|Win32.ActiveCfg = Release|Win32 15 | {0B597F19-DEBB-4832-B520-9A93A286D595}.Release|Win32.Build.0 = Release|Win32 16 | EndGlobalSection 17 | GlobalSection(SolutionProperties) = preSolution 18 | HideSolutionNode = FALSE 19 | EndGlobalSection 20 | EndGlobal 21 | -------------------------------------------------------------------------------- /tests/relacy/relacy/example/ws_deque/msvc9/ws_deque.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 10.00 3 | # Visual Studio 2008 4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ws_deque", "ws_deque.vcproj", "{0B597F19-DEBB-4832-B520-9A93A286D595}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Debug|Win32 = Debug|Win32 9 | Release|Win32 = Release|Win32 10 | EndGlobalSection 11 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 12 | {0B597F19-DEBB-4832-B520-9A93A286D595}.Debug|Win32.ActiveCfg = Debug|Win32 13 | {0B597F19-DEBB-4832-B520-9A93A286D595}.Debug|Win32.Build.0 = Debug|Win32 14 | {0B597F19-DEBB-4832-B520-9A93A286D595}.Release|Win32.ActiveCfg = Release|Win32 15 | {0B597F19-DEBB-4832-B520-9A93A286D595}.Release|Win32.Build.0 = Release|Win32 16 | EndGlobalSection 17 | GlobalSection(SolutionProperties) = preSolution 18 | HideSolutionNode = FALSE 19 | EndGlobalSection 20 | EndGlobal 21 | -------------------------------------------------------------------------------- /tests/relacy/relacy/example/ws_deque/stdafx.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | -------------------------------------------------------------------------------- /tests/relacy/relacy/example/ws_deque/stdafx.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #ifdef NDEBUG 4 | # define _SECURE_SCL 0 5 | #endif 6 | 7 | #define RL_MSVC_OUTPUT 8 | //#define RL_DEBUGBREAK_ON_FAILURE 9 | 10 | #include "../../relacy/pch.hpp" 11 | #include "../../relacy/relacy_std.hpp" 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /tests/relacy/relacy/example/ws_deque2/msvc8/ws_deque.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 9.00 3 | # Visual Studio 2005 4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ws_deque", "ws_deque.vcproj", "{ECB64178-A35E-4EB2-9EB0-BD72D6F7B6E4}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Debug|Win32 = Debug|Win32 9 | Release|Win32 = Release|Win32 10 | EndGlobalSection 11 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 12 | {ECB64178-A35E-4EB2-9EB0-BD72D6F7B6E4}.Debug|Win32.ActiveCfg = Debug|Win32 13 | {ECB64178-A35E-4EB2-9EB0-BD72D6F7B6E4}.Debug|Win32.Build.0 = Debug|Win32 14 | {ECB64178-A35E-4EB2-9EB0-BD72D6F7B6E4}.Release|Win32.ActiveCfg = Release|Win32 15 | {ECB64178-A35E-4EB2-9EB0-BD72D6F7B6E4}.Release|Win32.Build.0 = Release|Win32 16 | EndGlobalSection 17 | GlobalSection(SolutionProperties) = preSolution 18 | HideSolutionNode = FALSE 19 | EndGlobalSection 20 | EndGlobal 21 | -------------------------------------------------------------------------------- /tests/relacy/relacy/example/ws_deque2/stdafx.cpp: -------------------------------------------------------------------------------- 1 | // stdafx.cpp : source file that includes just the standard includes 2 | // ws_deque.pch will be the pre-compiled header 3 | // stdafx.obj will contain the pre-compiled type information 4 | 5 | #include "stdafx.h" 6 | 7 | // TODO: reference any additional headers you need in STDAFX.H 8 | // and not in this file 9 | -------------------------------------------------------------------------------- /tests/relacy/relacy/example/ws_deque2/stdafx.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | 4 | #include "../../relacy/pch.hpp" 5 | #include "../../relacy/relacy_std.hpp" 6 | 7 | -------------------------------------------------------------------------------- /tests/relacy/relacy/relacy/pthread.h: -------------------------------------------------------------------------------- 1 | /* Relacy Race Detector 2 | * Copyright (c) 2008-2013, Dmitry S. Vyukov 3 | * All rights reserved. 4 | * This software is provided AS-IS with no warranty, either express or implied. 5 | * This software is distributed under a license and may not be copied, 6 | * modified or distributed except as expressly authorized under the 7 | * terms of the license contained in the file LICENSE in this distribution. 8 | */ 9 | 10 | #ifndef RL_PTHREAD_IFACE_HPP 11 | #define RL_PTHREAD_IFACE_HPP 12 | #ifdef _MSC_VER 13 | # pragma once 14 | #endif 15 | 16 | 17 | #include "relacy.hpp" 18 | #include "stdlib/pthread.hpp" 19 | 20 | 21 | #endif 22 | -------------------------------------------------------------------------------- /tests/relacy/relacy/relacy/relacy_cli.hpp: -------------------------------------------------------------------------------- 1 | /* Relacy Race Detector 2 | * Copyright (c) 2008-2013, Dmitry S. Vyukov 3 | * All rights reserved. 4 | * This software is provided AS-IS with no warranty, either express or implied. 5 | * This software is distributed under a license and may not be copied, 6 | * modified or distributed except as expressly authorized under the 7 | * terms of the license contained in the file LICENSE in this distribution. 8 | */ 9 | 10 | #ifndef RL_RELACY_CLI_HPP 11 | #define RL_RELACY_CLI_HPP 12 | #ifdef _MSC_VER 13 | # pragma once 14 | #endif 15 | 16 | 17 | #define RL_CLI_MODE 18 | 19 | #include "relacy.hpp" 20 | 21 | #include "cli.hpp" 22 | #include "cli_interlocked.hpp" 23 | #include "cli_volatile.hpp" 24 | #include "cli_var.hpp" 25 | 26 | 27 | 28 | 29 | #endif 30 | -------------------------------------------------------------------------------- /tests/relacy/relacy/relacy/relacy_java.hpp: -------------------------------------------------------------------------------- 1 | /* Relacy Race Detector 2 | * Copyright (c) 2008-2013, Dmitry S. Vyukov 3 | * All rights reserved. 4 | * This software is provided AS-IS with no warranty, either express or implied. 5 | * This software is distributed under a license and may not be copied, 6 | * modified or distributed except as expressly authorized under the 7 | * terms of the license contained in the file LICENSE in this distribution. 8 | */ 9 | 10 | #ifndef RL_RELACY_JAVA_HPP 11 | #define RL_RELACY_JAVA_HPP 12 | #ifdef _MSC_VER 13 | # pragma once 14 | #endif 15 | 16 | 17 | #define RL_JAVA_MODE 18 | 19 | #include "relacy.hpp" 20 | 21 | #include "java.hpp" 22 | #include "java_atomic.hpp" 23 | #include "java_volatile.hpp" 24 | #include "java_var.hpp" 25 | 26 | 27 | 28 | 29 | #endif 30 | -------------------------------------------------------------------------------- /tests/relacy/relacy/relacy/stdlib/windows.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameron314/concurrentqueue/a989e7e55335ffb231be81bf8575b89fb392c6e3/tests/relacy/relacy/relacy/stdlib/windows.hpp -------------------------------------------------------------------------------- /tests/relacy/relacy/relacy/volatile.hpp: -------------------------------------------------------------------------------- 1 | /* Relacy Race Detector 2 | * Copyright (c) 2008-2013, Dmitry S. Vyukov 3 | * All rights reserved. 4 | * This software is provided AS-IS with no warranty, either express or implied. 5 | * This software is distributed under a license and may not be copied, 6 | * modified or distributed except as expressly authorized under the 7 | * terms of the license contained in the file LICENSE in this distribution. 8 | */ 9 | 10 | #ifndef RL_VOLATILE_HPP 11 | #define RL_VOLATILE_HPP 12 | #ifdef _MSC_VER 13 | # pragma once 14 | #endif 15 | 16 | #include "base.hpp" 17 | 18 | 19 | namespace rl 20 | { 21 | 22 | } 23 | 24 | #endif 25 | -------------------------------------------------------------------------------- /tests/relacy/relacy/relacy/windows.h: -------------------------------------------------------------------------------- 1 | /* Relacy Race Detector 2 | * Copyright (c) 2008-2013, Dmitry S. Vyukov 3 | * All rights reserved. 4 | * This software is provided AS-IS with no warranty, either express or implied. 5 | * This software is distributed under a license and may not be copied, 6 | * modified or distributed except as expressly authorized under the 7 | * terms of the license contained in the file LICENSE in this distribution. 8 | */ 9 | 10 | #ifndef RL_WINDOWS_IFACE_HPP 11 | #define RL_WINDOWS_IFACE_HPP 12 | #ifdef _MSC_VER 13 | # pragma once 14 | #endif 15 | 16 | 17 | #include "relacy.hpp" 18 | #include "stdlib/windows.hpp" 19 | 20 | 21 | #endif 22 | -------------------------------------------------------------------------------- /tests/relacy/relacy/test/detection.txt: -------------------------------------------------------------------------------- 1 | - Race condition (accoring to ISO C++0x) 2 | - Access to uninitialized variable 3 | - Access to freed memory 4 | - Double free 5 | - Memory leak 6 | - Deadlock 7 | - Livelock 8 | - User assert failed 9 | - User invariant failed 10 | 11 | -------------------------------------------------------------------------------- /tests/relacy/relacy/test/features.txt: -------------------------------------------------------------------------------- 1 | - Relaxed ISO C++0x Memory Model. Relaxed/acquire/release/acq_rel/seq_cst memory operations. The only non-supported feature is memory_order_consume, it's simulated with memory_order_acquire. 2 | - Exhaustive automatic error checking (including ABA detection). 3 | - Full-fledged atomics library (with spurious failures in compare_exchange()). 4 | - Memory fences. 5 | - Arbitrary number of threads. 6 | - Detailed execution history for failed tests. 7 | - No false positives. 8 | - Before/after/invariant functions for test suites. 9 | 10 | -------------------------------------------------------------------------------- /tests/relacy/relacy/test/foo.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | #include "../relacy/relacy_std.hpp" 3 | #include "../relacy/windows.h" 4 | #include "../relacy/pthread.h" 5 | 6 | 7 | -------------------------------------------------------------------------------- /tests/relacy/relacy/test/g++/build_cygwin_release.cmd: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | g++ ../main.cpp -o test_release.exe -DNDEBUG -DRL_CYGWIN_STUB -Wall -O3 3 | 4 | 5 | -------------------------------------------------------------------------------- /tests/relacy/relacy/test/g++/build_debug.cmd: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | g++ ../main.cpp -o test_debug.exe -D_DEBUG -D_XOPEN_SOURCE -Wall -Wno-deprecated -g -O0 -fno-inline 3 | -------------------------------------------------------------------------------- /tests/relacy/relacy/test/g++/build_release.cmd: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | g++ ../main.cpp -o test_release.exe -DNDEBUG -Wall -O3 -D_XOPEN_SOURCE -Wno-deprecated 3 | 4 | 5 | -------------------------------------------------------------------------------- /tests/relacy/relacy/test/jtest/stdafx.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | -------------------------------------------------------------------------------- /tests/relacy/relacy/test/jtest/stdafx.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #define RL_JAVA_MODE 4 | 5 | #include "../../relacy/pch.hpp" 6 | 7 | -------------------------------------------------------------------------------- /tests/relacy/relacy/test/memory.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "../relacy/relacy_std.hpp" 4 | 5 | 6 | struct test_memory_allocation : rl::test_suite 7 | { 8 | void thread(unsigned /*index*/) 9 | { 10 | VAR_T(int)* p1 = new VAR_T(int) (5), i1 = 5, * p11 = new VAR_T(int) (6); 11 | VAR(p1[0]) = 1; 12 | delete p1, delete p11; 13 | 14 | VAR_T(int)* p2 = new VAR_T(int) [10], i2 = 6, *p22 = new VAR_T(int) [20]; 15 | VAR(p2[0]) = 1; 16 | delete [] p2, delete [] p22; 17 | 18 | void* p3 = malloc(10), *i3 = 0, *p33 = malloc(20); 19 | free(p3), free(p33); 20 | 21 | void* p4 = malloc(sizeof(int)); 22 | int* i4 = new (p4) int (11); 23 | free(p4); 24 | 25 | //RL_ASSERT(false); 26 | (void)i1, (void)i2, (void)i3; (void)i4; 27 | } 28 | }; 29 | 30 | -------------------------------------------------------------------------------- /tests/relacy/relacy/test/msvc71/test.sln: -------------------------------------------------------------------------------- 1 | Microsoft Visual Studio Solution File, Format Version 8.00 2 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test", "test.vcproj", "{8C8174E2-2B2E-484D-9EB4-85D29347F22F}" 3 | ProjectSection(ProjectDependencies) = postProject 4 | EndProjectSection 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfiguration) = preSolution 8 | Debug = Debug 9 | Release = Release 10 | EndGlobalSection 11 | GlobalSection(ProjectConfiguration) = postSolution 12 | {8C8174E2-2B2E-484D-9EB4-85D29347F22F}.Debug.ActiveCfg = Debug|Win32 13 | {8C8174E2-2B2E-484D-9EB4-85D29347F22F}.Debug.Build.0 = Debug|Win32 14 | {8C8174E2-2B2E-484D-9EB4-85D29347F22F}.Release.ActiveCfg = Release|Win32 15 | {8C8174E2-2B2E-484D-9EB4-85D29347F22F}.Release.Build.0 = Release|Win32 16 | EndGlobalSection 17 | GlobalSection(ExtensibilityGlobals) = postSolution 18 | EndGlobalSection 19 | GlobalSection(ExtensibilityAddIns) = postSolution 20 | EndGlobalSection 21 | EndGlobal 22 | -------------------------------------------------------------------------------- /tests/relacy/relacy/test/ntest/stdafx.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | 4 | -------------------------------------------------------------------------------- /tests/relacy/relacy/test/ntest/stdafx.h: -------------------------------------------------------------------------------- 1 | #ifndef STDAFX_H 2 | #define STDAFX_H 3 | #ifdef _MSC_VER 4 | # pragma once 5 | #endif 6 | 7 | 8 | #include "../../relacy/pch.hpp" 9 | 10 | 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /tests/relacy/relacy/test/stdafx.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | -------------------------------------------------------------------------------- /tests/relacy/relacy/test/stdafx.h: -------------------------------------------------------------------------------- 1 | #ifndef STDAFX_H 2 | #define STDAFX_H 3 | #ifdef _MSC_VER 4 | # pragma once 5 | #endif 6 | 7 | #ifdef _MSC_VER 8 | # pragma warning (disable: 4127) 9 | #endif 10 | 11 | #if defined(_MSC_VER) && (_MSC_VER <= 1310) 12 | //# pragma warning (disable: 4511) 13 | //# pragma warning (disable: 4512) 14 | #endif 15 | 16 | 17 | #ifdef NDEBUG 18 | # define _SECURE_SCL 0 19 | #endif 20 | 21 | #include "../relacy/pch.hpp" 22 | 23 | 24 | #endif 25 | 26 | -------------------------------------------------------------------------------- /tests/unittests/makefile: -------------------------------------------------------------------------------- 1 | # ©2013-2014 Cameron Desrochers 2 | 3 | include ../../build/makefile.inc 4 | 5 | default: 6 | $(MAKE) -C ../../build bin/unittests$(EXT) 7 | 8 | run: default 9 | ../../build/bin/unittests$(EXT) 10 | -------------------------------------------------------------------------------- /tests/unittests/mallocmacro.cpp: -------------------------------------------------------------------------------- 1 | #define malloc(x) malloc(x) 2 | #define free(x) free(x) 3 | 4 | #include "../../blockingconcurrentqueue.h" 5 | --------------------------------------------------------------------------------