summaryrefslogtreecommitdiff
path: root/libs/config
diff options
context:
space:
mode:
authorAnas Nashif <anas.nashif@intel.com>2012-10-30 12:57:26 -0700
committerAnas Nashif <anas.nashif@intel.com>2012-10-30 12:57:26 -0700
commit1a78a62555be32868418fe52f8e330c9d0f95d5a (patch)
treed3765a80e7d3b9640ec2e930743630cd6b9fce2b /libs/config
downloadboost-1a78a62555be32868418fe52f8e330c9d0f95d5a.tar.gz
boost-1a78a62555be32868418fe52f8e330c9d0f95d5a.tar.bz2
boost-1a78a62555be32868418fe52f8e330c9d0f95d5a.zip
Imported Upstream version 1.49.0upstream/1.49.0
Diffstat (limited to 'libs/config')
-rw-r--r--libs/config/config.htm15
-rw-r--r--libs/config/configure3894
-rw-r--r--libs/config/doc/Jamfile.v261
-rw-r--r--libs/config/doc/acknowledgements.qbk32
-rw-r--r--libs/config/doc/config.qbk60
-rw-r--r--libs/config/doc/configuring_boost.qbk434
-rw-r--r--libs/config/doc/guidelines.qbk219
-rw-r--r--libs/config/doc/html/HTML.manifest5
-rw-r--r--libs/config/doc/html/boost_config/acknowledgements.html62
-rw-r--r--libs/config/doc/html/boost_config/boost_macro_reference.html4049
-rw-r--r--libs/config/doc/html/boost_config/guidelines_for_boost_authors.html377
-rw-r--r--libs/config/doc/html/boost_config/rationale.html124
-rw-r--r--libs/config/doc/html/index.html958
-rw-r--r--libs/config/doc/macro_reference.qbk1201
-rw-r--r--libs/config/doc/rationale.qbk80
-rw-r--r--libs/config/index.html15
-rw-r--r--libs/config/test/Jamfile.v262
-rw-r--r--libs/config/test/abi/abi_test.cpp27
-rw-r--r--libs/config/test/abi/abi_test.hpp54
-rw-r--r--libs/config/test/abi/main.cpp31
-rw-r--r--libs/config/test/all/Jamfile.v2526
-rw-r--r--libs/config/test/all/options_v2.jam12
-rw-r--r--libs/config/test/boost_has_2arg_use_facet.ipp32
-rw-r--r--libs/config/test/boost_has_bethreads.ipp34
-rw-r--r--libs/config/test/boost_has_clock_gettime.ipp35
-rw-r--r--libs/config/test/boost_has_dirent_h.ipp30
-rw-r--r--libs/config/test/boost_has_expm1.ipp25
-rw-r--r--libs/config/test/boost_has_ftime.ipp32
-rw-r--r--libs/config/test/boost_has_getsystemtimeasfiletime.ipp30
-rw-r--r--libs/config/test/boost_has_gettimeofday.ipp35
-rw-r--r--libs/config/test/boost_has_hash.ipp67
-rw-r--r--libs/config/test/boost_has_log1p.ipp24
-rw-r--r--libs/config/test/boost_has_long_long.ipp36
-rw-r--r--libs/config/test/boost_has_macro_use_facet.ipp35
-rw-r--r--libs/config/test/boost_has_ms_int64.ipp32
-rw-r--r--libs/config/test/boost_has_nanosleep.ipp36
-rw-r--r--libs/config/test/boost_has_nl_types_h.ipp29
-rw-r--r--libs/config/test/boost_has_nrvo.ipp57
-rw-r--r--libs/config/test/boost_has_part_alloc.ipp62
-rw-r--r--libs/config/test/boost_has_pthread_delay_np.ipp35
-rw-r--r--libs/config/test/boost_has_pthread_ma_st.ipp37
-rw-r--r--libs/config/test/boost_has_pthread_yield.ipp33
-rw-r--r--libs/config/test/boost_has_pthreads.ipp64
-rw-r--r--libs/config/test/boost_has_rvalue_refs.ipp26
-rw-r--r--libs/config/test/boost_has_sched_yield.ipp34
-rw-r--r--libs/config/test/boost_has_sgi_type_traits.ipp40
-rw-r--r--libs/config/test/boost_has_sigaction.ipp36
-rw-r--r--libs/config/test/boost_has_slist.ipp44
-rw-r--r--libs/config/test/boost_has_static_assert.ipp20
-rw-r--r--libs/config/test/boost_has_stdint_h.ipp48
-rw-r--r--libs/config/test/boost_has_stlp_use_facet.ipp31
-rw-r--r--libs/config/test/boost_has_tr1_array.ipp23
-rw-r--r--libs/config/test/boost_has_tr1_bind.ipp23
-rw-r--r--libs/config/test/boost_has_tr1_complex_over.ipp24
-rw-r--r--libs/config/test/boost_has_tr1_complex_trig.ipp30
-rw-r--r--libs/config/test/boost_has_tr1_function.ipp23
-rw-r--r--libs/config/test/boost_has_tr1_hash.ipp23
-rw-r--r--libs/config/test/boost_has_tr1_mem_fn.ipp23
-rw-r--r--libs/config/test/boost_has_tr1_random.ipp23
-rw-r--r--libs/config/test/boost_has_tr1_ref_wrap.ipp24
-rw-r--r--libs/config/test/boost_has_tr1_regex.ipp24
-rw-r--r--libs/config/test/boost_has_tr1_result_of.ipp24
-rw-r--r--libs/config/test/boost_has_tr1_shared_ptr.ipp24
-rw-r--r--libs/config/test/boost_has_tr1_tuple.ipp23
-rw-r--r--libs/config/test/boost_has_tr1_type_traits.ipp23
-rw-r--r--libs/config/test/boost_has_tr1_unordered_map.ipp24
-rw-r--r--libs/config/test/boost_has_tr1_unordered_set.ipp24
-rw-r--r--libs/config/test/boost_has_tr1_utility.ipp25
-rw-r--r--libs/config/test/boost_has_unistd_h.ipp26
-rw-r--r--libs/config/test/boost_has_variadic_tmpl.ipp21
-rw-r--r--libs/config/test/boost_has_vc6_mem_templ.ipp58
-rw-r--r--libs/config/test/boost_has_vc_iterator.ipp40
-rw-r--r--libs/config/test/boost_has_winthreads.ipp34
-rw-r--r--libs/config/test/boost_no_0x_hdr_array.ipp23
-rw-r--r--libs/config/test/boost_no_0x_hdr_chrono.ipp31
-rw-r--r--libs/config/test/boost_no_0x_hdr_codecvt.ipp25
-rw-r--r--libs/config/test/boost_no_0x_hdr_condition_variable.ipp24
-rw-r--r--libs/config/test/boost_no_0x_hdr_forward_list.ipp23
-rw-r--r--libs/config/test/boost_no_0x_hdr_future.ipp35
-rw-r--r--libs/config/test/boost_no_0x_hdr_initializer_list.ipp27
-rw-r--r--libs/config/test/boost_no_0x_hdr_mutex.ipp26
-rw-r--r--libs/config/test/boost_no_0x_hdr_random.ipp31
-rw-r--r--libs/config/test/boost_no_0x_hdr_ratio.ipp37
-rw-r--r--libs/config/test/boost_no_0x_hdr_regex.ipp24
-rw-r--r--libs/config/test/boost_no_0x_hdr_system_error.ipp26
-rw-r--r--libs/config/test/boost_no_0x_hdr_thread.ipp27
-rw-r--r--libs/config/test/boost_no_0x_hdr_tuple.ipp23
-rw-r--r--libs/config/test/boost_no_0x_hdr_type_traits.ipp106
-rw-r--r--libs/config/test/boost_no_0x_hdr_typeindex.ipp25
-rw-r--r--libs/config/test/boost_no_0x_hdr_unordered_map.ipp24
-rw-r--r--libs/config/test/boost_no_0x_hdr_unordered_set.ipp24
-rw-r--r--libs/config/test/boost_no_adl_barrier.ipp38
-rw-r--r--libs/config/test/boost_no_arg_dep_lookup.ipp37
-rw-r--r--libs/config/test/boost_no_array_type_spec.ipp30
-rw-r--r--libs/config/test/boost_no_auto_declarations.ipp25
-rw-r--r--libs/config/test/boost_no_auto_multidecl.ipp25
-rw-r--r--libs/config/test/boost_no_auto_ptr.ipp53
-rw-r--r--libs/config/test/boost_no_bcb_partial_spec.ipp53
-rw-r--r--libs/config/test/boost_no_char16_t.ipp32
-rw-r--r--libs/config/test/boost_no_char32_t.ipp31
-rw-r--r--libs/config/test/boost_no_com_value_init.ipp1016
-rw-r--r--libs/config/test/boost_no_constexpr.ipp46
-rw-r--r--libs/config/test/boost_no_ctype_functions.ipp44
-rw-r--r--libs/config/test/boost_no_cv_spec.ipp47
-rw-r--r--libs/config/test/boost_no_cv_void_spec.ipp45
-rw-r--r--libs/config/test/boost_no_cwchar.ipp33
-rw-r--r--libs/config/test/boost_no_cwctype.ipp47
-rw-r--r--libs/config/test/boost_no_decltype.ipp54
-rw-r--r--libs/config/test/boost_no_decltype_n3276.ipp137
-rw-r--r--libs/config/test/boost_no_ded_typename.ipp40
-rw-r--r--libs/config/test/boost_no_defaulted_functions.ipp28
-rw-r--r--libs/config/test/boost_no_deleted_functions.ipp28
-rw-r--r--libs/config/test/boost_no_dep_nested_class.ipp58
-rw-r--r--libs/config/test/boost_no_dep_val_param.ipp37
-rw-r--r--libs/config/test/boost_no_excep_std.ipp35
-rw-r--r--libs/config/test/boost_no_exceptions.ipp43
-rw-r--r--libs/config/test/boost_no_exp_func_tem_arg.ipp55
-rw-r--r--libs/config/test/boost_no_explicit_cvt_ops.ipp33
-rw-r--r--libs/config/test/boost_no_extern_template.ipp41
-rw-r--r--libs/config/test/boost_no_fenv_h.ipp58
-rw-r--r--libs/config/test/boost_no_func_tmp_order.ipp49
-rw-r--r--libs/config/test/boost_no_function_template_default_args.ipp38
-rw-r--r--libs/config/test/boost_no_function_type_spec.ipp44
-rw-r--r--libs/config/test/boost_no_i64_limits.ipp29
-rw-r--r--libs/config/test/boost_no_initializer_lists.ipp34
-rw-r--r--libs/config/test/boost_no_inline_memb_init.ipp55
-rw-r--r--libs/config/test/boost_no_integral_int64_t.ipp54
-rw-r--r--libs/config/test/boost_no_iosfwd.ipp23
-rw-r--r--libs/config/test/boost_no_iostream.ipp25
-rw-r--r--libs/config/test/boost_no_is_abstract.ipp53
-rw-r--r--libs/config/test/boost_no_iter_construct.ipp38
-rw-r--r--libs/config/test/boost_no_lambdas.ipp25
-rw-r--r--libs/config/test/boost_no_limits.ipp34
-rw-r--r--libs/config/test/boost_no_limits_const_exp.ipp42
-rw-r--r--libs/config/test/boost_no_limits_lowest.ipp31
-rw-r--r--libs/config/test/boost_no_ll_limits.ipp37
-rw-r--r--libs/config/test/boost_no_long_long.ipp36
-rw-r--r--libs/config/test/boost_no_mem_func_spec.ipp62
-rw-r--r--libs/config/test/boost_no_mem_tem_keyword.ipp69
-rw-r--r--libs/config/test/boost_no_mem_tem_pnts.ipp50
-rw-r--r--libs/config/test/boost_no_mem_templ_frnds.ipp72
-rw-r--r--libs/config/test/boost_no_mem_templates.ipp64
-rw-r--r--libs/config/test/boost_no_nested_friendship.ipp44
-rw-r--r--libs/config/test/boost_no_noexcept.ipp26
-rw-r--r--libs/config/test/boost_no_nullptr.ipp24
-rw-r--r--libs/config/test/boost_no_ops_in_namespace.ipp73
-rw-r--r--libs/config/test/boost_no_part_spec_def_args.ipp46
-rw-r--r--libs/config/test/boost_no_partial_spec.ipp56
-rw-r--r--libs/config/test/boost_no_priv_aggregate.ipp39
-rw-r--r--libs/config/test/boost_no_ptr_mem_const.ipp86
-rw-r--r--libs/config/test/boost_no_raw_literals.ipp27
-rw-r--r--libs/config/test/boost_no_ret_det.ipp36
-rw-r--r--libs/config/test/boost_no_rtti.ipp57
-rw-r--r--libs/config/test/boost_no_rvalue_references.ipp26
-rw-r--r--libs/config/test/boost_no_scoped_enums.ipp28
-rw-r--r--libs/config/test/boost_no_sfinae.ipp68
-rw-r--r--libs/config/test/boost_no_sfinae_expr.ipp37
-rw-r--r--libs/config/test/boost_no_sstream.ipp29
-rw-r--r--libs/config/test/boost_no_static_assert.ipp20
-rw-r--r--libs/config/test/boost_no_std_allocator.ipp70
-rw-r--r--libs/config/test/boost_no_std_distance.ipp31
-rw-r--r--libs/config/test/boost_no_std_iter_traits.ipp80
-rw-r--r--libs/config/test/boost_no_std_iterator.ipp67
-rw-r--r--libs/config/test/boost_no_std_locale.ipp36
-rw-r--r--libs/config/test/boost_no_std_messages.ipp39
-rw-r--r--libs/config/test/boost_no_std_min_max.ipp33
-rw-r--r--libs/config/test/boost_no_std_oi_assign.ipp42
-rw-r--r--libs/config/test/boost_no_std_typeinfo.ipp26
-rw-r--r--libs/config/test/boost_no_std_unordered.ipp27
-rw-r--r--libs/config/test/boost_no_std_use_facet.ipp29
-rw-r--r--libs/config/test/boost_no_std_wstreambuf.ipp108
-rw-r--r--libs/config/test/boost_no_std_wstring.ipp28
-rw-r--r--libs/config/test/boost_no_stdc_namespace.ipp43
-rw-r--r--libs/config/test/boost_no_swprintf.ipp31
-rw-r--r--libs/config/test/boost_no_template_aliases.ipp22
-rw-r--r--libs/config/test/boost_no_template_streams.ipp28
-rw-r--r--libs/config/test/boost_no_template_template.ipp50
-rw-r--r--libs/config/test/boost_no_two_phase_lookup.ipp41
-rw-r--r--libs/config/test/boost_no_typeid.ipp24
-rw-r--r--libs/config/test/boost_no_typename_with_ctor.ipp33
-rw-r--r--libs/config/test/boost_no_unicode_literals.ipp26
-rw-r--r--libs/config/test/boost_no_unified_init.ipp53
-rw-r--r--libs/config/test/boost_no_using_breaks_adl.ipp72
-rw-r--r--libs/config/test/boost_no_using_decl_overld.ipp33
-rw-r--r--libs/config/test/boost_no_using_template.ipp47
-rw-r--r--libs/config/test/boost_no_variadic_macros.ipp64
-rw-r--r--libs/config/test/boost_no_variadic_templates.ipp21
-rw-r--r--libs/config/test/boost_no_void_returns.ipp34
-rw-r--r--libs/config/test/boost_no_wchar_t.ipp45
-rw-r--r--libs/config/test/config_info.cpp1141
-rw-r--r--libs/config/test/config_test.cpp1701
-rw-r--r--libs/config/test/config_test_c.c9
-rw-r--r--libs/config/test/has_2arg_use_facet_fail.cpp34
-rw-r--r--libs/config/test/has_2arg_use_facet_pass.cpp34
-rw-r--r--libs/config/test/has_bethreads_fail.cpp34
-rw-r--r--libs/config/test/has_bethreads_pass.cpp34
-rw-r--r--libs/config/test/has_clock_gettime_fail.cpp34
-rw-r--r--libs/config/test/has_clock_gettime_pass.cpp34
-rw-r--r--libs/config/test/has_dirent_h_fail.cpp34
-rw-r--r--libs/config/test/has_dirent_h_pass.cpp34
-rw-r--r--libs/config/test/has_expm1_fail.cpp34
-rw-r--r--libs/config/test/has_expm1_pass.cpp34
-rw-r--r--libs/config/test/has_ftime_fail.cpp34
-rw-r--r--libs/config/test/has_ftime_pass.cpp34
-rw-r--r--libs/config/test/has_getsystemtimeasfiletime_fail.cpp37
-rw-r--r--libs/config/test/has_getsystemtimeasfiletime_pass.cpp37
-rw-r--r--libs/config/test/has_gettimeofday_fail.cpp34
-rw-r--r--libs/config/test/has_gettimeofday_pass.cpp34
-rw-r--r--libs/config/test/has_hash_fail.cpp34
-rw-r--r--libs/config/test/has_hash_pass.cpp34
-rw-r--r--libs/config/test/has_log1p_fail.cpp34
-rw-r--r--libs/config/test/has_log1p_pass.cpp34
-rw-r--r--libs/config/test/has_long_long_fail.cpp34
-rw-r--r--libs/config/test/has_long_long_pass.cpp34
-rw-r--r--libs/config/test/has_macro_use_facet_fail.cpp34
-rw-r--r--libs/config/test/has_macro_use_facet_pass.cpp34
-rw-r--r--libs/config/test/has_ms_int64_fail.cpp34
-rw-r--r--libs/config/test/has_ms_int64_pass.cpp34
-rw-r--r--libs/config/test/has_nanosleep_fail.cpp34
-rw-r--r--libs/config/test/has_nanosleep_pass.cpp34
-rw-r--r--libs/config/test/has_nl_types_h_fail.cpp34
-rw-r--r--libs/config/test/has_nl_types_h_pass.cpp34
-rw-r--r--libs/config/test/has_nrvo_fail.cpp34
-rw-r--r--libs/config/test/has_nrvo_pass.cpp34
-rw-r--r--libs/config/test/has_part_alloc_fail.cpp34
-rw-r--r--libs/config/test/has_part_alloc_pass.cpp34
-rw-r--r--libs/config/test/has_pthread_delay_np_fail.cpp34
-rw-r--r--libs/config/test/has_pthread_delay_np_pass.cpp34
-rw-r--r--libs/config/test/has_pthread_ma_st_fail.cpp34
-rw-r--r--libs/config/test/has_pthread_ma_st_pass.cpp34
-rw-r--r--libs/config/test/has_pthread_yield_fail.cpp34
-rw-r--r--libs/config/test/has_pthread_yield_pass.cpp34
-rw-r--r--libs/config/test/has_pthreads_fail.cpp34
-rw-r--r--libs/config/test/has_pthreads_pass.cpp34
-rw-r--r--libs/config/test/has_rvalue_refs_fail.cpp34
-rw-r--r--libs/config/test/has_rvalue_refs_pass.cpp34
-rw-r--r--libs/config/test/has_sched_yield_fail.cpp34
-rw-r--r--libs/config/test/has_sched_yield_pass.cpp34
-rw-r--r--libs/config/test/has_sgi_type_traits_fail.cpp34
-rw-r--r--libs/config/test/has_sgi_type_traits_pass.cpp34
-rw-r--r--libs/config/test/has_sigaction_fail.cpp34
-rw-r--r--libs/config/test/has_sigaction_pass.cpp34
-rw-r--r--libs/config/test/has_slist_fail.cpp34
-rw-r--r--libs/config/test/has_slist_pass.cpp34
-rw-r--r--libs/config/test/has_static_assert_fail.cpp34
-rw-r--r--libs/config/test/has_static_assert_pass.cpp34
-rw-r--r--libs/config/test/has_stdint_h_fail.cpp34
-rw-r--r--libs/config/test/has_stdint_h_pass.cpp34
-rw-r--r--libs/config/test/has_stlp_use_facet_fail.cpp34
-rw-r--r--libs/config/test/has_stlp_use_facet_pass.cpp34
-rw-r--r--libs/config/test/has_tr1_array_fail.cpp38
-rw-r--r--libs/config/test/has_tr1_array_pass.cpp38
-rw-r--r--libs/config/test/has_tr1_bind_fail.cpp38
-rw-r--r--libs/config/test/has_tr1_bind_pass.cpp38
-rw-r--r--libs/config/test/has_tr1_complex_over_fail.cpp38
-rw-r--r--libs/config/test/has_tr1_complex_over_pass.cpp38
-rw-r--r--libs/config/test/has_tr1_complex_trig_fail.cpp38
-rw-r--r--libs/config/test/has_tr1_complex_trig_pass.cpp38
-rw-r--r--libs/config/test/has_tr1_function_fail.cpp38
-rw-r--r--libs/config/test/has_tr1_function_pass.cpp38
-rw-r--r--libs/config/test/has_tr1_hash_fail.cpp38
-rw-r--r--libs/config/test/has_tr1_hash_pass.cpp38
-rw-r--r--libs/config/test/has_tr1_mem_fn_fail.cpp38
-rw-r--r--libs/config/test/has_tr1_mem_fn_pass.cpp38
-rw-r--r--libs/config/test/has_tr1_random_fail.cpp38
-rw-r--r--libs/config/test/has_tr1_random_pass.cpp38
-rw-r--r--libs/config/test/has_tr1_ref_wrap_fail.cpp38
-rw-r--r--libs/config/test/has_tr1_ref_wrap_pass.cpp38
-rw-r--r--libs/config/test/has_tr1_regex_fail.cpp38
-rw-r--r--libs/config/test/has_tr1_regex_pass.cpp38
-rw-r--r--libs/config/test/has_tr1_result_of_fail.cpp38
-rw-r--r--libs/config/test/has_tr1_result_of_pass.cpp38
-rw-r--r--libs/config/test/has_tr1_shared_ptr_fail.cpp38
-rw-r--r--libs/config/test/has_tr1_shared_ptr_pass.cpp38
-rw-r--r--libs/config/test/has_tr1_tuple_fail.cpp38
-rw-r--r--libs/config/test/has_tr1_tuple_pass.cpp38
-rw-r--r--libs/config/test/has_tr1_type_traits_fail.cpp38
-rw-r--r--libs/config/test/has_tr1_type_traits_pass.cpp38
-rw-r--r--libs/config/test/has_tr1_unordered_map_fail.cpp38
-rw-r--r--libs/config/test/has_tr1_unordered_map_pass.cpp38
-rw-r--r--libs/config/test/has_tr1_unordered_set_fail.cpp38
-rw-r--r--libs/config/test/has_tr1_unordered_set_pass.cpp38
-rw-r--r--libs/config/test/has_tr1_utility_fail.cpp38
-rw-r--r--libs/config/test/has_tr1_utility_pass.cpp38
-rw-r--r--libs/config/test/has_unistd_h_fail.cpp34
-rw-r--r--libs/config/test/has_unistd_h_pass.cpp34
-rw-r--r--libs/config/test/has_variadic_tmpl_fail.cpp34
-rw-r--r--libs/config/test/has_variadic_tmpl_pass.cpp34
-rw-r--r--libs/config/test/has_vc6_mem_templ_fail.cpp34
-rw-r--r--libs/config/test/has_vc6_mem_templ_pass.cpp34
-rw-r--r--libs/config/test/has_vc_iterator_fail.cpp34
-rw-r--r--libs/config/test/has_vc_iterator_pass.cpp34
-rw-r--r--libs/config/test/has_winthreads_fail.cpp34
-rw-r--r--libs/config/test/has_winthreads_pass.cpp34
-rw-r--r--libs/config/test/limits_test.cpp210
-rw-r--r--libs/config/test/link/Jamfile.v219
-rw-r--r--libs/config/test/link/bc_gen.sh286
-rw-r--r--libs/config/test/link/borland.mak429
-rw-r--r--libs/config/test/link/common.sh19
-rw-r--r--libs/config/test/link/link_test.cpp54
-rw-r--r--libs/config/test/link/link_test.hpp108
-rw-r--r--libs/config/test/link/main.cpp19
-rw-r--r--libs/config/test/link/test/Jamfile.v2117
-rw-r--r--libs/config/test/link/vc6-stlport.mak292
-rw-r--r--libs/config/test/link/vc6.mak260
-rw-r--r--libs/config/test/link/vc7-stlport.mak292
-rw-r--r--libs/config/test/link/vc7.mak260
-rw-r--r--libs/config/test/link/vc71-stlport.mak292
-rw-r--r--libs/config/test/link/vc71.mak260
-rw-r--r--libs/config/test/link/vc_gen.sh424
-rw-r--r--libs/config/test/math_info.cpp365
-rw-r--r--libs/config/test/no_0x_hdr_array_fail.cpp37
-rw-r--r--libs/config/test/no_0x_hdr_array_pass.cpp37
-rw-r--r--libs/config/test/no_0x_hdr_chrono_fail.cpp37
-rw-r--r--libs/config/test/no_0x_hdr_chrono_pass.cpp37
-rw-r--r--libs/config/test/no_0x_hdr_codecvt_fail.cpp37
-rw-r--r--libs/config/test/no_0x_hdr_codecvt_pass.cpp37
-rw-r--r--libs/config/test/no_0x_hdr_condition_variable_fail.cpp37
-rw-r--r--libs/config/test/no_0x_hdr_condition_variable_pass.cpp37
-rw-r--r--libs/config/test/no_0x_hdr_forward_list_fail.cpp37
-rw-r--r--libs/config/test/no_0x_hdr_forward_list_pass.cpp37
-rw-r--r--libs/config/test/no_0x_hdr_future_fail.cpp37
-rw-r--r--libs/config/test/no_0x_hdr_future_pass.cpp37
-rw-r--r--libs/config/test/no_0x_hdr_initializer_list_fail.cpp37
-rw-r--r--libs/config/test/no_0x_hdr_initializer_list_pass.cpp37
-rw-r--r--libs/config/test/no_0x_hdr_mutex_fail.cpp37
-rw-r--r--libs/config/test/no_0x_hdr_mutex_pass.cpp37
-rw-r--r--libs/config/test/no_0x_hdr_random_fail.cpp37
-rw-r--r--libs/config/test/no_0x_hdr_random_pass.cpp37
-rw-r--r--libs/config/test/no_0x_hdr_ratio_fail.cpp37
-rw-r--r--libs/config/test/no_0x_hdr_ratio_pass.cpp37
-rw-r--r--libs/config/test/no_0x_hdr_regex_fail.cpp37
-rw-r--r--libs/config/test/no_0x_hdr_regex_pass.cpp37
-rw-r--r--libs/config/test/no_0x_hdr_system_error_fail.cpp37
-rw-r--r--libs/config/test/no_0x_hdr_system_error_pass.cpp37
-rw-r--r--libs/config/test/no_0x_hdr_thread_fail.cpp37
-rw-r--r--libs/config/test/no_0x_hdr_thread_pass.cpp37
-rw-r--r--libs/config/test/no_0x_hdr_tuple_fail.cpp37
-rw-r--r--libs/config/test/no_0x_hdr_tuple_pass.cpp37
-rw-r--r--libs/config/test/no_0x_hdr_type_traits_fail.cpp37
-rw-r--r--libs/config/test/no_0x_hdr_type_traits_pass.cpp37
-rw-r--r--libs/config/test/no_0x_hdr_typeindex_fail.cpp37
-rw-r--r--libs/config/test/no_0x_hdr_typeindex_pass.cpp37
-rw-r--r--libs/config/test/no_0x_hdr_unordered_map_fail.cpp37
-rw-r--r--libs/config/test/no_0x_hdr_unordered_map_pass.cpp37
-rw-r--r--libs/config/test/no_0x_hdr_unordered_set_fail.cpp37
-rw-r--r--libs/config/test/no_0x_hdr_unordered_set_pass.cpp37
-rw-r--r--libs/config/test/no_adl_barrier_fail.cpp37
-rw-r--r--libs/config/test/no_adl_barrier_pass.cpp37
-rw-r--r--libs/config/test/no_arg_dep_lookup_fail.cpp34
-rw-r--r--libs/config/test/no_arg_dep_lookup_pass.cpp34
-rw-r--r--libs/config/test/no_array_type_spec_fail.cpp34
-rw-r--r--libs/config/test/no_array_type_spec_pass.cpp34
-rw-r--r--libs/config/test/no_auto_declarations_fail.cpp37
-rw-r--r--libs/config/test/no_auto_declarations_pass.cpp37
-rw-r--r--libs/config/test/no_auto_multidecl_fail.cpp37
-rw-r--r--libs/config/test/no_auto_multidecl_pass.cpp37
-rw-r--r--libs/config/test/no_auto_ptr_fail.cpp34
-rw-r--r--libs/config/test/no_auto_ptr_pass.cpp34
-rw-r--r--libs/config/test/no_bcb_partial_spec_fail.cpp34
-rw-r--r--libs/config/test/no_bcb_partial_spec_pass.cpp34
-rw-r--r--libs/config/test/no_char16_t_fail.cpp37
-rw-r--r--libs/config/test/no_char16_t_pass.cpp37
-rw-r--r--libs/config/test/no_char32_t_fail.cpp37
-rw-r--r--libs/config/test/no_char32_t_pass.cpp37
-rw-r--r--libs/config/test/no_com_value_init_fail.cpp37
-rw-r--r--libs/config/test/no_com_value_init_pass.cpp37
-rw-r--r--libs/config/test/no_constexpr_fail.cpp37
-rw-r--r--libs/config/test/no_constexpr_pass.cpp37
-rw-r--r--libs/config/test/no_ctype_functions_fail.cpp34
-rw-r--r--libs/config/test/no_ctype_functions_pass.cpp34
-rw-r--r--libs/config/test/no_cv_spec_fail.cpp34
-rw-r--r--libs/config/test/no_cv_spec_pass.cpp34
-rw-r--r--libs/config/test/no_cv_void_spec_fail.cpp34
-rw-r--r--libs/config/test/no_cv_void_spec_pass.cpp34
-rw-r--r--libs/config/test/no_cwchar_fail.cpp34
-rw-r--r--libs/config/test/no_cwchar_pass.cpp34
-rw-r--r--libs/config/test/no_cwctype_fail.cpp34
-rw-r--r--libs/config/test/no_cwctype_pass.cpp34
-rw-r--r--libs/config/test/no_decltype_fail.cpp37
-rw-r--r--libs/config/test/no_decltype_n3276_fail.cpp37
-rw-r--r--libs/config/test/no_decltype_n3276_pass.cpp37
-rw-r--r--libs/config/test/no_decltype_pass.cpp37
-rw-r--r--libs/config/test/no_ded_typename_fail.cpp34
-rw-r--r--libs/config/test/no_ded_typename_pass.cpp34
-rw-r--r--libs/config/test/no_defaulted_functions_fail.cpp37
-rw-r--r--libs/config/test/no_defaulted_functions_pass.cpp37
-rw-r--r--libs/config/test/no_deleted_functions_fail.cpp37
-rw-r--r--libs/config/test/no_deleted_functions_pass.cpp37
-rw-r--r--libs/config/test/no_dep_nested_class_fail.cpp34
-rw-r--r--libs/config/test/no_dep_nested_class_pass.cpp34
-rw-r--r--libs/config/test/no_dep_val_param_fail.cpp34
-rw-r--r--libs/config/test/no_dep_val_param_pass.cpp34
-rw-r--r--libs/config/test/no_excep_std_fail.cpp34
-rw-r--r--libs/config/test/no_excep_std_pass.cpp34
-rw-r--r--libs/config/test/no_exceptions_fail.cpp34
-rw-r--r--libs/config/test/no_exceptions_pass.cpp34
-rw-r--r--libs/config/test/no_exp_func_tem_arg_fail.cpp34
-rw-r--r--libs/config/test/no_exp_func_tem_arg_pass.cpp34
-rw-r--r--libs/config/test/no_explicit_cvt_ops_fail.cpp37
-rw-r--r--libs/config/test/no_explicit_cvt_ops_pass.cpp37
-rw-r--r--libs/config/test/no_extern_template_fail.cpp37
-rw-r--r--libs/config/test/no_extern_template_pass.cpp37
-rw-r--r--libs/config/test/no_fenv_h_fail.cpp33
-rw-r--r--libs/config/test/no_fenv_h_pass.cpp33
-rw-r--r--libs/config/test/no_func_tmp_order_fail.cpp34
-rw-r--r--libs/config/test/no_func_tmp_order_pass.cpp34
-rw-r--r--libs/config/test/no_function_template_default_args_fail.cpp37
-rw-r--r--libs/config/test/no_function_template_default_args_pass.cpp37
-rw-r--r--libs/config/test/no_function_type_spec_fail.cpp34
-rw-r--r--libs/config/test/no_function_type_spec_pass.cpp34
-rw-r--r--libs/config/test/no_i64_limits_fail.cpp34
-rw-r--r--libs/config/test/no_i64_limits_pass.cpp34
-rw-r--r--libs/config/test/no_initializer_lists_fail.cpp37
-rw-r--r--libs/config/test/no_initializer_lists_pass.cpp37
-rw-r--r--libs/config/test/no_inline_memb_init_fail.cpp34
-rw-r--r--libs/config/test/no_inline_memb_init_pass.cpp34
-rw-r--r--libs/config/test/no_integral_int64_t_fail.cpp34
-rw-r--r--libs/config/test/no_integral_int64_t_pass.cpp34
-rw-r--r--libs/config/test/no_iosfwd_fail.cpp34
-rw-r--r--libs/config/test/no_iosfwd_pass.cpp34
-rw-r--r--libs/config/test/no_iostream_fail.cpp34
-rw-r--r--libs/config/test/no_iostream_pass.cpp34
-rw-r--r--libs/config/test/no_is_abstract_fail.cpp34
-rw-r--r--libs/config/test/no_is_abstract_pass.cpp34
-rw-r--r--libs/config/test/no_iter_construct_fail.cpp34
-rw-r--r--libs/config/test/no_iter_construct_pass.cpp34
-rw-r--r--libs/config/test/no_lambdas_fail.cpp37
-rw-r--r--libs/config/test/no_lambdas_pass.cpp37
-rw-r--r--libs/config/test/no_limits_const_exp_fail.cpp34
-rw-r--r--libs/config/test/no_limits_const_exp_pass.cpp34
-rw-r--r--libs/config/test/no_limits_fail.cpp34
-rw-r--r--libs/config/test/no_limits_lowest_fail.cpp37
-rw-r--r--libs/config/test/no_limits_lowest_pass.cpp37
-rw-r--r--libs/config/test/no_limits_pass.cpp34
-rw-r--r--libs/config/test/no_ll_limits_fail.cpp34
-rw-r--r--libs/config/test/no_ll_limits_pass.cpp34
-rw-r--r--libs/config/test/no_long_long_fail.cpp37
-rw-r--r--libs/config/test/no_long_long_pass.cpp37
-rw-r--r--libs/config/test/no_mem_func_spec_fail.cpp34
-rw-r--r--libs/config/test/no_mem_func_spec_pass.cpp34
-rw-r--r--libs/config/test/no_mem_tem_keyword_fail.cpp34
-rw-r--r--libs/config/test/no_mem_tem_keyword_pass.cpp34
-rw-r--r--libs/config/test/no_mem_tem_pnts_fail.cpp34
-rw-r--r--libs/config/test/no_mem_tem_pnts_pass.cpp34
-rw-r--r--libs/config/test/no_mem_templ_frnds_fail.cpp34
-rw-r--r--libs/config/test/no_mem_templ_frnds_pass.cpp34
-rw-r--r--libs/config/test/no_mem_templates_fail.cpp34
-rw-r--r--libs/config/test/no_mem_templates_pass.cpp34
-rw-r--r--libs/config/test/no_nested_friendship_fail.cpp37
-rw-r--r--libs/config/test/no_nested_friendship_pass.cpp37
-rw-r--r--libs/config/test/no_noexcept_fail.cpp37
-rw-r--r--libs/config/test/no_noexcept_pass.cpp37
-rw-r--r--libs/config/test/no_nullptr_fail.cpp37
-rw-r--r--libs/config/test/no_nullptr_pass.cpp37
-rw-r--r--libs/config/test/no_ops_in_namespace_fail.cpp34
-rw-r--r--libs/config/test/no_ops_in_namespace_pass.cpp34
-rw-r--r--libs/config/test/no_part_spec_def_args_fail.cpp37
-rw-r--r--libs/config/test/no_part_spec_def_args_pass.cpp37
-rw-r--r--libs/config/test/no_partial_spec_fail.cpp34
-rw-r--r--libs/config/test/no_partial_spec_pass.cpp34
-rw-r--r--libs/config/test/no_priv_aggregate_fail.cpp34
-rw-r--r--libs/config/test/no_priv_aggregate_pass.cpp34
-rw-r--r--libs/config/test/no_ptr_mem_const_fail.cpp34
-rw-r--r--libs/config/test/no_ptr_mem_const_pass.cpp34
-rw-r--r--libs/config/test/no_raw_literals_fail.cpp37
-rw-r--r--libs/config/test/no_raw_literals_pass.cpp37
-rw-r--r--libs/config/test/no_ret_det_fail.cpp34
-rw-r--r--libs/config/test/no_ret_det_pass.cpp34
-rw-r--r--libs/config/test/no_rtti_fail.cpp37
-rw-r--r--libs/config/test/no_rtti_pass.cpp37
-rw-r--r--libs/config/test/no_rvalue_references_fail.cpp37
-rw-r--r--libs/config/test/no_rvalue_references_pass.cpp37
-rw-r--r--libs/config/test/no_scoped_enums_fail.cpp37
-rw-r--r--libs/config/test/no_scoped_enums_pass.cpp37
-rw-r--r--libs/config/test/no_sfinae_expr_fail.cpp37
-rw-r--r--libs/config/test/no_sfinae_expr_pass.cpp37
-rw-r--r--libs/config/test/no_sfinae_fail.cpp34
-rw-r--r--libs/config/test/no_sfinae_pass.cpp34
-rw-r--r--libs/config/test/no_sstream_fail.cpp34
-rw-r--r--libs/config/test/no_sstream_pass.cpp34
-rw-r--r--libs/config/test/no_static_assert_fail.cpp37
-rw-r--r--libs/config/test/no_static_assert_pass.cpp37
-rw-r--r--libs/config/test/no_std_allocator_fail.cpp34
-rw-r--r--libs/config/test/no_std_allocator_pass.cpp34
-rw-r--r--libs/config/test/no_std_distance_fail.cpp34
-rw-r--r--libs/config/test/no_std_distance_pass.cpp34
-rw-r--r--libs/config/test/no_std_iter_traits_fail.cpp34
-rw-r--r--libs/config/test/no_std_iter_traits_pass.cpp34
-rw-r--r--libs/config/test/no_std_iterator_fail.cpp34
-rw-r--r--libs/config/test/no_std_iterator_pass.cpp34
-rw-r--r--libs/config/test/no_std_locale_fail.cpp34
-rw-r--r--libs/config/test/no_std_locale_pass.cpp34
-rw-r--r--libs/config/test/no_std_messages_fail.cpp34
-rw-r--r--libs/config/test/no_std_messages_pass.cpp34
-rw-r--r--libs/config/test/no_std_min_max_fail.cpp34
-rw-r--r--libs/config/test/no_std_min_max_pass.cpp34
-rw-r--r--libs/config/test/no_std_oi_assign_fail.cpp34
-rw-r--r--libs/config/test/no_std_oi_assign_pass.cpp34
-rw-r--r--libs/config/test/no_std_typeinfo_fail.cpp34
-rw-r--r--libs/config/test/no_std_typeinfo_pass.cpp34
-rw-r--r--libs/config/test/no_std_unordered_fail.cpp37
-rw-r--r--libs/config/test/no_std_unordered_pass.cpp37
-rw-r--r--libs/config/test/no_std_use_facet_fail.cpp34
-rw-r--r--libs/config/test/no_std_use_facet_pass.cpp34
-rw-r--r--libs/config/test/no_std_wstreambuf_fail.cpp34
-rw-r--r--libs/config/test/no_std_wstreambuf_pass.cpp34
-rw-r--r--libs/config/test/no_std_wstring_fail.cpp34
-rw-r--r--libs/config/test/no_std_wstring_pass.cpp34
-rw-r--r--libs/config/test/no_stdc_namespace_fail.cpp34
-rw-r--r--libs/config/test/no_stdc_namespace_pass.cpp34
-rw-r--r--libs/config/test/no_swprintf_fail.cpp34
-rw-r--r--libs/config/test/no_swprintf_pass.cpp34
-rw-r--r--libs/config/test/no_template_aliases_fail.cpp37
-rw-r--r--libs/config/test/no_template_aliases_pass.cpp37
-rw-r--r--libs/config/test/no_template_streams_fail.cpp37
-rw-r--r--libs/config/test/no_template_streams_pass.cpp37
-rw-r--r--libs/config/test/no_template_template_fail.cpp34
-rw-r--r--libs/config/test/no_template_template_pass.cpp34
-rw-r--r--libs/config/test/no_two_phase_lookup_fail.cpp34
-rw-r--r--libs/config/test/no_two_phase_lookup_pass.cpp34
-rw-r--r--libs/config/test/no_typeid_fail.cpp34
-rw-r--r--libs/config/test/no_typeid_pass.cpp34
-rw-r--r--libs/config/test/no_typename_with_ctor_fail.cpp37
-rw-r--r--libs/config/test/no_typename_with_ctor_pass.cpp37
-rw-r--r--libs/config/test/no_unicode_literals_fail.cpp37
-rw-r--r--libs/config/test/no_unicode_literals_pass.cpp37
-rw-r--r--libs/config/test/no_unified_init_fail.cpp37
-rw-r--r--libs/config/test/no_unified_init_pass.cpp37
-rw-r--r--libs/config/test/no_using_breaks_adl_fail.cpp34
-rw-r--r--libs/config/test/no_using_breaks_adl_pass.cpp34
-rw-r--r--libs/config/test/no_using_decl_overld_fail.cpp34
-rw-r--r--libs/config/test/no_using_decl_overld_pass.cpp34
-rw-r--r--libs/config/test/no_using_template_fail.cpp34
-rw-r--r--libs/config/test/no_using_template_pass.cpp34
-rw-r--r--libs/config/test/no_variadic_macros_fail.cpp37
-rw-r--r--libs/config/test/no_variadic_macros_pass.cpp37
-rw-r--r--libs/config/test/no_variadic_templates_fail.cpp37
-rw-r--r--libs/config/test/no_variadic_templates_pass.cpp37
-rw-r--r--libs/config/test/no_void_returns_fail.cpp34
-rw-r--r--libs/config/test/no_void_returns_pass.cpp34
-rw-r--r--libs/config/test/no_wchar_t_fail.cpp34
-rw-r--r--libs/config/test/no_wchar_t_pass.cpp34
-rw-r--r--libs/config/test/test.hpp21
-rw-r--r--libs/config/test/threads/test_thread_fail1.cpp10
-rw-r--r--libs/config/test/threads/test_thread_fail2.cpp13
-rw-r--r--libs/config/tools/Jamfile.v215
-rw-r--r--libs/config/tools/configure.in463
-rw-r--r--libs/config/tools/generate.cpp290
549 files changed, 38931 insertions, 0 deletions
diff --git a/libs/config/config.htm b/libs/config/config.htm
new file mode 100644
index 0000000000..df7430bd0e
--- /dev/null
+++ b/libs/config/config.htm
@@ -0,0 +1,15 @@
+<html>
+ <head>
+ <meta http-equiv="refresh" content="0; URL=doc/html/index.html">
+ </head>
+ <body>
+ <P>
+ Automatic redirection failed, please go to <a href="doc/html/index.html">doc/html/index.html</a>.
+ </P>
+ <P>Copyright&nbsp;John Maddock 2001</P>
+ <P>Distributed under the Boost Software License, Version 1.0. (See accompanying file <A href="../../LICENSE_1_0.txt">
+ LICENSE_1_0.txt</A> or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</A>).</P>
+ </body>
+</html>
+
+
diff --git a/libs/config/configure b/libs/config/configure
new file mode 100644
index 0000000000..82d3db9669
--- /dev/null
+++ b/libs/config/configure
@@ -0,0 +1,3894 @@
+#! /bin/sh
+# Guess values for system-dependent variables and create Makefiles.
+# Generated by GNU Autoconf 2.61.
+#
+# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
+# 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+# This configure script is free software; the Free Software Foundation
+# gives unlimited permission to copy, distribute and modify it.
+## --------------------- ##
+## M4sh Initialization. ##
+## --------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+ emulate sh
+ NULLCMD=:
+ # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+ setopt NO_GLOB_SUBST
+else
+ case `(set -o) 2>/dev/null` in
+ *posix*) set -o posix ;;
+esac
+
+fi
+
+
+
+
+# PATH needs CR
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ echo "#! /bin/sh" >conf$$.sh
+ echo "exit 0" >>conf$$.sh
+ chmod +x conf$$.sh
+ if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+ PATH_SEPARATOR=';'
+ else
+ PATH_SEPARATOR=:
+ fi
+ rm -f conf$$.sh
+fi
+
+# Support unset when possible.
+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+ as_unset=unset
+else
+ as_unset=false
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order. Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+as_nl='
+'
+IFS=" "" $as_nl"
+
+# Find who we are. Look in the path if we contain no directory separator.
+case $0 in
+ *[\\/]* ) as_myself=$0 ;;
+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+done
+IFS=$as_save_IFS
+
+ ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+ as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+ echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+ { (exit 1); exit 1; }
+fi
+
+# Work around bugs in pre-3.0 UWIN ksh.
+for as_var in ENV MAIL MAILPATH
+do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+for as_var in \
+ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
+ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
+ LC_TELEPHONE LC_TIME
+do
+ if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
+ eval $as_var=C; export $as_var
+ else
+ ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
+ fi
+done
+
+# Required to use basename.
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+ test "X`expr 00001 : '.*\(...\)'`" = X001; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+ as_basename=basename
+else
+ as_basename=false
+fi
+
+
+# Name of the executable.
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+echo X/"$0" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+
+# CDPATH.
+$as_unset CDPATH
+
+
+if test "x$CONFIG_SHELL" = x; then
+ if (eval ":") 2>/dev/null; then
+ as_have_required=yes
+else
+ as_have_required=no
+fi
+
+ if test $as_have_required = yes && (eval ":
+(as_func_return () {
+ (exit \$1)
+}
+as_func_success () {
+ as_func_return 0
+}
+as_func_failure () {
+ as_func_return 1
+}
+as_func_ret_success () {
+ return 0
+}
+as_func_ret_failure () {
+ return 1
+}
+
+exitcode=0
+if as_func_success; then
+ :
+else
+ exitcode=1
+ echo as_func_success failed.
+fi
+
+if as_func_failure; then
+ exitcode=1
+ echo as_func_failure succeeded.
+fi
+
+if as_func_ret_success; then
+ :
+else
+ exitcode=1
+ echo as_func_ret_success failed.
+fi
+
+if as_func_ret_failure; then
+ exitcode=1
+ echo as_func_ret_failure succeeded.
+fi
+
+if ( set x; as_func_ret_success y && test x = \"\$1\" ); then
+ :
+else
+ exitcode=1
+ echo positional parameters were not saved.
+fi
+
+test \$exitcode = 0) || { (exit 1); exit 1; }
+
+(
+ as_lineno_1=\$LINENO
+ as_lineno_2=\$LINENO
+ test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" &&
+ test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; }
+") 2> /dev/null; then
+ :
+else
+ as_candidate_shells=
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ case $as_dir in
+ /*)
+ for as_base in sh bash ksh sh5; do
+ as_candidate_shells="$as_candidate_shells $as_dir/$as_base"
+ done;;
+ esac
+done
+IFS=$as_save_IFS
+
+
+ for as_shell in $as_candidate_shells $SHELL; do
+ # Try only shells that exist, to save several forks.
+ if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
+ { ("$as_shell") 2> /dev/null <<\_ASEOF
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+ emulate sh
+ NULLCMD=:
+ # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+ setopt NO_GLOB_SUBST
+else
+ case `(set -o) 2>/dev/null` in
+ *posix*) set -o posix ;;
+esac
+
+fi
+
+
+:
+_ASEOF
+}; then
+ CONFIG_SHELL=$as_shell
+ as_have_required=yes
+ if { "$as_shell" 2> /dev/null <<\_ASEOF
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+ emulate sh
+ NULLCMD=:
+ # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+ setopt NO_GLOB_SUBST
+else
+ case `(set -o) 2>/dev/null` in
+ *posix*) set -o posix ;;
+esac
+
+fi
+
+
+:
+(as_func_return () {
+ (exit $1)
+}
+as_func_success () {
+ as_func_return 0
+}
+as_func_failure () {
+ as_func_return 1
+}
+as_func_ret_success () {
+ return 0
+}
+as_func_ret_failure () {
+ return 1
+}
+
+exitcode=0
+if as_func_success; then
+ :
+else
+ exitcode=1
+ echo as_func_success failed.
+fi
+
+if as_func_failure; then
+ exitcode=1
+ echo as_func_failure succeeded.
+fi
+
+if as_func_ret_success; then
+ :
+else
+ exitcode=1
+ echo as_func_ret_success failed.
+fi
+
+if as_func_ret_failure; then
+ exitcode=1
+ echo as_func_ret_failure succeeded.
+fi
+
+if ( set x; as_func_ret_success y && test x = "$1" ); then
+ :
+else
+ exitcode=1
+ echo positional parameters were not saved.
+fi
+
+test $exitcode = 0) || { (exit 1); exit 1; }
+
+(
+ as_lineno_1=$LINENO
+ as_lineno_2=$LINENO
+ test "x$as_lineno_1" != "x$as_lineno_2" &&
+ test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; }
+
+_ASEOF
+}; then
+ break
+fi
+
+fi
+
+ done
+
+ if test "x$CONFIG_SHELL" != x; then
+ for as_var in BASH_ENV ENV
+ do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
+ done
+ export CONFIG_SHELL
+ exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
+fi
+
+
+ if test $as_have_required = no; then
+ echo This script requires a shell more modern than all the
+ echo shells that I found on your system. Please install a
+ echo modern shell, or manually run the script under such a
+ echo shell if you do have one.
+ { (exit 1); exit 1; }
+fi
+
+
+fi
+
+fi
+
+
+
+(eval "as_func_return () {
+ (exit \$1)
+}
+as_func_success () {
+ as_func_return 0
+}
+as_func_failure () {
+ as_func_return 1
+}
+as_func_ret_success () {
+ return 0
+}
+as_func_ret_failure () {
+ return 1
+}
+
+exitcode=0
+if as_func_success; then
+ :
+else
+ exitcode=1
+ echo as_func_success failed.
+fi
+
+if as_func_failure; then
+ exitcode=1
+ echo as_func_failure succeeded.
+fi
+
+if as_func_ret_success; then
+ :
+else
+ exitcode=1
+ echo as_func_ret_success failed.
+fi
+
+if as_func_ret_failure; then
+ exitcode=1
+ echo as_func_ret_failure succeeded.
+fi
+
+if ( set x; as_func_ret_success y && test x = \"\$1\" ); then
+ :
+else
+ exitcode=1
+ echo positional parameters were not saved.
+fi
+
+test \$exitcode = 0") || {
+ echo No shell found that supports shell functions.
+ echo Please tell autoconf@gnu.org about your system,
+ echo including any error possibly output before this
+ echo message
+}
+
+
+
+ as_lineno_1=$LINENO
+ as_lineno_2=$LINENO
+ test "x$as_lineno_1" != "x$as_lineno_2" &&
+ test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || {
+
+ # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
+ # uniformly replaced by the line number. The first 'sed' inserts a
+ # line-number line after each line using $LINENO; the second 'sed'
+ # does the real work. The second script uses 'N' to pair each
+ # line-number line with the line containing $LINENO, and appends
+ # trailing '-' during substitution so that $LINENO is not a special
+ # case at line end.
+ # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
+ # scripts with optimization help from Paolo Bonzini. Blame Lee
+ # E. McMahon (1931-1989) for sed's syntax. :-)
+ sed -n '
+ p
+ /[$]LINENO/=
+ ' <$as_myself |
+ sed '
+ s/[$]LINENO.*/&-/
+ t lineno
+ b
+ :lineno
+ N
+ :loop
+ s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
+ t loop
+ s/-\n.*//
+ ' >$as_me.lineno &&
+ chmod +x "$as_me.lineno" ||
+ { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
+ { (exit 1); exit 1; }; }
+
+ # Don't try to exec as it changes $[0], causing all sort of problems
+ # (the dirname of $[0] is not the place where we might find the
+ # original and so on. Autoconf is especially sensitive to this).
+ . "./$as_me.lineno"
+ # Exit status is that of the last command.
+ exit
+}
+
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+ as_dirname=dirname
+else
+ as_dirname=false
+fi
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in
+-n*)
+ case `echo 'x\c'` in
+ *c*) ECHO_T=' ';; # ECHO_T is single tab character.
+ *) ECHO_C='\c';;
+ esac;;
+*)
+ ECHO_N='-n';;
+esac
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+ test "X`expr 00001 : '.*\(...\)'`" = X001; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+ rm -f conf$$.dir/conf$$.file
+else
+ rm -f conf$$.dir
+ mkdir conf$$.dir
+fi
+echo >conf$$.file
+if ln -s conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s='ln -s'
+ # ... but there are two gotchas:
+ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+ # In both cases, we have to default to `cp -p'.
+ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+ as_ln_s='cp -p'
+elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+else
+ as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+if mkdir -p . 2>/dev/null; then
+ as_mkdir_p=:
+else
+ test -d ./-p && rmdir ./-p
+ as_mkdir_p=false
+fi
+
+if test -x / >/dev/null 2>&1; then
+ as_test_x='test -x'
+else
+ if ls -dL / >/dev/null 2>&1; then
+ as_ls_L_option=L
+ else
+ as_ls_L_option=
+ fi
+ as_test_x='
+ eval sh -c '\''
+ if test -d "$1"; then
+ test -d "$1/.";
+ else
+ case $1 in
+ -*)set "./$1";;
+ esac;
+ case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in
+ ???[sx]*):;;*)false;;esac;fi
+ '\'' sh
+ '
+fi
+as_executable_p=$as_test_x
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+
+exec 7<&0 </dev/null 6>&1
+
+# Name of the host.
+# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
+# so uname gets run too.
+ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
+
+#
+# Initializations.
+#
+ac_default_prefix=/usr/local
+ac_clean_files=
+ac_config_libobj_dir=.
+LIBOBJS=
+cross_compiling=no
+subdirs=
+MFLAGS=
+MAKEFLAGS=
+SHELL=${CONFIG_SHELL-/bin/sh}
+
+# Identity of this package.
+PACKAGE_NAME=
+PACKAGE_TARNAME=
+PACKAGE_VERSION=
+PACKAGE_STRING=
+PACKAGE_BUGREPORT=
+
+ac_unique_file="./tools/configure.in"
+ac_subst_vars='SHELL
+PATH_SEPARATOR
+PACKAGE_NAME
+PACKAGE_TARNAME
+PACKAGE_VERSION
+PACKAGE_STRING
+PACKAGE_BUGREPORT
+exec_prefix
+prefix
+program_transform_name
+bindir
+sbindir
+libexecdir
+datarootdir
+datadir
+sysconfdir
+sharedstatedir
+localstatedir
+includedir
+oldincludedir
+docdir
+infodir
+htmldir
+dvidir
+pdfdir
+psdir
+libdir
+localedir
+mandir
+DEFS
+ECHO_C
+ECHO_N
+ECHO_T
+LIBS
+build_alias
+host_alias
+target_alias
+CXX
+CXXFLAGS
+LDFLAGS
+CPPFLAGS
+ac_ct_CXX
+EXEEXT
+OBJEXT
+LIBOBJS
+LTLIBOBJS'
+ac_subst_files=''
+ ac_precious_vars='build_alias
+host_alias
+target_alias
+CXX
+CXXFLAGS
+LDFLAGS
+LIBS
+CPPFLAGS
+CCC'
+
+
+# Initialize some variables set by options.
+ac_init_help=
+ac_init_version=false
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+cache_file=/dev/null
+exec_prefix=NONE
+no_create=
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+verbose=
+x_includes=NONE
+x_libraries=NONE
+
+# Installation directory options.
+# These are left unexpanded so users can "make install exec_prefix=/foo"
+# and all the variables that are supposed to be based on exec_prefix
+# by default will actually change.
+# Use braces instead of parens because sh, perl, etc. also accept them.
+# (The list follows the same order as the GNU Coding Standards.)
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datarootdir='${prefix}/share'
+datadir='${datarootdir}'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+docdir='${datarootdir}/doc/${PACKAGE}'
+infodir='${datarootdir}/info'
+htmldir='${docdir}'
+dvidir='${docdir}'
+pdfdir='${docdir}'
+psdir='${docdir}'
+libdir='${exec_prefix}/lib'
+localedir='${datarootdir}/locale'
+mandir='${datarootdir}/man'
+
+ac_prev=
+ac_dashdash=
+for ac_option
+do
+ # If the previous option needs an argument, assign it.
+ if test -n "$ac_prev"; then
+ eval $ac_prev=\$ac_option
+ ac_prev=
+ continue
+ fi
+
+ case $ac_option in
+ *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
+ *) ac_optarg=yes ;;
+ esac
+
+ # Accept the important Cygnus configure options, so we can diagnose typos.
+
+ case $ac_dashdash$ac_option in
+ --)
+ ac_dashdash=yes ;;
+
+ -bindir | --bindir | --bindi | --bind | --bin | --bi)
+ ac_prev=bindir ;;
+ -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+ bindir=$ac_optarg ;;
+
+ -build | --build | --buil | --bui | --bu)
+ ac_prev=build_alias ;;
+ -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+ build_alias=$ac_optarg ;;
+
+ -cache-file | --cache-file | --cache-fil | --cache-fi \
+ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+ ac_prev=cache_file ;;
+ -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+ cache_file=$ac_optarg ;;
+
+ --config-cache | -C)
+ cache_file=config.cache ;;
+
+ -datadir | --datadir | --datadi | --datad)
+ ac_prev=datadir ;;
+ -datadir=* | --datadir=* | --datadi=* | --datad=*)
+ datadir=$ac_optarg ;;
+
+ -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
+ | --dataroo | --dataro | --datar)
+ ac_prev=datarootdir ;;
+ -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
+ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
+ datarootdir=$ac_optarg ;;
+
+ -disable-* | --disable-*)
+ ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+ { echo "$as_me: error: invalid feature name: $ac_feature" >&2
+ { (exit 1); exit 1; }; }
+ ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'`
+ eval enable_$ac_feature=no ;;
+
+ -docdir | --docdir | --docdi | --doc | --do)
+ ac_prev=docdir ;;
+ -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
+ docdir=$ac_optarg ;;
+
+ -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
+ ac_prev=dvidir ;;
+ -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
+ dvidir=$ac_optarg ;;
+
+ -enable-* | --enable-*)
+ ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+ { echo "$as_me: error: invalid feature name: $ac_feature" >&2
+ { (exit 1); exit 1; }; }
+ ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'`
+ eval enable_$ac_feature=\$ac_optarg ;;
+
+ -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+ | --exec | --exe | --ex)
+ ac_prev=exec_prefix ;;
+ -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+ | --exec=* | --exe=* | --ex=*)
+ exec_prefix=$ac_optarg ;;
+
+ -gas | --gas | --ga | --g)
+ # Obsolete; use --with-gas.
+ with_gas=yes ;;
+
+ -help | --help | --hel | --he | -h)
+ ac_init_help=long ;;
+ -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
+ ac_init_help=recursive ;;
+ -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
+ ac_init_help=short ;;
+
+ -host | --host | --hos | --ho)
+ ac_prev=host_alias ;;
+ -host=* | --host=* | --hos=* | --ho=*)
+ host_alias=$ac_optarg ;;
+
+ -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
+ ac_prev=htmldir ;;
+ -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
+ | --ht=*)
+ htmldir=$ac_optarg ;;
+
+ -includedir | --includedir | --includedi | --included | --include \
+ | --includ | --inclu | --incl | --inc)
+ ac_prev=includedir ;;
+ -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+ | --includ=* | --inclu=* | --incl=* | --inc=*)
+ includedir=$ac_optarg ;;
+
+ -infodir | --infodir | --infodi | --infod | --info | --inf)
+ ac_prev=infodir ;;
+ -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+ infodir=$ac_optarg ;;
+
+ -libdir | --libdir | --libdi | --libd)
+ ac_prev=libdir ;;
+ -libdir=* | --libdir=* | --libdi=* | --libd=*)
+ libdir=$ac_optarg ;;
+
+ -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+ | --libexe | --libex | --libe)
+ ac_prev=libexecdir ;;
+ -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+ | --libexe=* | --libex=* | --libe=*)
+ libexecdir=$ac_optarg ;;
+
+ -localedir | --localedir | --localedi | --localed | --locale)
+ ac_prev=localedir ;;
+ -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
+ localedir=$ac_optarg ;;
+
+ -localstatedir | --localstatedir | --localstatedi | --localstated \
+ | --localstate | --localstat | --localsta | --localst | --locals)
+ ac_prev=localstatedir ;;
+ -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
+ localstatedir=$ac_optarg ;;
+
+ -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+ ac_prev=mandir ;;
+ -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+ mandir=$ac_optarg ;;
+
+ -nfp | --nfp | --nf)
+ # Obsolete; use --without-fp.
+ with_fp=no ;;
+
+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+ | --no-cr | --no-c | -n)
+ no_create=yes ;;
+
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+ no_recursion=yes ;;
+
+ -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+ | --oldin | --oldi | --old | --ol | --o)
+ ac_prev=oldincludedir ;;
+ -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+ oldincludedir=$ac_optarg ;;
+
+ -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+ ac_prev=prefix ;;
+ -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+ prefix=$ac_optarg ;;
+
+ -program-prefix | --program-prefix | --program-prefi | --program-pref \
+ | --program-pre | --program-pr | --program-p)
+ ac_prev=program_prefix ;;
+ -program-prefix=* | --program-prefix=* | --program-prefi=* \
+ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+ program_prefix=$ac_optarg ;;
+
+ -program-suffix | --program-suffix | --program-suffi | --program-suff \
+ | --program-suf | --program-su | --program-s)
+ ac_prev=program_suffix ;;
+ -program-suffix=* | --program-suffix=* | --program-suffi=* \
+ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+ program_suffix=$ac_optarg ;;
+
+ -program-transform-name | --program-transform-name \
+ | --program-transform-nam | --program-transform-na \
+ | --program-transform-n | --program-transform- \
+ | --program-transform | --program-transfor \
+ | --program-transfo | --program-transf \
+ | --program-trans | --program-tran \
+ | --progr-tra | --program-tr | --program-t)
+ ac_prev=program_transform_name ;;
+ -program-transform-name=* | --program-transform-name=* \
+ | --program-transform-nam=* | --program-transform-na=* \
+ | --program-transform-n=* | --program-transform-=* \
+ | --program-transform=* | --program-transfor=* \
+ | --program-transfo=* | --program-transf=* \
+ | --program-trans=* | --program-tran=* \
+ | --progr-tra=* | --program-tr=* | --program-t=*)
+ program_transform_name=$ac_optarg ;;
+
+ -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
+ ac_prev=pdfdir ;;
+ -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
+ pdfdir=$ac_optarg ;;
+
+ -psdir | --psdir | --psdi | --psd | --ps)
+ ac_prev=psdir ;;
+ -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
+ psdir=$ac_optarg ;;
+
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ silent=yes ;;
+
+ -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+ ac_prev=sbindir ;;
+ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+ | --sbi=* | --sb=*)
+ sbindir=$ac_optarg ;;
+
+ -sharedstatedir | --sharedstatedir | --sharedstatedi \
+ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+ | --sharedst | --shareds | --shared | --share | --shar \
+ | --sha | --sh)
+ ac_prev=sharedstatedir ;;
+ -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+ | --sha=* | --sh=*)
+ sharedstatedir=$ac_optarg ;;
+
+ -site | --site | --sit)
+ ac_prev=site ;;
+ -site=* | --site=* | --sit=*)
+ site=$ac_optarg ;;
+
+ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+ ac_prev=srcdir ;;
+ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+ srcdir=$ac_optarg ;;
+
+ -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+ | --syscon | --sysco | --sysc | --sys | --sy)
+ ac_prev=sysconfdir ;;
+ -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+ sysconfdir=$ac_optarg ;;
+
+ -target | --target | --targe | --targ | --tar | --ta | --t)
+ ac_prev=target_alias ;;
+ -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+ target_alias=$ac_optarg ;;
+
+ -v | -verbose | --verbose | --verbos | --verbo | --verb)
+ verbose=yes ;;
+
+ -version | --version | --versio | --versi | --vers | -V)
+ ac_init_version=: ;;
+
+ -with-* | --with-*)
+ ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+ { echo "$as_me: error: invalid package name: $ac_package" >&2
+ { (exit 1); exit 1; }; }
+ ac_package=`echo $ac_package | sed 's/[-.]/_/g'`
+ eval with_$ac_package=\$ac_optarg ;;
+
+ -without-* | --without-*)
+ ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+ { echo "$as_me: error: invalid package name: $ac_package" >&2
+ { (exit 1); exit 1; }; }
+ ac_package=`echo $ac_package | sed 's/[-.]/_/g'`
+ eval with_$ac_package=no ;;
+
+ --x)
+ # Obsolete; use --with-x.
+ with_x=yes ;;
+
+ -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+ | --x-incl | --x-inc | --x-in | --x-i)
+ ac_prev=x_includes ;;
+ -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+ x_includes=$ac_optarg ;;
+
+ -x-libraries | --x-libraries | --x-librarie | --x-librari \
+ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+ ac_prev=x_libraries ;;
+ -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+ x_libraries=$ac_optarg ;;
+
+ -*) { echo "$as_me: error: unrecognized option: $ac_option
+Try \`$0 --help' for more information." >&2
+ { (exit 1); exit 1; }; }
+ ;;
+
+ *=*)
+ ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
+ { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
+ { (exit 1); exit 1; }; }
+ eval $ac_envvar=\$ac_optarg
+ export $ac_envvar ;;
+
+ *)
+ # FIXME: should be removed in autoconf 3.0.
+ echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+ expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+ echo "$as_me: WARNING: invalid host type: $ac_option" >&2
+ : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
+ ;;
+
+ esac
+done
+
+if test -n "$ac_prev"; then
+ ac_option=--`echo $ac_prev | sed 's/_/-/g'`
+ { echo "$as_me: error: missing argument to $ac_option" >&2
+ { (exit 1); exit 1; }; }
+fi
+
+# Be sure to have absolute directory names.
+for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
+ datadir sysconfdir sharedstatedir localstatedir includedir \
+ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
+ libdir localedir mandir
+do
+ eval ac_val=\$$ac_var
+ case $ac_val in
+ [\\/$]* | ?:[\\/]* ) continue;;
+ NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
+ esac
+ { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
+ { (exit 1); exit 1; }; }
+done
+
+# There might be people who depend on the old broken behavior: `$host'
+# used to hold the argument of --host etc.
+# FIXME: To remove some day.
+build=$build_alias
+host=$host_alias
+target=$target_alias
+
+# FIXME: To remove some day.
+if test "x$host_alias" != x; then
+ if test "x$build_alias" = x; then
+ cross_compiling=maybe
+ echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
+ If a cross compiler is detected then cross compile mode will be used." >&2
+ elif test "x$build_alias" != "x$host_alias"; then
+ cross_compiling=yes
+ fi
+fi
+
+ac_tool_prefix=
+test -n "$host_alias" && ac_tool_prefix=$host_alias-
+
+test "$silent" = yes && exec 6>/dev/null
+
+
+ac_pwd=`pwd` && test -n "$ac_pwd" &&
+ac_ls_di=`ls -di .` &&
+ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
+ { echo "$as_me: error: Working directory cannot be determined" >&2
+ { (exit 1); exit 1; }; }
+test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
+ { echo "$as_me: error: pwd does not report name of working directory" >&2
+ { (exit 1); exit 1; }; }
+
+
+# Find the source files, if location was not specified.
+if test -z "$srcdir"; then
+ ac_srcdir_defaulted=yes
+ # Try the directory containing this script, then the parent directory.
+ ac_confdir=`$as_dirname -- "$0" ||
+$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$0" : 'X\(//\)[^/]' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+echo X"$0" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ srcdir=$ac_confdir
+ if test ! -r "$srcdir/$ac_unique_file"; then
+ srcdir=..
+ fi
+else
+ ac_srcdir_defaulted=no
+fi
+if test ! -r "$srcdir/$ac_unique_file"; then
+ test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
+ { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
+ { (exit 1); exit 1; }; }
+fi
+ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
+ac_abs_confdir=`(
+ cd "$srcdir" && test -r "./$ac_unique_file" || { echo "$as_me: error: $ac_msg" >&2
+ { (exit 1); exit 1; }; }
+ pwd)`
+# When building in place, set srcdir=.
+if test "$ac_abs_confdir" = "$ac_pwd"; then
+ srcdir=.
+fi
+# Remove unnecessary trailing slashes from srcdir.
+# Double slashes in file names in object file debugging info
+# mess up M-x gdb in Emacs.
+case $srcdir in
+*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
+esac
+for ac_var in $ac_precious_vars; do
+ eval ac_env_${ac_var}_set=\${${ac_var}+set}
+ eval ac_env_${ac_var}_value=\$${ac_var}
+ eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
+ eval ac_cv_env_${ac_var}_value=\$${ac_var}
+done
+
+#
+# Report the --help message.
+#
+if test "$ac_init_help" = "long"; then
+ # Omit some internal or obsolete options to make the list less imposing.
+ # This message is too long to be a string in the A/UX 3.1 sh.
+ cat <<_ACEOF
+\`configure' configures this package to adapt to many kinds of systems.
+
+Usage: $0 [OPTION]... [VAR=VALUE]...
+
+To assign environment variables (e.g., CC, CFLAGS...), specify them as
+VAR=VALUE. See below for descriptions of some of the useful variables.
+
+Defaults for the options are specified in brackets.
+
+Configuration:
+ -h, --help display this help and exit
+ --help=short display options specific to this package
+ --help=recursive display the short help of all the included packages
+ -V, --version display version information and exit
+ -q, --quiet, --silent do not print \`checking...' messages
+ --cache-file=FILE cache test results in FILE [disabled]
+ -C, --config-cache alias for \`--cache-file=config.cache'
+ -n, --no-create do not create output files
+ --srcdir=DIR find the sources in DIR [configure dir or \`..']
+
+Installation directories:
+ --prefix=PREFIX install architecture-independent files in PREFIX
+ [$ac_default_prefix]
+ --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
+ [PREFIX]
+
+By default, \`make install' will install all the files in
+\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
+an installation prefix other than \`$ac_default_prefix' using \`--prefix',
+for instance \`--prefix=\$HOME'.
+
+For better control, use the options below.
+
+Fine tuning of the installation directories:
+ --bindir=DIR user executables [EPREFIX/bin]
+ --sbindir=DIR system admin executables [EPREFIX/sbin]
+ --libexecdir=DIR program executables [EPREFIX/libexec]
+ --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
+ --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
+ --localstatedir=DIR modifiable single-machine data [PREFIX/var]
+ --libdir=DIR object code libraries [EPREFIX/lib]
+ --includedir=DIR C header files [PREFIX/include]
+ --oldincludedir=DIR C header files for non-gcc [/usr/include]
+ --datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
+ --datadir=DIR read-only architecture-independent data [DATAROOTDIR]
+ --infodir=DIR info documentation [DATAROOTDIR/info]
+ --localedir=DIR locale-dependent data [DATAROOTDIR/locale]
+ --mandir=DIR man documentation [DATAROOTDIR/man]
+ --docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE]
+ --htmldir=DIR html documentation [DOCDIR]
+ --dvidir=DIR dvi documentation [DOCDIR]
+ --pdfdir=DIR pdf documentation [DOCDIR]
+ --psdir=DIR ps documentation [DOCDIR]
+_ACEOF
+
+ cat <<\_ACEOF
+_ACEOF
+fi
+
+if test -n "$ac_init_help"; then
+
+ cat <<\_ACEOF
+
+Optional Features:
+ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
+ --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
+--enable-test tests current settings rather than defining new ones
+--enable-extension=<ext>
+
+Optional Packages:
+ --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
+ --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
+ --with-boost=DIR path to the boost main tree
+
+Some influential environment variables:
+ CXX C++ compiler command
+ CXXFLAGS C++ compiler flags
+ LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
+ nonstandard directory <lib dir>
+ LIBS libraries to pass to the linker, e.g. -l<library>
+ CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I<include dir> if
+ you have headers in a nonstandard directory <include dir>
+
+Use these variables to override the choices made by `configure' or to help
+it to find libraries and programs with nonstandard names/locations.
+
+_ACEOF
+ac_status=$?
+fi
+
+if test "$ac_init_help" = "recursive"; then
+ # If there are subdirs, report their specific --help.
+ for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
+ test -d "$ac_dir" || continue
+ ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+ ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
+ # A ".." for each directory in $ac_dir_suffix.
+ ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'`
+ case $ac_top_builddir_sub in
+ "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+ *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+ esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+ .) # We are building in place.
+ ac_srcdir=.
+ ac_top_srcdir=$ac_top_builddir_sub
+ ac_abs_top_srcdir=$ac_pwd ;;
+ [\\/]* | ?:[\\/]* ) # Absolute name.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir
+ ac_abs_top_srcdir=$srcdir ;;
+ *) # Relative name.
+ ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_build_prefix$srcdir
+ ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+ cd "$ac_dir" || { ac_status=$?; continue; }
+ # Check for guested configure.
+ if test -f "$ac_srcdir/configure.gnu"; then
+ echo &&
+ $SHELL "$ac_srcdir/configure.gnu" --help=recursive
+ elif test -f "$ac_srcdir/configure"; then
+ echo &&
+ $SHELL "$ac_srcdir/configure" --help=recursive
+ else
+ echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+ fi || ac_status=$?
+ cd "$ac_pwd" || { ac_status=$?; break; }
+ done
+fi
+
+test -n "$ac_init_help" && exit $ac_status
+if $ac_init_version; then
+ cat <<\_ACEOF
+configure
+generated by GNU Autoconf 2.61
+
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
+2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+This configure script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it.
+_ACEOF
+ exit
+fi
+cat >config.log <<_ACEOF
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+
+It was created by $as_me, which was
+generated by GNU Autoconf 2.61. Invocation command line was
+
+ $ $0 $@
+
+_ACEOF
+exec 5>>config.log
+{
+cat <<_ASUNAME
+## --------- ##
+## Platform. ##
+## --------- ##
+
+hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
+/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
+
+/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
+/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
+/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown`
+/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
+/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
+/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
+
+_ASUNAME
+
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ echo "PATH: $as_dir"
+done
+IFS=$as_save_IFS
+
+} >&5
+
+cat >&5 <<_ACEOF
+
+
+## ----------- ##
+## Core tests. ##
+## ----------- ##
+
+_ACEOF
+
+
+# Keep a trace of the command line.
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Strip out --silent because we don't want to record it for future runs.
+# Also quote any args containing shell meta-characters.
+# Make two passes to allow for proper duplicate-argument suppression.
+ac_configure_args=
+ac_configure_args0=
+ac_configure_args1=
+ac_must_keep_next=false
+for ac_pass in 1 2
+do
+ for ac_arg
+ do
+ case $ac_arg in
+ -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ continue ;;
+ *\'*)
+ ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ case $ac_pass in
+ 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
+ 2)
+ ac_configure_args1="$ac_configure_args1 '$ac_arg'"
+ if test $ac_must_keep_next = true; then
+ ac_must_keep_next=false # Got value, back to normal.
+ else
+ case $ac_arg in
+ *=* | --config-cache | -C | -disable-* | --disable-* \
+ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
+ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
+ | -with-* | --with-* | -without-* | --without-* | --x)
+ case "$ac_configure_args0 " in
+ "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
+ esac
+ ;;
+ -* ) ac_must_keep_next=true ;;
+ esac
+ fi
+ ac_configure_args="$ac_configure_args '$ac_arg'"
+ ;;
+ esac
+ done
+done
+$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
+$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }
+
+# When interrupted or exit'd, cleanup temporary files, and complete
+# config.log. We remove comments because anyway the quotes in there
+# would cause problems or look ugly.
+# WARNING: Use '\'' to represent an apostrophe within the trap.
+# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
+trap 'exit_status=$?
+ # Save into config.log some information that might help in debugging.
+ {
+ echo
+
+ cat <<\_ASBOX
+## ---------------- ##
+## Cache variables. ##
+## ---------------- ##
+_ASBOX
+ echo
+ # The following way of writing the cache mishandles newlines in values,
+(
+ for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
+ eval ac_val=\$$ac_var
+ case $ac_val in #(
+ *${as_nl}*)
+ case $ac_var in #(
+ *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5
+echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;;
+ esac
+ case $ac_var in #(
+ _ | IFS | as_nl) ;; #(
+ *) $as_unset $ac_var ;;
+ esac ;;
+ esac
+ done
+ (set) 2>&1 |
+ case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
+ *${as_nl}ac_space=\ *)
+ sed -n \
+ "s/'\''/'\''\\\\'\'''\''/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
+ ;; #(
+ *)
+ sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+ ;;
+ esac |
+ sort
+)
+ echo
+
+ cat <<\_ASBOX
+## ----------------- ##
+## Output variables. ##
+## ----------------- ##
+_ASBOX
+ echo
+ for ac_var in $ac_subst_vars
+ do
+ eval ac_val=\$$ac_var
+ case $ac_val in
+ *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+ esac
+ echo "$ac_var='\''$ac_val'\''"
+ done | sort
+ echo
+
+ if test -n "$ac_subst_files"; then
+ cat <<\_ASBOX
+## ------------------- ##
+## File substitutions. ##
+## ------------------- ##
+_ASBOX
+ echo
+ for ac_var in $ac_subst_files
+ do
+ eval ac_val=\$$ac_var
+ case $ac_val in
+ *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+ esac
+ echo "$ac_var='\''$ac_val'\''"
+ done | sort
+ echo
+ fi
+
+ if test -s confdefs.h; then
+ cat <<\_ASBOX
+## ----------- ##
+## confdefs.h. ##
+## ----------- ##
+_ASBOX
+ echo
+ cat confdefs.h
+ echo
+ fi
+ test "$ac_signal" != 0 &&
+ echo "$as_me: caught signal $ac_signal"
+ echo "$as_me: exit $exit_status"
+ } >&5
+ rm -f core *.core core.conftest.* &&
+ rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
+ exit $exit_status
+' 0
+for ac_signal in 1 2 13 15; do
+ trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
+done
+ac_signal=0
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -f -r conftest* confdefs.h
+
+# Predefined preprocessor variables.
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_NAME "$PACKAGE_NAME"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_VERSION "$PACKAGE_VERSION"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_STRING "$PACKAGE_STRING"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
+_ACEOF
+
+
+# Let the site file select an alternate cache file if it wants to.
+# Prefer explicitly selected file to automatically selected ones.
+if test -n "$CONFIG_SITE"; then
+ set x "$CONFIG_SITE"
+elif test "x$prefix" != xNONE; then
+ set x "$prefix/share/config.site" "$prefix/etc/config.site"
+else
+ set x "$ac_default_prefix/share/config.site" \
+ "$ac_default_prefix/etc/config.site"
+fi
+shift
+for ac_site_file
+do
+ if test -r "$ac_site_file"; then
+ { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
+echo "$as_me: loading site script $ac_site_file" >&6;}
+ sed 's/^/| /' "$ac_site_file" >&5
+ . "$ac_site_file"
+ fi
+done
+
+
+# Check that the precious variables saved in the cache have kept the same
+# value.
+ac_cache_corrupted=false
+for ac_var in $ac_precious_vars; do
+ eval ac_old_set=\$ac_cv_env_${ac_var}_set
+ eval ac_new_set=\$ac_env_${ac_var}_set
+ eval ac_old_val=\$ac_cv_env_${ac_var}_value
+ eval ac_new_val=\$ac_env_${ac_var}_value
+ case $ac_old_set,$ac_new_set in
+ set,)
+ { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+ ac_cache_corrupted=: ;;
+ ,set)
+ { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
+echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+ ac_cache_corrupted=: ;;
+ ,);;
+ *)
+ if test "x$ac_old_val" != "x$ac_new_val"; then
+ { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
+echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+ { echo "$as_me:$LINENO: former value: $ac_old_val" >&5
+echo "$as_me: former value: $ac_old_val" >&2;}
+ { echo "$as_me:$LINENO: current value: $ac_new_val" >&5
+echo "$as_me: current value: $ac_new_val" >&2;}
+ ac_cache_corrupted=:
+ fi;;
+ esac
+ # Pass precious variables to config.status.
+ if test "$ac_new_set" = set; then
+ case $ac_new_val in
+ *\'*) ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+ *) ac_arg=$ac_var=$ac_new_val ;;
+ esac
+ case " $ac_configure_args " in
+ *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
+ *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
+ esac
+ fi
+done
+if $ac_cache_corrupted; then
+ { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
+echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+ { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
+echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
+ { (exit 1); exit 1; }; }
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+
+# Check whether --enable-test was given.
+if test "${enable_test+set}" = set; then
+ enableval=$enable_test;
+fi
+
+
+if test "foo"$enable_test = "foo"; then
+ enable_test="no"
+fi
+
+cat << EOF
+*** $0: boost configuration utility ***
+
+Please stand by while exploring compiler capabilities...
+Be patient - this could take some time...
+
+Note that this test script only gives an approximate
+configuration - you will need to test the results carefully
+using the boost regression test suite before using the results.
+EOF
+
+if test $enable_test = 'yes'; then
+
+cat << EOF
+
+This script reports only the difference between the detected
+configuration, and the existing boost configuration. Its
+primary aim is to quickly report how well boost is configured
+for one compiler.
+
+***
+
+EOF
+
+else
+
+cat << EOF
+
+***
+
+EOF
+fi
+
+# Check whether --enable-extension was given.
+if test "${enable_extension+set}" = set; then
+ enableval=$enable_extension;
+case "$enableval" in
+ no) { echo "$as_me:$LINENO: result: Info :.cpp used as extension for tests" >&5
+echo "${ECHO_T}Info :.cpp used as extension for tests" >&6; }
+ ac_ext=cpp
+ ;;
+ *) { echo "$as_me:$LINENO: result: Argument : .$enableval used as extension" >&5
+echo "${ECHO_T}Argument : .$enableval used as extension" >&6; }
+ ac_ext=$enableval
+esac
+
+else
+ { echo "$as_me:$LINENO: result: Info : .cpp used as extension for tests" >&5
+echo "${ECHO_T}Info : .cpp used as extension for tests" >&6; }
+ ac_ext=cpp
+
+
+fi
+
+
+
+if test -f /bin/sed ; then
+ SED=/bin/sed
+else
+ if test -f /usr/bin/sed ; then
+ SED=/usr/bin/sed
+ else
+ SED=sed
+ fi
+fi
+
+{ echo "$as_me:$LINENO: checking for boost main tree" >&5
+echo $ECHO_N "checking for boost main tree... $ECHO_C" >&6; }
+boost_base=
+
+# Check whether --with-boost was given.
+if test "${with_boost+set}" = set; then
+ withval=$with_boost;
+ #echo "--with boost is set"
+ if test "x$withval" != "x"; then
+ if test "x$withval" != no; then
+ boost_base=`echo "$withval" | $SED 's,//*,/,g' | $SED 's,/$,,'`
+ #echo boost_base=$boost_base
+ if test -f "$boost_base/boost/config.hpp"; then
+ if test -f "$boost_base/libs/config/configure"; then :; else
+ boost_base=
+ #echo "$boost_base/libs/config/configure" not found
+ fi
+ else
+ #echo "$boost_base/boost/config.hpp" not found
+ boost_base=
+ fi
+ fi
+ fi
+
+
+fi
+
+if test "x$boost_base" = "x"; then
+ #echo '$0 = ' $0
+ boost_base=`expr "x$0" : 'x\(.*\)/[/]*' \| '.'`
+ boost_base="$boost_base/../.."
+ #echo boost_base=$boost_base
+ if test -f "$boost_base/boost/config.hpp"; then
+ if test -f "$boost_base/libs/config/configure"; then :; else
+ boost_base=
+ fi
+ else
+ boost_base=
+ fi
+fi
+if test "x$boost_base" != "x"; then
+ { echo "$as_me:$LINENO: result: $boost_base" >&5
+echo "${ECHO_T}$boost_base" >&6; }
+else
+ { echo "$as_me:$LINENO: result: not found" >&5
+echo "${ECHO_T}not found" >&6; }
+ { { echo "$as_me:$LINENO: error: The boost main tree was not found.
+ Specify its location by the --with-boost option." >&5
+echo "$as_me: error: The boost main tree was not found.
+ Specify its location by the --with-boost option." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+
+
+
+# Save that, as it is being redefined several times
+use_ac_ext=$ac_ext
+
+ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+if test -z "$CXX"; then
+ if test -n "$CCC"; then
+ CXX=$CCC
+ else
+ if test -n "$ac_tool_prefix"; then
+ for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+if test "${ac_cv_prog_CXX+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$CXX"; then
+ ac_cv_prog_CXX="$CXX" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+CXX=$ac_cv_prog_CXX
+if test -n "$CXX"; then
+ { echo "$as_me:$LINENO: result: $CXX" >&5
+echo "${ECHO_T}$CXX" >&6; }
+else
+ { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+
+
+ test -n "$CXX" && break
+ done
+fi
+if test -z "$CXX"; then
+ ac_ct_CXX=$CXX
+ for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$ac_ct_CXX"; then
+ ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_CXX="$ac_prog"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
+if test -n "$ac_ct_CXX"; then
+ { echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5
+echo "${ECHO_T}$ac_ct_CXX" >&6; }
+else
+ { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+
+
+ test -n "$ac_ct_CXX" && break
+done
+
+ if test "x$ac_ct_CXX" = x; then
+ CXX="g++"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet. If you think this
+configuration is useful to you, please write to autoconf@gnu.org." >&5
+echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet. If you think this
+configuration is useful to you, please write to autoconf@gnu.org." >&2;}
+ac_tool_warned=yes ;;
+esac
+ CXX=$ac_ct_CXX
+ fi
+fi
+
+ fi
+fi
+# Provide some information about the compiler.
+echo "$as_me:$LINENO: checking for C++ compiler version" >&5
+ac_compiler=`set X $ac_compile; echo $2`
+{ (ac_try="$ac_compiler --version >&5"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_compiler --version >&5") 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+{ (ac_try="$ac_compiler -v >&5"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_compiler -v >&5") 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+{ (ac_try="$ac_compiler -V >&5"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_compiler -V >&5") 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files a.out a.exe b.out"
+# Try to create an executable without -o first, disregard a.out.
+# It will help us diagnose broken compilers, and finding out an intuition
+# of exeext.
+{ echo "$as_me:$LINENO: checking for C++ compiler default output file name" >&5
+echo $ECHO_N "checking for C++ compiler default output file name... $ECHO_C" >&6; }
+ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+#
+# List of possible output files, starting from the most likely.
+# The algorithm is not robust to junk in `.', hence go to wildcards (a.*)
+# only as a last resort. b.out is created by i960 compilers.
+ac_files='a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out'
+#
+# The IRIX 6 linker writes into existing files which may not be
+# executable, retaining their permissions. Remove them first so a
+# subsequent execution test works.
+ac_rmfiles=
+for ac_file in $ac_files
+do
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;;
+ * ) ac_rmfiles="$ac_rmfiles $ac_file";;
+ esac
+done
+rm -f $ac_rmfiles
+
+if { (ac_try="$ac_link_default"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_link_default") 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
+# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
+# in a Makefile. We should not override ac_cv_exeext if it was cached,
+# so that the user can short-circuit this test for compilers unknown to
+# Autoconf.
+for ac_file in $ac_files ''
+do
+ test -f "$ac_file" || continue
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj )
+ ;;
+ [ab].out )
+ # We found the default executable, but exeext='' is most
+ # certainly right.
+ break;;
+ *.* )
+ if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
+ then :; else
+ ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+ fi
+ # We set ac_cv_exeext here because the later test for it is not
+ # safe: cross compilers may not add the suffix if given an `-o'
+ # argument, so we may need to know it at that point already.
+ # Even if this section looks crufty: it has the advantage of
+ # actually working.
+ break;;
+ * )
+ break;;
+ esac
+done
+test "$ac_cv_exeext" = no && ac_cv_exeext=
+
+else
+ ac_file=''
+fi
+
+{ echo "$as_me:$LINENO: result: $ac_file" >&5
+echo "${ECHO_T}$ac_file" >&6; }
+if test -z "$ac_file"; then
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { echo "$as_me:$LINENO: error: C++ compiler cannot create executables
+See \`config.log' for more details." >&5
+echo "$as_me: error: C++ compiler cannot create executables
+See \`config.log' for more details." >&2;}
+ { (exit 77); exit 77; }; }
+fi
+
+ac_exeext=$ac_cv_exeext
+
+# Check that the compiler produces executables we can run. If not, either
+# the compiler is broken, or we cross compile.
+{ echo "$as_me:$LINENO: checking whether the C++ compiler works" >&5
+echo $ECHO_N "checking whether the C++ compiler works... $ECHO_C" >&6; }
+# FIXME: These cross compiler hacks should be removed for Autoconf 3.0
+# If not cross compiling, check that we can run a simple program.
+if test "$cross_compiling" != yes; then
+ if { ac_try='./$ac_file'
+ { (case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cross_compiling=no
+ else
+ if test "$cross_compiling" = maybe; then
+ cross_compiling=yes
+ else
+ { { echo "$as_me:$LINENO: error: cannot run C++ compiled programs.
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot run C++ compiled programs.
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details." >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+ fi
+fi
+{ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6; }
+
+rm -f a.out a.exe conftest$ac_cv_exeext b.out
+ac_clean_files=$ac_clean_files_save
+# Check that the compiler produces executables we can run. If not, either
+# the compiler is broken, or we cross compile.
+{ echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
+echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6; }
+{ echo "$as_me:$LINENO: result: $cross_compiling" >&5
+echo "${ECHO_T}$cross_compiling" >&6; }
+
+{ echo "$as_me:$LINENO: checking for suffix of executables" >&5
+echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6; }
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ # If both `conftest.exe' and `conftest' are `present' (well, observable)
+# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
+# work properly (i.e., refer to `conftest.exe'), while it won't with
+# `rm'.
+for ac_file in conftest.exe conftest conftest.*; do
+ test -f "$ac_file" || continue
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;;
+ *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+ break;;
+ * ) break;;
+ esac
+done
+else
+ { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+
+rm -f conftest$ac_cv_exeext
+{ echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
+echo "${ECHO_T}$ac_cv_exeext" >&6; }
+
+rm -f conftest.$ac_ext
+EXEEXT=$ac_cv_exeext
+ac_exeext=$EXEEXT
+{ echo "$as_me:$LINENO: checking for suffix of object files" >&5
+echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6; }
+if test "${ac_cv_objext+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.o conftest.obj
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_compile") 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ for ac_file in conftest.o conftest.obj conftest.*; do
+ test -f "$ac_file" || continue;
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf ) ;;
+ *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
+ break;;
+ esac
+done
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute suffix of object files: cannot compile
+See \`config.log' for more details." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+
+rm -f conftest.$ac_cv_objext conftest.$ac_ext
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
+echo "${ECHO_T}$ac_cv_objext" >&6; }
+OBJEXT=$ac_cv_objext
+ac_objext=$OBJEXT
+{ echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5
+echo $ECHO_N "checking whether we are using the GNU C++ compiler... $ECHO_C" >&6; }
+if test "${ac_cv_cxx_compiler_gnu+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+#ifndef __GNUC__
+ choke me
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_compile") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_cxx_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then
+ ac_compiler_gnu=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_compiler_gnu=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
+
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5
+echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6; }
+GXX=`test $ac_compiler_gnu = yes && echo yes`
+ac_test_CXXFLAGS=${CXXFLAGS+set}
+ac_save_CXXFLAGS=$CXXFLAGS
+{ echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5
+echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6; }
+if test "${ac_cv_prog_cxx_g+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_save_cxx_werror_flag=$ac_cxx_werror_flag
+ ac_cxx_werror_flag=yes
+ ac_cv_prog_cxx_g=no
+ CXXFLAGS="-g"
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_compile") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_cxx_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then
+ ac_cv_prog_cxx_g=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ CXXFLAGS=""
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_compile") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_cxx_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then
+ :
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_cxx_werror_flag=$ac_save_cxx_werror_flag
+ CXXFLAGS="-g"
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_compile") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_cxx_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then
+ ac_cv_prog_cxx_g=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_cxx_werror_flag=$ac_save_cxx_werror_flag
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5
+echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6; }
+if test "$ac_test_CXXFLAGS" = set; then
+ CXXFLAGS=$ac_save_CXXFLAGS
+elif test $ac_cv_prog_cxx_g = yes; then
+ if test "$GXX" = yes; then
+ CXXFLAGS="-g -O2"
+ else
+ CXXFLAGS="-g"
+ fi
+else
+ if test "$GXX" = yes; then
+ CXXFLAGS="-O2"
+ else
+ CXXFLAGS=
+ fi
+fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+ac_ext=$use_ac_ext
+
+ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+
+OLD_CXXFLAGS="$CXXFLAGS"
+
+
+if test $enable_test = 'yes'; then
+ CXXFLAGS="-I$boost_base -I$boost_base/libs/config/test $CXXFLAGS"
+else
+ CXXFLAGS="-I$boost_base -I$boost_base/libs/config/test $CXXFLAGS -DBOOST_NO_CONFIG"
+fi
+
+# add the -AA conformance option to CXXFLAGS for HP aCC only
+if test $CXX = 'aCC'; then
+ CXXFLAGS="-AA $CXXFLAGS"
+fi
+
+
+
+
+{ echo "$as_me:$LINENO: checking for pthread_exit in -lpthread" >&5
+echo $ECHO_N "checking for pthread_exit in -lpthread... $ECHO_C" >&6; }
+if test "${ac_cv_lib_pthread_pthread_exit+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lpthread $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char pthread_exit ();
+int
+main ()
+{
+return pthread_exit ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_link") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_cxx_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext &&
+ $as_test_x conftest$ac_exeext; then
+ ac_cv_lib_pthread_pthread_exit=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_cv_lib_pthread_pthread_exit=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_lib_pthread_pthread_exit" >&5
+echo "${ECHO_T}$ac_cv_lib_pthread_pthread_exit" >&6; }
+if test $ac_cv_lib_pthread_pthread_exit = yes; then
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBPTHREAD 1
+_ACEOF
+
+ LIBS="-lpthread $LIBS"
+
+fi
+
+
+{ echo "$as_me:$LINENO: checking for cos in -lm" >&5
+echo $ECHO_N "checking for cos in -lm... $ECHO_C" >&6; }
+if test "${ac_cv_lib_m_cos+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lm $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char cos ();
+int
+main ()
+{
+return cos ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_link") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_cxx_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext &&
+ $as_test_x conftest$ac_exeext; then
+ ac_cv_lib_m_cos=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_cv_lib_m_cos=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_lib_m_cos" >&5
+echo "${ECHO_T}$ac_cv_lib_m_cos" >&6; }
+if test $ac_cv_lib_m_cos = yes; then
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBM 1
+_ACEOF
+
+ LIBS="-lm $LIBS"
+
+fi
+
+
+{ echo "$as_me:$LINENO: checking for clock in -lrt" >&5
+echo $ECHO_N "checking for clock in -lrt... $ECHO_C" >&6; }
+if test "${ac_cv_lib_rt_clock+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lrt $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char clock ();
+int
+main ()
+{
+return clock ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_link") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_cxx_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext &&
+ $as_test_x conftest$ac_exeext; then
+ ac_cv_lib_rt_clock=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_cv_lib_rt_clock=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_lib_rt_clock" >&5
+echo "${ECHO_T}$ac_cv_lib_rt_clock" >&6; }
+if test $ac_cv_lib_rt_clock = yes; then
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBRT 1
+_ACEOF
+
+ LIBS="-lrt $LIBS"
+
+fi
+
+
+#
+# enumerate test files and test each one:
+#
+for file in $boost_base/libs/config/test/boost_no*.ipp; do
+
+ basename=`echo $file | $SED 's/.*boost_\(.*\)\.ipp/\1/'`
+ macroname=`cat $file | grep '^//[ ]*MACRO:' | $SED 's/.*MACRO:[ ]*\([_A-Z0-9]*\).*/\1/'`
+ title=`cat $file | grep '^//[ ]*TITLE:' | $SED 's/.*TITLE:[ ]*\([^ ].*\)/\1/'`
+ namespace=`echo $macroname | tr [A-Z] [a-z]`
+
+#echo file = $file
+#echo basename = $basename
+#echo macroname = $macroname
+#echo title = $title
+#echo namespace = $namespace
+
+ ac_ext=$use_ac_ext
+ if test $enable_test = 'yes'; then
+ { echo "$as_me:$LINENO: checking $title (pass expected) " >&5
+echo $ECHO_N "checking $title (pass expected) ... $ECHO_C" >&6; }
+ else
+ { echo "$as_me:$LINENO: checking $title " >&5
+echo $ECHO_N "checking $title ... $ECHO_C" >&6; }
+ fi
+ if test "$cross_compiling" = yes; then
+ { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&2;}
+ { (exit 1); exit 1; }; }
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#if !defined($macroname) || defined(BOOST_NO_CONFIG)
+#include "boost_$basename.ipp"
+#else
+namespace ${namespace} = empty_boost;
+#endif
+
+int main(){ return ${namespace}::test(); }
+
+_ACEOF
+rm -f conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+ { (case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ { echo "$as_me:$LINENO: result: OK" >&5
+echo "${ECHO_T}OK" >&6; }
+
+else
+ echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+{ echo "$as_me:$LINENO: result: Failed" >&5
+echo "${ECHO_T}Failed" >&6; }
+ required_defs="$macroname $required_defs"
+
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+
+
+
+ if test $enable_test = 'yes'; then
+
+ ac_ext=$use_ac_ext
+ { echo "$as_me:$LINENO: checking $title (fail expected) " >&5
+echo $ECHO_N "checking $title (fail expected) ... $ECHO_C" >&6; }
+ if test "$cross_compiling" = yes; then
+ { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&2;}
+ { (exit 1); exit 1; }; }
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef $macroname
+#include "boost_$basename.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main() { return ${namespace}::test(); }
+
+_ACEOF
+rm -f conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+ { (case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ { echo "$as_me:$LINENO: result: failed" >&5
+echo "${ECHO_T}failed" >&6; }
+ required_undefs="$macroname $required_undefs"
+
+else
+ echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+{ echo "$as_me:$LINENO: result: OK" >&5
+echo "${ECHO_T}OK" >&6; }
+
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+
+
+
+ fi
+
+done
+
+#
+# enumerate optional test files and test each one:
+#
+for file in $boost_base/libs/config/test/boost_has*.ipp; do
+
+ basename=`echo $file | $SED 's/.*boost_\(.*\)\.ipp/\1/'`
+ macroname=`cat $file | grep '^//[ ]*MACRO:' | $SED 's/.*MACRO:[ ]*\([_A-Z0-9]*\).*/\1/'`
+ title=`cat $file | grep '^//[ ]*TITLE:' | $SED 's/.*TITLE:[ ]*\([^ ].*\)/\1/'`
+ namespace=`echo $macroname | tr [A-Z] [a-z]`
+
+# echo $file
+# echo $basename
+# echo $macroname
+# echo $title
+
+ ac_ext=$use_ac_ext
+ if test $enable_test = 'yes'; then
+ { echo "$as_me:$LINENO: checking $title (pass expected) " >&5
+echo $ECHO_N "checking $title (pass expected) ... $ECHO_C" >&6; }
+ if test "$cross_compiling" = yes; then
+ { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&2;}
+ { (exit 1); exit 1; }; }
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef $macroname
+#include "boost_$basename.ipp"
+#else
+namespace ${namespace} = empty_boost;
+#endif
+
+int main(){ return ${namespace}::test(); }
+
+_ACEOF
+rm -f conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+ { (case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ { echo "$as_me:$LINENO: result: OK" >&5
+echo "${ECHO_T}OK" >&6; }
+
+else
+ echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+{ echo "$as_me:$LINENO: result: Failed" >&5
+echo "${ECHO_T}Failed" >&6; }
+ required_undefs="$macroname $required_undefs"
+
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+
+
+
+ { echo "$as_me:$LINENO: checking $title (fail expected) " >&5
+echo $ECHO_N "checking $title (fail expected) ... $ECHO_C" >&6; }
+ if test "$cross_compiling" = yes; then
+ { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&2;}
+ { (exit 1); exit 1; }; }
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef $macroname
+#include "boost_$basename.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main(){ return ${namespace}::test(); }
+
+_ACEOF
+rm -f conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+ { (case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+
+ { echo "$as_me:$LINENO: result: failed" >&5
+echo "${ECHO_T}failed" >&6; }
+ required_defs="$macroname $required_defs"
+
+
+else
+ echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+
+ { echo "$as_me:$LINENO: result: OK" >&5
+echo "${ECHO_T}OK" >&6; }
+
+
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+
+
+
+ else
+
+ ac_ext=$use_ac_ext
+ { echo "$as_me:$LINENO: checking $title" >&5
+echo $ECHO_N "checking $title... $ECHO_C" >&6; }
+ if test "$cross_compiling" = yes; then
+ { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&2;}
+ { (exit 1); exit 1; }; }
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#include "boost_$basename.ipp"
+
+int main(){ return ${namespace}::test(); }
+
+_ACEOF
+rm -f conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+ { (case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+
+ { echo "$as_me:$LINENO: result: Yes" >&5
+echo "${ECHO_T}Yes" >&6; }
+ required_defs="$macroname $required_defs"
+
+
+else
+ echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+
+ { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+
+
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+
+
+
+ fi
+
+done
+
+
+#echo $required_defs
+#echo $required_undefs
+
+if test $enable_test = 'yes'; then
+
+if test "$required_defs" = ""; then
+echo no boost macros need to be defined
+echo no boost macros need to be defined >&5
+else
+echo the following macros need to be defined
+echo $required_defs
+echo the following macros need to be defined >&5
+echo $required_defs >&5
+fi
+if test "$required_undefs" = ""; then
+echo no boost macros need to be undefined
+echo no boost macros need to be undefined >&5
+else
+echo "the following macros need to be undef'ed"
+echo $required_undefs
+echo "the following macros need to be undef'ed" >&5
+echo $required_undefs >&5
+fi
+
+else
+
+date_string=`date`
+
+echo boost_base=$boost_base
+
+cat > user.hpp << EOF
+// (C) Copyright Boost.org 2001.
+// Do not check in modified versions of this file,
+// This file may be customised by the end user, but not by boost.
+
+//
+// Use this file to define a site and compiler specific
+// configuration policy, this version was auto-generated by
+// configure on ${date_string}
+// With the following options:
+// CXX = ${CXX}
+// CXXFLAGS = ${CXXFLAGS}
+// LDFLAGS = ${LDFLAGS}
+// LIBS = ${LIBS}
+//
+
+// define this to disable all config options,
+// excluding the user config. Use if your
+// setup is fully ISO complient, and has no
+// useful extentions, or for autoconf generated
+// setups:
+#ifndef BOOST_NO_CONFIG
+# define BOOST_NO_CONFIG
+#endif
+
+
+// define if you want to disable threading support, even
+// when available:
+// #define BOOST_DISABLE_THREADS
+
+// define if you want the regex library to use the C locale
+// even on Win32:
+// #define BOOST_REGEX_USE_C_LOCALE
+
+// define this is you want the regex library to use the C++
+// locale:
+// #define BOOST_REGEX_USE_CPP_LOCALE
+
+
+//
+// options added by configure:
+//
+EOF
+
+for name in $required_defs; do
+echo '#define '"$name" >> user.hpp
+done
+
+cat_conts=`cat user.hpp`
+
+#
+# post configuration step:
+#
+{ echo "$as_me:$LINENO: checking original configuration " >&5
+echo $ECHO_N "checking original configuration ... $ECHO_C" >&6; }
+rm -f conftest$ac_exeext
+$CXX -I$boost_base $OLD_CXXFLAGS -DBOOST_NO_USER_CONFIG -o conftest$ac_exeext $LDFLAGS $boost_base/libs/config/test/config_info.cpp $LIBS >&5 2>&1
+./conftest >&5 2>&1
+{ echo "$as_me:$LINENO: result: done" >&5
+echo "${ECHO_T}done" >&6; }
+{ echo "$as_me:$LINENO: checking new configuration " >&5
+echo $ECHO_N "checking new configuration ... $ECHO_C" >&6; }
+rm -f conftest$ac_exeext
+$CXX -I$boost_base -I$boost_base/libs/config $OLD_CXXFLAGS -DBOOST_USER_CONFIG='"user.hpp"' -o conftest$ac_exeext $LDFLAGS $boost_base/libs/config/test/config_info.cpp $LIBS >&5 2>&1
+./conftest >&5 2>&1
+{ echo "$as_me:$LINENO: result: done" >&5
+echo "${ECHO_T}done" >&6; }
+
+ac_config_commands="$ac_config_commands default"
+
+
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+# Transform confdefs.h into DEFS.
+# Protect against shell expansion while executing Makefile rules.
+# Protect against Makefile macro expansion.
+#
+# If the first sed substitution is executed (which looks for macros that
+# take arguments), then branch to the quote section. Otherwise,
+# look for a macro that doesn't take arguments.
+ac_script='
+t clear
+:clear
+s/^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\)/-D\1=\2/g
+t quote
+s/^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)/-D\1=\2/g
+t quote
+b any
+:quote
+s/[ `~#$^&*(){}\\|;'\''"<>?]/\\&/g
+s/\[/\\&/g
+s/\]/\\&/g
+s/\$/$$/g
+H
+:any
+${
+ g
+ s/^\n//
+ s/\n/ /g
+ p
+}
+'
+DEFS=`sed -n "$ac_script" confdefs.h`
+
+
+ac_libobjs=
+ac_ltlibobjs=
+for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
+ # 1. Remove the extension, and $U if already installed.
+ ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
+ ac_i=`echo "$ac_i" | sed "$ac_script"`
+ # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR
+ # will be set to the directory where LIBOBJS objects are built.
+ ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext"
+ ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo'
+done
+LIBOBJS=$ac_libobjs
+
+LTLIBOBJS=$ac_ltlibobjs
+
+
+
+: ${CONFIG_STATUS=./config.status}
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
+echo "$as_me: creating $CONFIG_STATUS" >&6;}
+cat >$CONFIG_STATUS <<_ACEOF
+#! $SHELL
+# Generated by $as_me.
+# Run this file to recreate the current configuration.
+# Compiler output produced by configure, useful for debugging
+# configure, is in config.log if it exists.
+
+debug=false
+ac_cs_recheck=false
+ac_cs_silent=false
+SHELL=\${CONFIG_SHELL-$SHELL}
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+## --------------------- ##
+## M4sh Initialization. ##
+## --------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+ emulate sh
+ NULLCMD=:
+ # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+ setopt NO_GLOB_SUBST
+else
+ case `(set -o) 2>/dev/null` in
+ *posix*) set -o posix ;;
+esac
+
+fi
+
+
+
+
+# PATH needs CR
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ echo "#! /bin/sh" >conf$$.sh
+ echo "exit 0" >>conf$$.sh
+ chmod +x conf$$.sh
+ if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+ PATH_SEPARATOR=';'
+ else
+ PATH_SEPARATOR=:
+ fi
+ rm -f conf$$.sh
+fi
+
+# Support unset when possible.
+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+ as_unset=unset
+else
+ as_unset=false
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order. Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+as_nl='
+'
+IFS=" "" $as_nl"
+
+# Find who we are. Look in the path if we contain no directory separator.
+case $0 in
+ *[\\/]* ) as_myself=$0 ;;
+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+done
+IFS=$as_save_IFS
+
+ ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+ as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+ echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+ { (exit 1); exit 1; }
+fi
+
+# Work around bugs in pre-3.0 UWIN ksh.
+for as_var in ENV MAIL MAILPATH
+do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+for as_var in \
+ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
+ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
+ LC_TELEPHONE LC_TIME
+do
+ if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
+ eval $as_var=C; export $as_var
+ else
+ ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
+ fi
+done
+
+# Required to use basename.
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+ test "X`expr 00001 : '.*\(...\)'`" = X001; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+ as_basename=basename
+else
+ as_basename=false
+fi
+
+
+# Name of the executable.
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+echo X/"$0" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+
+# CDPATH.
+$as_unset CDPATH
+
+
+
+ as_lineno_1=$LINENO
+ as_lineno_2=$LINENO
+ test "x$as_lineno_1" != "x$as_lineno_2" &&
+ test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || {
+
+ # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
+ # uniformly replaced by the line number. The first 'sed' inserts a
+ # line-number line after each line using $LINENO; the second 'sed'
+ # does the real work. The second script uses 'N' to pair each
+ # line-number line with the line containing $LINENO, and appends
+ # trailing '-' during substitution so that $LINENO is not a special
+ # case at line end.
+ # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
+ # scripts with optimization help from Paolo Bonzini. Blame Lee
+ # E. McMahon (1931-1989) for sed's syntax. :-)
+ sed -n '
+ p
+ /[$]LINENO/=
+ ' <$as_myself |
+ sed '
+ s/[$]LINENO.*/&-/
+ t lineno
+ b
+ :lineno
+ N
+ :loop
+ s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
+ t loop
+ s/-\n.*//
+ ' >$as_me.lineno &&
+ chmod +x "$as_me.lineno" ||
+ { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
+ { (exit 1); exit 1; }; }
+
+ # Don't try to exec as it changes $[0], causing all sort of problems
+ # (the dirname of $[0] is not the place where we might find the
+ # original and so on. Autoconf is especially sensitive to this).
+ . "./$as_me.lineno"
+ # Exit status is that of the last command.
+ exit
+}
+
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+ as_dirname=dirname
+else
+ as_dirname=false
+fi
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in
+-n*)
+ case `echo 'x\c'` in
+ *c*) ECHO_T=' ';; # ECHO_T is single tab character.
+ *) ECHO_C='\c';;
+ esac;;
+*)
+ ECHO_N='-n';;
+esac
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+ test "X`expr 00001 : '.*\(...\)'`" = X001; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+ rm -f conf$$.dir/conf$$.file
+else
+ rm -f conf$$.dir
+ mkdir conf$$.dir
+fi
+echo >conf$$.file
+if ln -s conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s='ln -s'
+ # ... but there are two gotchas:
+ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+ # In both cases, we have to default to `cp -p'.
+ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+ as_ln_s='cp -p'
+elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+else
+ as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+if mkdir -p . 2>/dev/null; then
+ as_mkdir_p=:
+else
+ test -d ./-p && rmdir ./-p
+ as_mkdir_p=false
+fi
+
+if test -x / >/dev/null 2>&1; then
+ as_test_x='test -x'
+else
+ if ls -dL / >/dev/null 2>&1; then
+ as_ls_L_option=L
+ else
+ as_ls_L_option=
+ fi
+ as_test_x='
+ eval sh -c '\''
+ if test -d "$1"; then
+ test -d "$1/.";
+ else
+ case $1 in
+ -*)set "./$1";;
+ esac;
+ case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in
+ ???[sx]*):;;*)false;;esac;fi
+ '\'' sh
+ '
+fi
+as_executable_p=$as_test_x
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+exec 6>&1
+
+# Save the log message, to keep $[0] and so on meaningful, and to
+# report actual input values of CONFIG_FILES etc. instead of their
+# values after options handling.
+ac_log="
+This file was extended by $as_me, which was
+generated by GNU Autoconf 2.61. Invocation command line was
+
+ CONFIG_FILES = $CONFIG_FILES
+ CONFIG_HEADERS = $CONFIG_HEADERS
+ CONFIG_LINKS = $CONFIG_LINKS
+ CONFIG_COMMANDS = $CONFIG_COMMANDS
+ $ $0 $@
+
+on `(hostname || uname -n) 2>/dev/null | sed 1q`
+"
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<_ACEOF
+# Files that config.status was made for.
+config_commands="$ac_config_commands"
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+ac_cs_usage="\
+\`$as_me' instantiates files from templates according to the
+current configuration.
+
+Usage: $0 [OPTIONS] [FILE]...
+
+ -h, --help print this help, then exit
+ -V, --version print version number and configuration settings, then exit
+ -q, --quiet do not print progress messages
+ -d, --debug don't remove temporary files
+ --recheck update $as_me by reconfiguring in the same conditions
+
+Configuration commands:
+$config_commands
+
+Report bugs to <bug-autoconf@gnu.org>."
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF
+ac_cs_version="\\
+config.status
+configured by $0, generated by GNU Autoconf 2.61,
+ with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
+
+Copyright (C) 2006 Free Software Foundation, Inc.
+This config.status script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it."
+
+ac_pwd='$ac_pwd'
+srcdir='$srcdir'
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+# If no file are specified by the user, then we need to provide default
+# value. By we need to know if files were specified by the user.
+ac_need_defaults=:
+while test $# != 0
+do
+ case $1 in
+ --*=*)
+ ac_option=`expr "X$1" : 'X\([^=]*\)='`
+ ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
+ ac_shift=:
+ ;;
+ *)
+ ac_option=$1
+ ac_optarg=$2
+ ac_shift=shift
+ ;;
+ esac
+
+ case $ac_option in
+ # Handling of the options.
+ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+ ac_cs_recheck=: ;;
+ --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
+ echo "$ac_cs_version"; exit ;;
+ --debug | --debu | --deb | --de | --d | -d )
+ debug=: ;;
+ --he | --h | --help | --hel | -h )
+ echo "$ac_cs_usage"; exit ;;
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil | --si | --s)
+ ac_cs_silent=: ;;
+
+ # This is an error.
+ -*) { echo "$as_me: error: unrecognized option: $1
+Try \`$0 --help' for more information." >&2
+ { (exit 1); exit 1; }; } ;;
+
+ *) ac_config_targets="$ac_config_targets $1"
+ ac_need_defaults=false ;;
+
+ esac
+ shift
+done
+
+ac_configure_extra_args=
+
+if $ac_cs_silent; then
+ exec 6>/dev/null
+ ac_configure_extra_args="$ac_configure_extra_args --silent"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF
+if \$ac_cs_recheck; then
+ echo "running CONFIG_SHELL=$SHELL $SHELL $0 "$ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
+ CONFIG_SHELL=$SHELL
+ export CONFIG_SHELL
+ exec $SHELL "$0"$ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
+exec 5>>config.log
+{
+ echo
+ sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+## Running $as_me. ##
+_ASBOX
+ echo "$ac_log"
+} >&5
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF
+#
+# INIT-COMMANDS
+#
+
+cat_conts="$cat_conts"
+
+
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+
+# Handling of arguments.
+for ac_config_target in $ac_config_targets
+do
+ case $ac_config_target in
+ "default") CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;;
+
+ *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
+echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
+ { (exit 1); exit 1; }; };;
+ esac
+done
+
+
+# If the user did not use the arguments to specify the items to instantiate,
+# then the envvar interface is used. Set only those that are not.
+# We use the long form for the default assignment because of an extremely
+# bizarre bug on SunOS 4.1.3.
+if $ac_need_defaults; then
+ test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
+fi
+
+# Have a temporary directory for convenience. Make it in the build tree
+# simply because there is no reason against having it here, and in addition,
+# creating and moving files from /tmp can sometimes cause problems.
+# Hook for its removal unless debugging.
+# Note that there is a small window in which the directory will not be cleaned:
+# after its creation but before its name has been assigned to `$tmp'.
+$debug ||
+{
+ tmp=
+ trap 'exit_status=$?
+ { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status
+' 0
+ trap '{ (exit 1); exit 1; }' 1 2 13 15
+}
+# Create a (secure) tmp directory for tmp files.
+
+{
+ tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
+ test -n "$tmp" && test -d "$tmp"
+} ||
+{
+ tmp=./conf$$-$RANDOM
+ (umask 077 && mkdir "$tmp")
+} ||
+{
+ echo "$me: cannot create a temporary directory in ." >&2
+ { (exit 1); exit 1; }
+}
+
+
+for ac_tag in :C $CONFIG_COMMANDS
+do
+ case $ac_tag in
+ :[FHLC]) ac_mode=$ac_tag; continue;;
+ esac
+ case $ac_mode$ac_tag in
+ :[FHL]*:*);;
+ :L* | :C*:*) { { echo "$as_me:$LINENO: error: Invalid tag $ac_tag." >&5
+echo "$as_me: error: Invalid tag $ac_tag." >&2;}
+ { (exit 1); exit 1; }; };;
+ :[FH]-) ac_tag=-:-;;
+ :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
+ esac
+ ac_save_IFS=$IFS
+ IFS=:
+ set x $ac_tag
+ IFS=$ac_save_IFS
+ shift
+ ac_file=$1
+ shift
+
+ case $ac_mode in
+ :L) ac_source=$1;;
+ :[FH])
+ ac_file_inputs=
+ for ac_f
+ do
+ case $ac_f in
+ -) ac_f="$tmp/stdin";;
+ *) # Look for the file first in the build tree, then in the source tree
+ # (if the path is not absolute). The absolute path cannot be DOS-style,
+ # because $ac_f cannot contain `:'.
+ test -f "$ac_f" ||
+ case $ac_f in
+ [\\/$]*) false;;
+ *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
+ esac ||
+ { { echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5
+echo "$as_me: error: cannot find input file: $ac_f" >&2;}
+ { (exit 1); exit 1; }; };;
+ esac
+ ac_file_inputs="$ac_file_inputs $ac_f"
+ done
+
+ # Let's still pretend it is `configure' which instantiates (i.e., don't
+ # use $as_me), people would be surprised to read:
+ # /* config.h. Generated by config.status. */
+ configure_input="Generated from "`IFS=:
+ echo $* | sed 's|^[^:]*/||;s|:[^:]*/|, |g'`" by configure."
+ if test x"$ac_file" != x-; then
+ configure_input="$ac_file. $configure_input"
+ { echo "$as_me:$LINENO: creating $ac_file" >&5
+echo "$as_me: creating $ac_file" >&6;}
+ fi
+
+ case $ac_tag in
+ *:-:* | *:-) cat >"$tmp/stdin";;
+ esac
+ ;;
+ esac
+
+ ac_dir=`$as_dirname -- "$ac_file" ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$ac_file" : 'X\(//\)[^/]' \| \
+ X"$ac_file" : 'X\(//\)$' \| \
+ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
+echo X"$ac_file" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ { as_dir="$ac_dir"
+ case $as_dir in #(
+ -*) as_dir=./$as_dir;;
+ esac
+ test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || {
+ as_dirs=
+ while :; do
+ case $as_dir in #(
+ *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #(
+ *) as_qdir=$as_dir;;
+ esac
+ as_dirs="'$as_qdir' $as_dirs"
+ as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ test -d "$as_dir" && break
+ done
+ test -z "$as_dirs" || eval "mkdir $as_dirs"
+ } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5
+echo "$as_me: error: cannot create directory $as_dir" >&2;}
+ { (exit 1); exit 1; }; }; }
+ ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+ ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
+ # A ".." for each directory in $ac_dir_suffix.
+ ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'`
+ case $ac_top_builddir_sub in
+ "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+ *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+ esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+ .) # We are building in place.
+ ac_srcdir=.
+ ac_top_srcdir=$ac_top_builddir_sub
+ ac_abs_top_srcdir=$ac_pwd ;;
+ [\\/]* | ?:[\\/]* ) # Absolute name.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir
+ ac_abs_top_srcdir=$srcdir ;;
+ *) # Relative name.
+ ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_build_prefix$srcdir
+ ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+
+ case $ac_mode in
+
+
+
+ :C) { echo "$as_me:$LINENO: executing $ac_file commands" >&5
+echo "$as_me: executing $ac_file commands" >&6;}
+ ;;
+ esac
+
+
+ case $ac_file$ac_mode in
+ "default":C)
+cat > user.hpp << EEEOF
+${cat_conts}
+EEEOF
+cat << EEEOF
+
+Adjustments to boost configuration have been written to
+user.hpp. Copy this to boost/config/user.hpp to use "as is",
+or define BOOST_SITE_CONFIG to point to its location.
+
+TREAT THIS FILE WITH CARE.
+Autoconf generated options are not infallible!
+
+EEEOF
+ ;;
+
+ esac
+done # for ac_tag
+
+
+{ (exit 0); exit 0; }
+_ACEOF
+chmod +x $CONFIG_STATUS
+ac_clean_files=$ac_clean_files_save
+
+
+# configure is writing to config.log, and then calls config.status.
+# config.status does its own redirection, appending to config.log.
+# Unfortunately, on DOS this fails, as config.log is still kept open
+# by configure, so config.status won't be able to write to it; its
+# output is simply discarded. So we exec the FD to /dev/null,
+# effectively closing config.log, so it can be properly (re)opened and
+# appended to by config.status. When coming back to configure, we
+# need to make the FD available again.
+if test "$no_create" != yes; then
+ ac_cs_success=:
+ ac_config_status_args=
+ test "$silent" = yes &&
+ ac_config_status_args="$ac_config_status_args --quiet"
+ exec 5>/dev/null
+ $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
+ exec 5>>config.log
+ # Use ||, not &&, to avoid exiting from the if with $? = 1, which
+ # would make configure fail if this is the last instruction.
+ $ac_cs_success || { (exit 1); exit 1; }
+fi
+
+
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/libs/config/doc/Jamfile.v2 b/libs/config/doc/Jamfile.v2
new file mode 100644
index 0000000000..12708f6a23
--- /dev/null
+++ b/libs/config/doc/Jamfile.v2
@@ -0,0 +1,61 @@
+# Boost.Config
+#
+# Copyright (c) 2001 Beman Dawes
+# Copyright (c) 2001 Vesa Karvonen
+# Copyright (c) 2001 John Maddock
+#
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or copy at
+# http://www.boost.org/LICENSE_1_0.txt)
+
+
+# Quickbook
+# -----------------------------------------------------------------------------
+
+import quickbook ;
+
+path-constant boost-images : ../../../doc/src/images ;
+
+xml config
+ :
+ config.qbk
+ ;
+
+boostbook standalone
+ :
+ config
+ :
+ <xsl:param>toc.max.depth=2
+ <xsl:param>toc.section.depth=2
+ <xsl:param>chunk.section.depth=1
+ <xsl:param>boost.root=../../../..
+
+ # PDF Options:
+ <format>pdf:<xsl:param>xep.extensions=1
+ # TOC generation: this is needed for FOP 0.2, but must not be set to zero for FOP-0.9!
+ <format>pdf:<xsl:param>fop.extensions=0
+ <format>pdf:<xsl:param>fop1.extensions=0
+ # No indent on body text:
+ <format>pdf:<xsl:param>body.start.indent=0pt
+ # Margin size:
+ <format>pdf:<xsl:param>page.margin.inner=0.5in
+ # Margin size:
+ <format>pdf:<xsl:param>page.margin.outer=0.5in
+ # Paper type = A4
+ <format>pdf:<xsl:param>paper.type=A4
+ # Yes, we want graphics for admonishments:
+ <xsl:param>admon.graphics=1
+ # Set this one for PDF generation *only*:
+ # default pnd graphics are awful in PDF form,
+ # better use SVG's instead:
+ <format>pdf:<xsl:param>admon.graphics.extension=".svg"
+ <format>pdf:<xsl:param>use.role.for.mediaobject=1
+ <format>pdf:<xsl:param>preferred.mediaobject.role=print
+ <format>pdf:<xsl:param>admon.graphics.path=$(boost-images)/
+ <format>pdf:<xsl:param>boost.url.prefix=http://www.boost.org/doc/libs/release/libs/config/doc/html
+ ;
+
+
+install pdf-install : standalone : <location>. <install-type>PDF ;
+
+
diff --git a/libs/config/doc/acknowledgements.qbk b/libs/config/doc/acknowledgements.qbk
new file mode 100644
index 0000000000..5c1a25bdea
--- /dev/null
+++ b/libs/config/doc/acknowledgements.qbk
@@ -0,0 +1,32 @@
+[/
+ Boost.Config
+
+ Copyright (c) 2001 Beman Dawes
+ Copyright (c) 2001 Vesa Karvonen
+ Copyright (c) 2001 John Maddock
+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
+]
+
+[section Acknowledgements]
+
+Beman Dawes provided the original `config.hpp` and part of this document.
+
+Vesa Karvonen provided a description of the principles (see
+[link boost_config.rationale rationale]) and put together an early version of
+the current configuration setup.
+
+John Maddock put together the configuration current code, the test
+programs, the configuration script and the reference section of this
+document.
+
+Matias Capeletto converted the docs to quickbook format.
+
+Numerous boost members, past and present, have contributed fixes to boost's
+configuration.
+
+[endsect]
+
+
diff --git a/libs/config/doc/config.qbk b/libs/config/doc/config.qbk
new file mode 100644
index 0000000000..0b02ee80a9
--- /dev/null
+++ b/libs/config/doc/config.qbk
@@ -0,0 +1,60 @@
+[article Boost.Config
+ [quickbook 1.4]
+ [authors [Beman Dawes, Vesa Karvonen, John Maddock] ]
+ [copyright 2001-2007 Beman Dawes, Vesa Karvonen, John Maddock]
+ [category broken compiler workarounds]
+ [id config]
+ [dirname config]
+ [purpose
+ Helps boost library developers adapt to compiler idiosyncrasies; not intended for library users.
+ ]
+ [source-mode c++]
+ [license
+Distributed under the Boost Software License, Version 1.0.
+(See accompanying file LICENSE_1_0.txt or copy at
+[@http://www.boost.org/LICENSE_1_0.txt])
+ ]
+]
+
+
+[/ Cited Boost resources ]
+
+[def __BOOST_REGRESSION_TEST_DRIVER__ [@../../../../tools/regression/doc/index.html boost regression test driver]]
+[def __BOOST_CONFIG_HEADER__ [@../../../../boost/config.hpp <boost/config.hpp>]]
+[def __BOOST_CONFIG_USER_HEADER__ [@../../../../boost/config/user.hpp <boost/config/user.hpp>]]
+[def __BOOST_CONFIG_SUFFIX_HEADER__ [@../../../../boost/config/user.hpp <boost/config/suffix.hpp>]]
+[def __BOOST_CONFIG_DIR__ ['<boost-root>]`/boost/config/`]
+
+
+[/ Other web resources ]
+
+[def __STL_PORT__ [@http://stlport.sourceforge.net STLport]]
+[def __BOOST_TRACKER__ [@https://svn.boost.org/trac/boost/newticket Trac]]
+[def __CORE_LANGUAGE_DR337__ [@http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#337 Core Language DR337]]
+[def __PRINCIPLES_AND_PATTERNS_ARTICLE__ [@http://www.objectmentor.com/resources/articles/Principles_and_Patterns.pdf following article]]
+
+
+[/ Icons ]
+
+[def __NOTE__ [$images/note.png]]
+[def __ALERT__ [$images/caution.png]]
+[def __DETAIL__ [$images/note.png]]
+[def __TIP__ [$images/tip.png]]
+[def __QUESTION_MARK__ [$images/question.png]]
+[def __SPACE__ [$images/space.png]]
+[def __GO_TO__ [$images/callouts/R.png]]
+
+
+[/ Document files ]
+
+
+[include configuring_boost.qbk]
+[include macro_reference.qbk]
+[include guidelines.qbk]
+[include rationale.qbk]
+[include acknowledgements.qbk]
+
+
+
+
+
diff --git a/libs/config/doc/configuring_boost.qbk b/libs/config/doc/configuring_boost.qbk
new file mode 100644
index 0000000000..dc3d933ecf
--- /dev/null
+++ b/libs/config/doc/configuring_boost.qbk
@@ -0,0 +1,434 @@
+[/
+ Boost.Config
+
+ Copyright (c) 2001 Beman Dawes
+ Copyright (c) 2001 Vesa Karvonen
+ Copyright (c) 2001 John Maddock
+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
+]
+
+
+[section Configuring Boost for Your Platform]
+
+
+[section Using the default boost configuration]
+
+Boost comes already configured for most common compilers and platforms; you
+should be able to use boost "as is". Since the compiler is configured
+separately from the standard library, the default configuration should work
+even if you replace the compiler's standard library with a third-party
+standard library (like __STL_PORT__).
+
+Using boost "as is" without trying to reconfigure is the recommended method
+for using boost. You can, however, run the configure script if you want to,
+and there are regression tests provided that allow you to test the current
+boost configuration with your particular compiler setup.
+
+Boost library users can request support for additional compilers or platforms
+by visiting our __BOOST_TRACKER__ and submitting a support request.
+
+[endsect]
+
+[section The <boost/config.hpp> header]
+
+Boost library implementations access configuration macros via
+
+ #include ``__BOOST_CONFIG_HEADER__``
+
+While Boost library users are not required to include that file directly, or
+use those configuration macros, such use is acceptable. The configuration
+macros are documented as to their purpose, usage, and limitations which makes
+them usable by both Boost library and user code.
+
+Boost [link config_info_macros informational] or [link config_helpers helper]
+macros are designed for use by Boost users as well as for our own internal use.
+Note however, that the [link config_features feature test] and
+[link config_defects defect test] macros were designed for internal use by
+Boost libraries, not user code, so they can change at any time (though no
+gratuitous changes are made to them). Boost library problems resulting from
+changes to the configuration macros are caught by the Boost regression tests,
+so the Boost libraries are updated to account for those changes. By contrast,
+Boost library user code can be adversely affected by changes to the macros
+without warning. The best way to keep abreast of changes to the macros used in
+user code is to monitor the discussions on the Boost developers list.
+
+[endsect]
+
+[#config_config_script]
+
+[section Using the configure script]
+
+[important
+This configure script only sets up the Boost headers for use with a particular
+compiler. It has no effect on Boost.Build, or how the libraries are built.
+]
+
+If you know that boost is incorrectly configured for your particular setup, and
+you are on a UNIX like platform, then you may want to try and improve things by
+running the boost configure script. From a shell command prompt you will need to
+cd into ['<boost-root>]`/libs/config/` and type:
+
+[: `sh ./configure` ]
+
+you will see a list of the items being checked as the script works its way
+through the regression tests. Note that the configure script only really
+auto-detects your compiler if it's called g++, c++ or CC. If you are using
+some other compiler you will need to set one or more of the following
+environment variables:
+
+
+[table
+[[Variable][Description ]]
+[[CXX ][The name of the compiler, for example `c++`. ]]
+[[CXXFLAGS][The compiler flags to use, for example `-O2`. ]]
+[[LDFLAGS ][The linker flags to use, for example `-L/mypath`. ]]
+[[LIBS ][Any libraries to link in, for example `-lpthread`.]]
+]
+
+For example to run the configure script with HP aCC, you might use something
+like:
+
+ export CXX="aCC"
+ export CXXFLAGS="-Aa -DAportable -D__HPACC_THREAD_SAFE_RB_TREE \
+ -DRWSTD_MULTI_THREAD -DRW_MULTI_THREAD -D_REENTRANT -D_THREAD_SAFE"
+ export LDFLAGS="-DAportable"
+ export LIBS="-lpthread"
+ sh ./configure
+
+However you run the configure script, when it finishes you will find a
+new header -`user.hpp`- located in the ['<boost-root>]`/libs/config/`
+directory. [*Note that configure does not install this header into your
+boost include path by default]. This header contains all the options
+generated by the configure script, plus a header-section that contains
+the user settable options from the default version of
+__BOOST_CONFIG_USER_HEADER__ (located under __BOOST_CONFIG_DIR__).
+There are two ways you can use this header:
+
+* [*Option 1:] copy the header into __BOOST_CONFIG_DIR__ so that it replaces
+the default user.hpp provided by boost. This option allows only one
+configure-generated setup; boost developers should avoid this option,
+as it incurs the danger of accidentally committing a configure-modified
+__BOOST_CONFIG_USER_HEADER__ to the cvs repository (something you will not
+be thanked for!).
+
+* [*Option 2:] give the header a more memorable name, and place it somewhere
+convenient; then, define the macro `BOOST_USER_CONFIG` to point to it. For
+example create a new sub-directory __BOOST_CONFIG_DIR__ `user/`, and copy
+the header there; for example as `multithread-gcc-config.hpp`. Then, when
+compiling add the command line option:
+`-DBOOST_USER_CONFIG="<boost/config/user/multithread-gcc-config.hpp>"`, and
+boost will use the new configuration header. This option allows you to
+generate more than one configuration header, and to keep them separate
+from the boost source - so that updates to the source do not interfere
+with your configuration.
+
+[endsect]
+
+[#config_user_settable]
+
+[section User settable options]
+
+There are some configuration-options that represent user choices, rather
+than compiler defects or platform specific options. These are listed in
+`<boost/config/user.hpp>` and at the start of a configure-generated `user.hpp`
+header. You can define these on the command line, or by editing
+`<boost/config/user.hpp>`, they are listed in the following table:
+
+
+
+[table
+
+[[Macro ][Description ]]
+
+[[`BOOST_USER_CONFIG`][
+When defined, it should point to the name of the user configuration file
+to include prior to any boost configuration files. When not defined,
+defaults to [@../../../../boost/config/user.hpp `<boost/config/user.hpp>`].
+]]
+[[`BOOST_COMPILER_CONFIG`][
+When defined, it should point to the name of the compiler configuration
+file to use. Defining this cuts out the compiler selection logic, and
+eliminates the dependency on the header containing that logic. For
+example if you are using gcc, then you could define BOOST_COMPILER_CONFIG
+to [@../../../../boost/config/compiler/gcc.hpp `<boost/config/compiler/gcc.hpp>`].
+]]
+[[`BOOST_STDLIB_CONFIG`][
+When defined, it should point to the name of the standard library
+configuration file to use. Defining this cuts out the standard library
+selection logic, and eliminates the dependency on the header containing
+that logic. For example if you are using STLport, then you could define
+`BOOST_STDLIB_CONFIG` to
+[@../../../../boost/config/stdlib/stlport.hpp `<boost/config/stdlib/stlport.hpp>`].
+]]
+[[`BOOST_PLATFORM_CONFIG`][
+When defined, it should point to the name of the platform configuration
+file to use. Defining this cuts out the platform selection logic, and
+eliminates the dependency on the header containing that logic. For example
+if you are compiling on linux, then you could define `BOOST_PLATFORM_CONFIG`
+to [@../../../../boost/config/platform/linux.hpp `<boost/config/platform/linux.hpp>`].
+]]
+[[`BOOST_NO_COMPILER_CONFIG`][
+When defined, no compiler configuration file is selected or included,
+define when the compiler is fully conformant with the standard, or where
+the user header (see `BOOST_USER_CONFIG`), has had any options necessary
+added to it, for example by an autoconf generated configure script.
+]]
+[[`BOOST_NO_STDLIB_CONFIG` ][
+When defined, no standard library configuration file is selected or included,
+define when the standard library is fully conformant with the standard, or
+where the user header (see `BOOST_USER_CONFIG`), has had any options necessary
+added to it, for example by an autoconf generated configure script.
+]]
+[[`BOOST_NO_PLATFORM_CONFIG` ][
+When defined, no platform configuration file is selected or included,
+define when the platform is fully conformant with the standard (and has
+no useful extra features), or where the user header (see
+`BOOST_USER_CONFIG`), has had any options necessary added to it, for example
+by an autoconf generated configure script.
+]]
+[[`BOOST_NO_CONFIG` ][
+Equivalent to defining all of `BOOST_NO_COMPILER_CONFIG`,
+`BOOST_NO_STDLIB_CONFIG` and `BOOST_NO_PLATFORM_CONFIG`.
+]]
+[[`BOOST_STRICT_CONFIG` ][
+The normal behavior for compiler versions that are newer than the last
+known version, is to assume that they have all the same defects as the
+last known version. By setting this define, then compiler versions that
+are newer than the last known version are assumed to be fully conforming
+with the standard. This is probably most useful for boost developers or
+testers, and for those who want to use boost to test beta compiler versions.
+]]
+[[`BOOST_ASSERT_CONFIG` ][
+When this flag is set, if the config finds anything unknown, then it will
+stop with a #error rather than continue. Boost regression testers should
+set this define, as should anyone who wants to quickly check whether boost
+is supported on their platform.
+]]
+[[`BOOST_DISABLE_THREADS` ][
+When defined, disables threading support, even if the compiler in its
+current translation mode supports multiple threads.
+]]
+[[`BOOST_DISABLE_WIN32` ][
+When defined, disables the use of Win32 specific API's, even when these
+are available. Also has the effect of setting `BOOST_DISABLE_THREADS` unless
+`BOOST_HAS_PTHREADS` is set. This option may be set automatically by the
+config system when it detects that the compiler is in "strict mode".
+]]
+[[`BOOST_DISABLE_ABI_HEADERS`][
+Stops boost headers from including any prefix/suffix headers that normally
+control things like struct packing and alignment.
+]]
+[[`BOOST_ABI_PREFIX`][
+A prefix header to include in place of whatever boost.config would normally
+select, any replacement should set up struct packing and alignment options
+as required.
+]]
+[[`BOOST_ABI_SUFFIX` ][
+A suffix header to include in place of whatever boost.config would normally
+select, any replacement should undo the effects of the prefix header.
+]]
+[[`BOOST_ALL_DYN_LINK`][
+Forces all libraries that have separate source, to be linked as dll's rather
+than static libraries on Microsoft Windows (this macro is used to turn on
+`__declspec(dllimport)` modifiers, so that the compiler knows which symbols
+to look for in a dll rather than in a static library).
+Note that there may be some libraries that can only be statically linked
+(Boost.Test for example) and others which may only be dynamically linked
+(Boost.Threads for example), in these cases this macro has no effect.
+]]
+[[`BOOST_`['WHATEVER]`_DYN_LINK`][
+Forces library "whatever" to be linked as a dll rather than a static library
+on Microsoft Windows: replace the ['WHATEVER] part of the macro name with the
+name of the library that you want to dynamically link to, for example use
+`BOOST_DATE_TIME_DYN_LINK` or `BOOST_REGEX_DYN_LINK` etc (this macro is used
+to turn on `__declspec(dllimport)` modifiers, so that the compiler knows
+which symbols to look for in a dll rather than in a static library).
+Note that there may be some libraries that can only be statically linked
+(Boost.Test for example) and others which may only be dynamically linked
+(Boost.Threads for example), in these cases this macro is unsupported.
+]]
+[[`BOOST_ALL_NO_LIB`][
+Tells the config system not to automatically select which libraries to link
+against.
+Normally if a compiler supports #pragma lib, then the correct library build
+variant will be automatically selected and linked against, simply by the act
+of including one of that library's headers. This macro turns that
+feature off.
+]]
+[[`BOOST_`['WHATEVER]`_NO_LIB`][
+Tells the config system not to automatically select which library to link
+against for library "whatever", replace ['WHATEVER] in the macro name with the
+name of the library; for example `BOOST_DATE_TIME_NO_LIB` or `BOOST_REGEX_NO_LIB`.
+Normally if a compiler supports `#pragma lib`, then the correct library build
+variant will be automatically selected and linked against, simply by the
+act of including one of that library's headers. This macro turns that
+feature off.
+]]
+[[`BOOST_LIB_DIAGNOSTIC`][
+Causes the auto-linking code to output diagnostic messages indicating the
+name of the library that is selected for linking.
+]]
+[[`BOOST_LIB_TOOLSET`][
+Overrides the name of the toolset part of the name of library being linked
+to; note if defined this must be defined to a quoted string literal, for
+example "abc".
+]]
+]
+
+[endsect]
+
+[section Advanced configuration usage]
+
+By setting various macros on the compiler command line or by editing
+__BOOST_CONFIG_USER_HEADER__, the boost configuration setup can be optimised
+in a variety of ways.
+
+Boost's configuration is structured so that the user-configuration is
+included first (defaulting to __BOOST_CONFIG_USER_HEADER__ if `BOOST_USER_CONFIG`
+is not defined). This sets up any user-defined policies, and gives the
+user-configuration a chance to influence what happens next.
+
+Next the compiler, standard library, and platform configuration files are
+included. These are included via macros (`BOOST_COMPILER_CONFIG` etc,
+[link config_user_settable see user settable macros]), and if the corresponding
+macro is undefined then a separate header that detects which compiler/standard
+library/platform is in use is included in order to set these. The config
+can be told to ignore these headers altogether if the corresponding
+`BOOST_NO_XXX` macro is set (for example `BOOST_NO_COMPILER_CONFIG` to
+disable including any compiler configuration file -
+[link config_user_settable see user settable macros]).
+
+Finally the boost configuration header, includes __BOOST_CONFIG_SUFFIX_HEADER__;
+this header contains any boiler plate configuration code - for example where one
+boost macro being set implies that another must be set also.
+
+The following usage examples represent just a few of the possibilities:
+
+[section Example 1, creating our own frozen configuration]
+
+Lets suppose that we're building boost with Visual C++ 6, and STLport 4.0. Lets
+suppose also that we don't intend to update our compiler or standard library
+any time soon. In order to avoid breaking dependencies when we update boost,
+we may want to "freeze" our configuration headers, so that we only have to
+rebuild our project if the boost code itself has changed, and not because the
+boost config has been updated for more recent versions of Visual C++ or STLport.
+We'll start by realising that the configuration files in use are:
+[@../../../../boost/config/compiler/visualc.hpp `<boost/config/compiler/visualc.hpp>`]
+for the compiler,
+[@../../../../boost/config/stdlib/stlport.hpp `<boost/config/stdlib/stlport.hpp>`]
+for the standard library, and
+[@../../../../boost/config/platform/win32.hpp `<boost/config/platform/win32.hpp>`]
+for the platform. Next we'll create our own private configuration directory:
+`boost/config/mysetup/`, and copy the configuration files into there. Finally,
+open up __BOOST_CONFIG_USER_HEADER__ and edit the following defines:
+
+ #define BOOST_COMPILER_CONFIG "boost/config/mysetup/visualc.hpp"
+ #define BOOST_STDLIB_CONFIG "boost/config/mysetup/stlport.hpp"
+ #define BOOST_USER_CONFIG "boost/config/mysetup/win32.hpp"
+
+Now when you use boost, its configuration header will go straight to our "frozen"
+versions, and ignore the default versions, you will now be insulated from any
+configuration changes when you update boost. This technique is also useful if
+you want to modify some of the boost configuration files; for example if you are
+working with a beta compiler release not yet supported by boost.
+
+[endsect]
+
+[section Example 2: skipping files that you don't need]
+
+Lets suppose that you're using boost with a compiler that is fully conformant with
+the standard; you're not interested in the fact that older versions of your compiler
+may have had bugs, because you know that your current version does not need any
+configuration macros setting. In a case like this, you can define
+`BOOST_NO_COMPILER_CONFIG` either on the command line, or in __BOOST_CONFIG_USER_HEADER__,
+and miss out the compiler configuration header altogether (actually you miss out
+two headers, one which works out what the compiler is, and one that configures
+boost for it). This has two consequences: the first is that less code has to be c
+ompiled, and the second that you have removed a dependency on two boost headers.
+
+[endsect]
+
+[section Example 3: using configure script to freeze the boost configuration]
+
+If you are working on a unix-like platform then you can use the configure script to
+generate a "frozen" configuration based on your current compiler setup -
+[link config_config_script see using the configure script for more details].
+
+[endsect]
+
+[endsect]
+
+[section Testing the boost configuration]
+
+The boost configuration library provides a full set of regression test programs
+under the __BOOST_CONFIG_DIR__ `test/` sub-directory:
+
+
+[table
+[[File][Description]]
+[[`config_info.cpp`][
+Prints out a detailed description of your compiler/standard library/platform
+setup, plus your current boost configuration. The information provided by this
+program useful in setting up the boost configuration files. If you report that
+boost is incorrectly configured for your compiler/library/platform then please
+include the output from this program when reporting the changes required.
+]]
+[[`config_test.cpp`][
+A monolithic test program that includes most of the individual test cases.
+This provides a quick check to see if boost is correctly configured for your
+compiler/library/platform.
+]]
+[[`limits_test.cpp`][
+Tests your standard library's `std::numeric_limits` implementation (or its boost
+provided replacement if `BOOST_NO_LIMITS` is defined). This test file fails with
+most versions of numeric_limits, mainly due to the way that some compilers
+treat NAN's and infinity.
+]]
+[[`no_*pass.cpp`][
+Individual compiler defect test files. Each of these should compile, if one
+does not then the corresponding `BOOST_NO_XXX` macro needs to be defined - see
+each test file for specific details.
+]]
+[[`no_*fail.cpp`][
+Individual compiler defect test files. Each of these should not compile, if
+one does then the corresponding `BOOST_NO_XXX` macro is defined when it need
+not be - see each test file for specific details.
+]]
+[[`has_*pass.cpp`][
+Individual feature test files. If one of these does not compile then the
+corresponding `BOOST_HAS_XXX` macro is defined when it should not be - see
+each test file for specific details.
+]]
+[[`has_*fail.cpp`][
+Individual feature test files. If one of these does compile then the
+corresponding `BOOST_HAS_XXX` macro can be safely defined - see each test
+file for specific details.
+]]
+]
+
+Although you can run the configuration regression tests as individual test
+files, there are rather a lot of them, so there are a couple of shortcuts to
+help you out:
+
+If you have built the __BOOST_REGRESSION_TEST_DRIVER__, then you can use this to
+produce a nice html formatted report of the results using the supplied test file.
+
+Alternatively you can run the configure script like this:
+
+[: `./configure --enable-test`]
+
+in which case the script will test the current configuration rather than
+creating a new one from scratch.
+
+If you are reporting the results of these tests for a new
+platform/library/compiler then please include a log of the full compiler output,
+the output from `config_info.cpp`, and the pass/fail test results.
+
+
+[endsect]
+
+[endsect]
+
diff --git a/libs/config/doc/guidelines.qbk b/libs/config/doc/guidelines.qbk
new file mode 100644
index 0000000000..83f6418e1f
--- /dev/null
+++ b/libs/config/doc/guidelines.qbk
@@ -0,0 +1,219 @@
+[/
+ Boost.Config
+
+ Copyright (c) 2001 Beman Dawes
+ Copyright (c) 2001 Vesa Karvonen
+ Copyright (c) 2001 John Maddock
+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
+]
+
+
+
+[section Guidelines for Boost Authors]
+
+The __BOOST_CONFIG_HEADER__ header is used to pass configuration information
+to other boost files, allowing them to cope with platform dependencies such
+as arithmetic byte ordering, compiler pragmas, or compiler shortcomings.
+Without such configuration information, many current compilers would not work
+with the Boost libraries.
+
+Centralizing configuration information in this header reduces the number of
+files that must be modified when porting libraries to new platforms, or when
+compilers are updated. Ideally, no other files would have to be modified when
+porting to a new platform.
+
+Configuration headers are controversial because some view them as condoning
+broken compilers and encouraging non-standard subsets. Adding settings for
+additional platforms and maintaining existing settings can also be a problem.
+In other words, configuration headers are a necessary evil rather than a
+desirable feature. The boost config.hpp policy is designed to minimize the
+problems and maximize the benefits of a configuration header.
+
+Note that:
+
+* Boost library implementers are not required to "`#include <boost/config.hpp>`",
+and are not required in any way to support compilers that do not comply
+with the C++ Standard (ISO/IEC 14882).
+* If a library implementer wishes to support some non-conforming compiler,
+or to support some platform specific feature, "`#include <boost/config.hpp>`"
+is the preferred way to obtain configuration information not available from
+the standard headers such as `<climits>`, etc.
+* If configuration information can be deduced from standard headers such as
+`<climits>`, use those standard headers rather than `<boost/config.hpp>`.
+* Boost files that use macros defined in `<boost/config.hpp>` should have
+sensible, standard conforming, default behavior if the macro is not defined.
+This means that the starting point for porting `<boost/config.hpp>` to a new
+platform is simply to define nothing at all specific to that platform. In
+the rare case where there is no sensible default behavior, an #error message
+should describe the problem.
+* If a Boost library implementer wants something added to `config.hpp`, post
+a request on the Boost mailing list. There is no guarantee such a request
+will be honored; the intent is to limit the complexity of config.hpp.
+* The intent is to support only compilers which appear on their way to
+becoming C++ Standard compliant, and only recent releases of those compilers
+at that.
+* The intent is not to disable mainstream features now well-supported by the
+majority of compilers, such as namespaces, exceptions, RTTI, or templates.
+
+
+[section:warnings Disabling Compiler Warnings]
+
+The header `<boost/config/warning_disable.hpp>` can be used to disable
+certain compiler warings that are hard or impossible to otherwise remove.
+
+Note that:
+
+* This header [*['should never be included by another Boost header]], it should
+only ever be used by a library source file or a test case.
+* The header should be included [*['before you include any other header]].
+* This header only disables warnings that are hard or impossible to otherwise
+ deal with, and which are typically emitted by one compiler only, or
+ in one compilers own standard library headers.
+
+Currently it disables the following warnings:
+
+[table
+[[Compiler][Warning]]
+[[Visual C++ 8 and later][[@http://msdn2.microsoft.com/en-us/library/ttcz0bys(VS.80).aspx C4996]: Error 'function': was declared deprecated]]
+[[Intel C++][Warning 1786: relates to the use of "deprecated" standard
+ library functions rather like C4996 in Visual C++.]]
+]
+
+[endsect]
+
+
+[section Adding New Defect Macros]
+
+When you need to add a new defect macro - either to fix a problem with an
+existing library, or when adding a new library - distil the issue down to
+a simple test case; often, at this point other (possibly better) workarounds
+may become apparent. Secondly always post the test case code to the boost
+mailing list and invite comments; remember that C++ is complex and that
+sometimes what may appear a defect, may in fact turn out to be a problem
+with the authors understanding of the standard.
+
+When you name the macro, follow the `BOOST_NO_`['SOMETHING] naming
+convention, so that it's obvious that this is a macro reporting a defect.
+
+Finally, add the test program to the regression tests. You will need to
+place the test case in a `.ipp` file with the following comments near the top:
+
+ // MACRO: BOOST_NO_FOO
+ // TITLE: foo
+ // DESCRIPTION: If the compiler fails to support foo
+
+These comments are processed by the autoconf script, so make sure the format
+follows the one given. The file should be named "`boost_no_foo.ipp`", where foo
+is the defect description - try and keep the file name under the Mac 30 character
+filename limit though. You will also need to provide a function prototype
+"`int test()`" that is declared in a namespace with the same name as the macro,
+but in all lower case, and which returns zero on success:
+
+
+ namespace boost_no_foo {
+ int test()
+ {
+ // test code goes here:
+ //
+ return 0;
+ }
+
+ }
+
+Once the test code is in place in libs/config/test, updating the configuration
+test system proceeds as:
+
+* cd into `libs/config/tools` and run `bjam`. This generates the `.cpp`
+file test cases from the `.ipp` file, updates the
+libs/config/test/all/Jamfile.v2, `config_test.cpp` and `config_info.cpp`.[br][br]
+
+* cd into `libs/config/test/all` and run `bjam `['MACRONAME` compiler-list`], where
+['MACRONAME] is the name of the new macro, and ['`compiler-list`] is a space separated list of
+compilers to test with.[br][br]
+The xxx_pass_test and the xxx_fail_test [*should both report `**passed**`].[br][br]
+If ['MACRONAME] is not defined when it should be defined, xxx_pass_test will not report `**passed**`.
+If ['MACRONAME] is defined when it should not be defined, xxx_fail_test will not report `**passed**`.[br][br]
+
+* cd into `libs/config/test` and run `bjam config_info config_test `['`compiler-list`].
+`config_info` should build and run cleanly for all the compilers in ['`compiler-list`]
+while `config_test` should fail for those that have the defect, and pass for those
+that do not.
+
+Then you should:
+
+* Define the defect macro in those config headers that require it.
+* Document the macro in this documentation (please do not forget this step!!)
+* Commit everything.
+* Keep an eye on the regression tests for new failures in Boost.Config caused by
+the addition.
+* Start using the macro.
+
+[endsect]
+
+[section Adding New Feature Test Macros]
+
+When you need to add a macro that describes a feature that the standard does
+not require, follow the convention for adding a new defect macro (above), but
+call the macro `BOOST_HAS_FOO`, and name the test file "`boost_has_foo.ipp`".
+Try not to add feature test macros unnecessarily, if there is a platform
+specific macro that can already be used (for example `_WIN32`, `__BEOS__`, or
+`__linux`) to identify the feature then use that. Try to keep the macro to a
+feature group, or header name, rather than one specific API (for example
+`BOOST_HAS_NL_TYPES_H` rather than `BOOST_HAS_CATOPEN`). If the macro
+describes a POSIX feature group, then add boilerplate code to
+__BOOST_CONFIG_SUFFIX_HEADER__ to auto-detect the feature where possible
+(if you are wondering why we can't use POSIX feature test macro directly,
+remember that many of these features can be added by third party libraries,
+and are not therefore identified inside `<unistd.h>`).
+
+[endsect]
+
+[section Modifying the Boost Configuration Headers]
+
+The aim of boost's configuration setup is that the configuration headers should
+be relatively stable - a boost user should not have to recompile their code
+just because the configuration for some compiler that they're not interested
+in has changed. Separating the configuration into separate compiler/standard
+library/platform sections provides for part of this stability, but boost
+authors require some amount of restraint as well, in particular:
+
+__BOOST_CONFIG_HEADER__ should never change, don't alter this file.
+
+__BOOST_CONFIG_USER_HEADER__ is included by default, don't add extra code to
+this file unless you have to. If you do, please remember to update
+[@../../tools/configure.in libs/config/tools/configure.in] as well.
+
+__BOOST_CONFIG_SUFFIX_HEADER__ is always included so be careful about
+modifying this file as it breaks dependencies for everyone. This file should
+include only "boilerplate" configuration code, and generally should change
+only when new macros are added.
+
+[@../../../../boost/config/select_compiler_config.hpp <boost/config/select_compiler_config.hpp>],
+[@../../../../boost/config/select_platform_config.hpp <boost/config/select_platform_config.hpp>] and
+[@../../../../boost/config/select_stdlib_config.hpp <boost/config/select_stdlib_config.hpp>]
+are included by default and should change only if support for a new
+compiler/standard library/platform is added.
+
+The compiler/platform/standard library selection code is set up so that unknown
+platforms are ignored and assumed to be fully standards compliant - this gives
+unknown platforms a "sporting chance" of working "as is" even without running
+the configure script.
+
+When adding or modifying the individual mini-configs, assume that future, as
+yet unreleased versions of compilers, have all the defects of the current
+version. Although this is perhaps unnecessarily pessimistic, it cuts down on
+the maintenance of these files, and experience suggests that pessimism is
+better placed than optimism here!
+
+[endsect]
+
+[endsect]
+
+
+
+
+
+
diff --git a/libs/config/doc/html/HTML.manifest b/libs/config/doc/html/HTML.manifest
new file mode 100644
index 0000000000..632c78f1cc
--- /dev/null
+++ b/libs/config/doc/html/HTML.manifest
@@ -0,0 +1,5 @@
+index.html
+boost_config/boost_macro_reference.html
+boost_config/guidelines_for_boost_authors.html
+boost_config/rationale.html
+boost_config/acknowledgements.html
diff --git a/libs/config/doc/html/boost_config/acknowledgements.html b/libs/config/doc/html/boost_config/acknowledgements.html
new file mode 100644
index 0000000000..8286d72da8
--- /dev/null
+++ b/libs/config/doc/html/boost_config/acknowledgements.html
@@ -0,0 +1,62 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Acknowledgements</title>
+<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="../index.html" title="Boost.Config">
+<link rel="up" href="../index.html" title="Boost.Config">
+<link rel="prev" href="rationale.html" title="Rationale">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
+<td align="center"><a href="../../../../../index.html">Home</a></td>
+<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
+<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
+<td align="center"><a href="../../../../../more/index.htm">More</a></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="rationale.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="boost_config.acknowledgements"></a><a class="link" href="acknowledgements.html" title="Acknowledgements">Acknowledgements</a>
+</h2></div></div></div>
+<p>
+ Beman Dawes provided the original <code class="computeroutput"><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span></code> and
+ part of this document.
+ </p>
+<p>
+ Vesa Karvonen provided a description of the principles (see <a class="link" href="rationale.html" title="Rationale">rationale</a>)
+ and put together an early version of the current configuration setup.
+ </p>
+<p>
+ John Maddock put together the configuration current code, the test programs,
+ the configuration script and the reference section of this document.
+ </p>
+<p>
+ Matias Capeletto converted the docs to quickbook format.
+ </p>
+<p>
+ Numerous boost members, past and present, have contributed fixes to boost's
+ configuration.
+ </p>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Beman Dawes, Vesa Karvonen, John
+ Maddock<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="rationale.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a>
+</div>
+</body>
+</html>
diff --git a/libs/config/doc/html/boost_config/boost_macro_reference.html b/libs/config/doc/html/boost_config/boost_macro_reference.html
new file mode 100644
index 0000000000..e90f270196
--- /dev/null
+++ b/libs/config/doc/html/boost_config/boost_macro_reference.html
@@ -0,0 +1,4049 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Boost Macro Reference</title>
+<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="../index.html" title="Boost.Config">
+<link rel="up" href="../index.html" title="Boost.Config">
+<link rel="prev" href="../index.html" title="Boost.Config">
+<link rel="next" href="guidelines_for_boost_authors.html" title="Guidelines for Boost Authors">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
+<td align="center"><a href="../../../../../index.html">Home</a></td>
+<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
+<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
+<td align="center"><a href="../../../../../more/index.htm">More</a></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../index.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="guidelines_for_boost_authors.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="boost_config.boost_macro_reference"></a><a class="link" href="boost_macro_reference.html" title="Boost Macro Reference">Boost Macro Reference</a>
+</h2></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_c__03_defects">Macros
+ that describe C++03 defects</a></span></dt>
+<dt><span class="section"><a href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_optional_features">Macros
+ that describe optional features</a></span></dt>
+<dt><span class="section"><a href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_possible_c___future_features">Macros
+ that describe possible C++ future features</a></span></dt>
+<dt><span class="section"><a href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_c__11_features_not_supported">Macros
+ that describe C++11 features not supported</a></span></dt>
+<dt><span class="section"><a href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_allow_use_of_c__11_features_with_c__03_compilers">Macros
+ that allow use of C++11 features with C++03 compilers</a></span></dt>
+<dt><span class="section"><a href="boost_macro_reference.html#boost_config.boost_macro_reference.boost_helper_macros">Boost
+ Helper Macros</a></span></dt>
+<dt><span class="section"><a href="boost_macro_reference.html#boost_config.boost_macro_reference.boost_informational_macros">Boost
+ Informational Macros</a></span></dt>
+<dt><span class="section"><a href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_for_libraries_with_separate_source_code">Macros
+ for libraries with separate source code</a></span></dt>
+</dl></div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_config.boost_macro_reference.macros_that_describe_c__03_defects"></a><a name="config_defects"></a><a class="link" href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_c__03_defects" title="Macros that describe C++03 defects">Macros
+ that describe C++03 defects</a>
+</h3></div></div></div>
+<p>
+ The following macros all describe features that are required by the C++03
+ standard, if one of the following macros is defined, then it represents a
+ defect in the compiler's conformance with the 2003 standard.
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Macro
+ </p>
+ </th>
+<th>
+ <p>
+ Section
+ </p>
+ </th>
+<th>
+ <p>
+ Description
+ </p>
+ </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_BCB_PARTIAL_SPECIALIZATION_BUG</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Compiler
+ </p>
+ </td>
+<td>
+ <p>
+ The compiler exibits certain partial specialisation bug - probably
+ Borland C++ Builder specific.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Compiler
+ </p>
+ </td>
+<td>
+ <p>
+ Argument dependent lookup fails if there is a using declaration
+ for the symbol being looked up in the current scope. For example,
+ using <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">get_pointer</span></code>; prevents ADL from
+ finding overloads of <code class="computeroutput"><span class="identifier">get_pointer</span></code>
+ in namespaces nested inside boost (but not elsewhere). Probably
+ Borland specific.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_ADL_BARRIER</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Compiler
+ </p>
+ </td>
+<td>
+ <p>
+ The compiler locates and searches namespaces that it should <span class="emphasis"><em>*not*</em></span>
+ in fact search when performing argument dependent lookup.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Compiler
+ </p>
+ </td>
+<td>
+ <p>
+ Compiler does not implement argument-dependent lookup (also named
+ Koenig lookup); see std::3.4.2 [basic.koenig.lookup]
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_AUTO_PTR</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Standard library
+ </p>
+ </td>
+<td>
+ <p>
+ If the compiler / library supplies non-standard or broken <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">auto_ptr</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_COMPLETE_VALUE_INITIALIZATION</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Compiler
+ </p>
+ </td>
+<td>
+ <p>
+ Compiler has not completely implemented value-initialization. See
+ also <a href="../../../../utility/value_init.htm#compiler_issues" target="_top">The
+ Utility/Value Init docs</a>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CTYPE_FUNCTIONS</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Platform
+ </p>
+ </td>
+<td>
+ <p>
+ The Platform does not provide functions for the character-classifying
+ operations <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">ctype</span><span class="special">.</span><span class="identifier">h</span><span class="special">&gt;</span></code> and <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">cctype</span><span class="special">&gt;</span></code>,
+ only macros.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CV_SPECIALIZATIONS</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Compiler
+ </p>
+ </td>
+<td>
+ <p>
+ If template specialisations for cv-qualified types conflict with
+ a specialisation for a cv-unqualififed type.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CV_VOID_SPECIALIZATIONS</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Compiler
+ </p>
+ </td>
+<td>
+ <p>
+ If template specialisations for cv-void types conflict with a specialisation
+ for void.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CWCHAR</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Platform
+ </p>
+ </td>
+<td>
+ <p>
+ The Platform does not provide <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">wchar</span><span class="special">.</span><span class="identifier">h</span><span class="special">&gt;</span></code>
+ and <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">cwchar</span><span class="special">&gt;</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CWCTYPE</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Platform
+ </p>
+ </td>
+<td>
+ <p>
+ The Platform does not provide <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">wctype</span><span class="special">.</span><span class="identifier">h</span><span class="special">&gt;</span></code>
+ and <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">cwctype</span><span class="special">&gt;</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_FENV_H</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Platform, Standard library
+ </p>
+ </td>
+<td>
+ <p>
+ The C standard library doesn't provide <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">fenv</span><span class="special">.</span><span class="identifier">h</span><span class="special">&gt;</span></code>.
+ <a href="../../../../../boost/detail/fenv.hpp" target="_top"><code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">detail</span><span class="special">/</span><span class="identifier">fenv</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a>
+ should be included instead of <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">fenv</span><span class="special">.</span><span class="identifier">h</span><span class="special">&gt;</span></code>
+ for maximum portability on platforms which do provide <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">fenv</span><span class="special">.</span><span class="identifier">h</span><span class="special">&gt;</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_DEPENDENT_NESTED_DERIVATIONS</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Compiler
+ </p>
+ </td>
+<td>
+ <p>
+ The compiler fails to compile a nested class that has a dependent
+ base class:
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">foo</span> <span class="special">:</span> <span class="special">{</span>
+ <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">U</span><span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">bar</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">U</span> <span class="special">{};</span>
+</pre>
+<p>
+ };
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Compiler
+ </p>
+ </td>
+<td>
+ <p>
+ Template value parameters cannot have a dependent type, for example:
+
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T</span><span class="special">::</span><span class="identifier">type</span> <span class="identifier">value</span><span class="special">&gt;</span>
+<span class="keyword">class</span> <span class="identifier">X</span> <span class="special">{</span> <span class="special">...</span> <span class="special">};</span>
+</pre>
+<p>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_EXCEPTION_STD_NAMESPACE</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Standard Library
+ </p>
+ </td>
+<td>
+ <p>
+ The standard library does not put some or all of the contents of
+ <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">exception</span><span class="special">&gt;</span></code> in namespace std.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_EXCEPTIONS</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Compiler
+ </p>
+ </td>
+<td>
+ <p>
+ The compiler does not support exception handling (this setting
+ is typically required by many C++ compilers for embedded platforms).
+ Note that there is no requirement for boost libraries to honor
+ this configuration setting - indeed doing so may be impossible
+ in some cases. Those libraries that do honor this will typically
+ abort if a critical error occurs - you have been warned!
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Compiler
+ </p>
+ </td>
+<td>
+ <p>
+ Can only use deduced template arguments when calling function template
+ instantiations.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_FUNCTION_TEMPLATE_ORDERING</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Compiler
+ </p>
+ </td>
+<td>
+ <p>
+ The compiler does not perform function template ordering or its
+ function template ordering is incorrect.
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="comment">// #1</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">T</span><span class="special">);</span>
+
+<span class="comment">// #2</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span><span class="keyword">class</span> <span class="identifier">U</span><span class="special">&gt;</span> <span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">T</span><span class="special">(*)(</span><span class="identifier">U</span><span class="special">));</span>
+
+<span class="keyword">void</span> <span class="identifier">bar</span><span class="special">(</span><span class="keyword">int</span><span class="special">);</span>
+
+<span class="identifier">f</span><span class="special">(&amp;</span><span class="identifier">bar</span><span class="special">);</span> <span class="comment">// should choose #2.</span>
+</pre>
+<p>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_INCLASS_MEMBER_INITIALIZATION</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Compiler
+ </p>
+ </td>
+<td>
+ <p>
+ Compiler violates std::9.4.2/4.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_INTRINSIC_WCHAR_T</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Compiler
+ </p>
+ </td>
+<td>
+ <p>
+ The C++ implementation does not provide <code class="computeroutput"><span class="keyword">wchar_t</span></code>,
+ or it is really a synonym for another integral type. Use this symbol
+ to decide whether it is appropriate to explicitly specialize a
+ template on <code class="computeroutput"><span class="keyword">wchar_t</span></code>
+ if there is already a specialization for other integer types.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_IOSFWD</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ std lib
+ </p>
+ </td>
+<td>
+ <p>
+ The standard library lacks <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">iosfwd</span><span class="special">&gt;</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_IOSTREAM</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ std lib
+ </p>
+ </td>
+<td>
+ <p>
+ The standard library lacks <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span></code>,
+ <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">istream</span><span class="special">&gt;</span></code> or <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">ostream</span><span class="special">&gt;</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_IS_ABSTRACT</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Compiler
+ </p>
+ </td>
+<td>
+ <p>
+ The C++ compiler does not support SFINAE with abstract types, this
+ is covered by <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#337" target="_top">Core
+ Language DR337</a>, but is not part of the current standard.
+ Fortunately most compilers that support SFINAE also support this
+ DR.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_LIMITS</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Standard library
+ </p>
+ </td>
+<td>
+ <p>
+ The C++ implementation does not provide the <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">limits</span><span class="special">&gt;</span></code>
+ header. Never check for this symbol in library code; always include
+ <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">limits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>, which guarantees to provide
+ <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_NUMERIC_LIMITS_LOWEST</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Standard library
+ </p>
+ </td>
+<td>
+ <p>
+ Static function <code class="computeroutput"><span class="identifier">numeric_limits</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">lowest</span><span class="special">()</span></code> is not available for use.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Standard library
+ </p>
+ </td>
+<td>
+ <p>
+ Constants such as <code class="computeroutput"><span class="identifier">numeric_limits</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">is_signed</span></code>
+ are not available for use at compile-time.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_LONG_LONG_NUMERIC_LIMITS</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Standard library
+ </p>
+ </td>
+<td>
+ <p>
+ There is no specialization for <code class="computeroutput"><span class="identifier">numeric_limits</span><span class="special">&lt;</span><span class="keyword">long</span>
+ <span class="keyword">long</span><span class="special">&gt;</span></code>
+ and <code class="computeroutput"><span class="identifier">numeric_limits</span><span class="special">&lt;</span><span class="keyword">unsigned</span>
+ <span class="keyword">long</span> <span class="keyword">long</span><span class="special">&gt;</span></code>. <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">limits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ will then add these specializations as a standard library "fix"
+ only if the compiler supports the <code class="computeroutput"><span class="keyword">long</span>
+ <span class="keyword">long</span></code> datatype.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Compiler
+ </p>
+ </td>
+<td>
+ <p>
+ The compiler does not support the specialization of individual
+ member functions of template classes.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_MEMBER_TEMPLATE_KEYWORD</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Compiler
+ </p>
+ </td>
+<td>
+ <p>
+ If the compiler supports member templates, but not the template
+ keyword when accessing member template classes.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_MEMBER_TEMPLATE_FRIENDS</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Compiler
+ </p>
+ </td>
+<td>
+ <p>
+ Member template friend syntax (<code class="computeroutput"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span>
+ <span class="identifier">P</span><span class="special">&gt;</span>
+ <span class="keyword">friend</span> <span class="keyword">class</span>
+ <span class="identifier">frd</span><span class="special">;</span></code>)
+ described in the C++ Standard, 14.5.3, not supported.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_MEMBER_TEMPLATES</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Compiler
+ </p>
+ </td>
+<td>
+ <p>
+ Member template functions not fully supported.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_MS_INT64_NUMERIC_LIMITS</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Standard library
+ </p>
+ </td>
+<td>
+ <p>
+ There is no specialization for <code class="computeroutput"><span class="identifier">numeric_limits</span><span class="special">&lt;</span><span class="identifier">__int64</span><span class="special">&gt;</span></code> and <code class="computeroutput"><span class="identifier">numeric_limits</span><span class="special">&lt;</span><span class="keyword">unsigned</span>
+ <span class="identifier">__int64</span><span class="special">&gt;</span></code>.
+ <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">limits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> will then add these specializations
+ as a standard library "fix", only if the compiler supports
+ the <code class="computeroutput"><span class="identifier">__int64</span></code> datatype.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_NESTED_FRIENDSHIP</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Compiler
+ </p>
+ </td>
+<td>
+ <p>
+ Compiler doesn't allow a nested class to access private members
+ of its containing class. Probably Borland/CodeGear specific.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_OPERATORS_IN_NAMESPACE</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Compiler
+ </p>
+ </td>
+<td>
+ <p>
+ Compiler requires inherited operator friend functions to be defined
+ at namespace scope, then using'ed to boost. Probably GCC specific.
+ See <a href="../../../../../boost/operators.hpp" target="_top"><code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">operators</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a> for example.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Compiler
+ </p>
+ </td>
+<td>
+ <p>
+ The compiler does not correctly handle partial specializations
+ which depend upon default arguments in the primary template.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_POINTER_TO_MEMBER_CONST</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Compiler
+ </p>
+ </td>
+<td>
+ <p>
+ The compiler does not correctly handle pointers to const member
+ functions, preventing use of these in overloaded function templates.
+ See <a href="../../../../../boost/functional.hpp" target="_top"><code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">functional</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a> for example.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Compiler
+ </p>
+ </td>
+<td>
+ <p>
+ Pointers to members don't work when used as template parameters.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_PRIVATE_IN_AGGREGATE</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Compiler
+ </p>
+ </td>
+<td>
+ <p>
+ The compiler misreads 8.5.1, treating classes as non-aggregate
+ if they contain private or protected member functions.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_RTTI</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Compiler
+ </p>
+ </td>
+<td>
+ <p>
+ The compiler may (or may not) have the typeid operator, but RTTI
+ on the dynamic type of an object is not supported.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_SFINAE</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Compiler
+ </p>
+ </td>
+<td>
+ <p>
+ The compiler does not support the "Substitution Failure Is
+ Not An Error" meta-programming idiom.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_SFINAE_EXPR</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Compiler
+ </p>
+ </td>
+<td>
+ <p>
+ The compiler does not support usage of SFINAE with arbitrary expressions.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_STD_ALLOCATOR</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Standard library
+ </p>
+ </td>
+<td>
+ <p>
+ The C++ standard library does not provide a standards conforming
+ <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">allocator</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_STD_DISTANCE</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Standard library
+ </p>
+ </td>
+<td>
+ <p>
+ The platform does not have a conforming version of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">distance</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_STD_ITERATOR</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Standard library
+ </p>
+ </td>
+<td>
+ <p>
+ The C++ implementation fails to provide the <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">iterator</span></code>
+ class.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_STD_ITERATOR_TRAITS</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Standard library
+ </p>
+ </td>
+<td>
+ <p>
+ The compiler does not provide a standard compliant implementation
+ of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">iterator_traits</span></code>. Note that the
+ compiler may still have a non-standard implementation.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_STD_LOCALE</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Standard library
+ </p>
+ </td>
+<td>
+ <p>
+ The standard library lacks <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_STD_MESSAGES</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Standard library
+ </p>
+ </td>
+<td>
+ <p>
+ The standard library lacks a conforming <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">messages</span></code>
+ facet.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_STD_MIN_MAX</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Standard library
+ </p>
+ </td>
+<td>
+ <p>
+ The C++ standard library does not provide the <code class="computeroutput"><span class="identifier">min</span><span class="special">()</span></code> and <code class="computeroutput"><span class="identifier">max</span><span class="special">()</span></code> template functions that should
+ be in <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">algorithm</span><span class="special">&gt;</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Standard library
+ </p>
+ </td>
+<td>
+ <p>
+ Defined if the standard library's output iterators are not assignable.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_STD_TYPEINFO</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Standard library
+ </p>
+ </td>
+<td>
+ <p>
+ The &lt;typeinfo&gt; header declares <code class="computeroutput"><span class="identifier">type_info</span></code>
+ in the global namespace instead of namespace std.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_STD_USE_FACET</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Standard library
+ </p>
+ </td>
+<td>
+ <p>
+ The standard library lacks a conforming <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">use_facet</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_STD_WSTREAMBUF</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Standard library
+ </p>
+ </td>
+<td>
+ <p>
+ The standard library's implementation of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_streambuf</span><span class="special">&lt;</span><span class="keyword">wchar_t</span><span class="special">&gt;</span></code> is either missing, incomplete,
+ or buggy.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_STD_WSTRING</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Standard library
+ </p>
+ </td>
+<td>
+ <p>
+ The standard library lacks <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">wstring</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_STDC_NAMESPACE</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Compiler, Platform
+ </p>
+ </td>
+<td>
+ <p>
+ The contents of C++ standard headers for C library functions (the
+ <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">c</span><span class="special">...&gt;</span></code> headers) have not been placed
+ in namespace std. This test is difficult - some libraries "fake"
+ the std C functions by adding using declarations to import them
+ into namespace std, unfortunately they don't necessarily catch
+ all of them...
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_STRINGSTREAM</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Standard library
+ </p>
+ </td>
+<td>
+ <p>
+ The C++ implementation does not provide the <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">sstream</span><span class="special">&gt;</span></code>
+ header.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_SWPRINTF</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Platform
+ </p>
+ </td>
+<td>
+ <p>
+ The platform does not have a conforming version of <code class="computeroutput"><span class="identifier">swprintf</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Compiler
+ </p>
+ </td>
+<td>
+ <p>
+ Class template partial specialization (14.5.4 [temp.class.spec])
+ not supported.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_TEMPLATED_IOSTREAMS</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Standard library
+ </p>
+ </td>
+<td>
+ <p>
+ The standard library does not provide templated iostream classes.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Standard library
+ </p>
+ </td>
+<td>
+ <p>
+ The standard library does not provide templated iterator constructors
+ for its containers.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_TEMPLATE_TEMPLATES</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Compiler
+ </p>
+ </td>
+<td>
+ <p>
+ The compiler does not support template template parameters.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_TYPEID</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Compiler
+ </p>
+ </td>
+<td>
+ <p>
+ The compiler does not support the typeid operator at all.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_TYPENAME_WITH_CTOR</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Compiler
+ </p>
+ </td>
+<td>
+ <p>
+ The typename keyword cannot be used when creating a temporary of
+ a Dependent type.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_UNREACHABLE_RETURN_DETECTION</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Compiler
+ </p>
+ </td>
+<td>
+ <p>
+ If a return is unreachable, then no return statement should be
+ required, however some compilers insist on it, while other issue
+ a bunch of warnings if it is in fact present.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Compiler
+ </p>
+ </td>
+<td>
+ <p>
+ The compiler will not accept a using declaration that brings a
+ function from a typename used as a base class into a derived class
+ if functions of the same name are present in the derived class.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_USING_TEMPLATE</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Compiler
+ </p>
+ </td>
+<td>
+ <p>
+ The compiler will not accept a using declaration that imports a
+ template class or function from another namespace. Originally a
+ Borland specific problem with imports to/from the global namespace,
+ extended to MSVC6 which has a specific issue with importing template
+ classes (but not functions).
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_VOID_RETURNS</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Compiler
+ </p>
+ </td>
+<td>
+ <p>
+ The compiler does not allow a void function to return the result
+ of calling another void function.
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">()</span> <span class="special">{}</span>
+<span class="keyword">void</span> <span class="identifier">g</span><span class="special">()</span> <span class="special">{</span> <span class="keyword">return</span> <span class="identifier">f</span><span class="special">();</span> <span class="special">}</span>
+</pre>
+<p>
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_config.boost_macro_reference.macros_that_describe_optional_features"></a><a name="config_features"></a><a class="link" href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_optional_features" title="Macros that describe optional features">Macros
+ that describe optional features</a>
+</h3></div></div></div>
+<p>
+ The following macros describe features that are not required by the C++ standard.
+ The macro is only defined if the feature is present.
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Macro
+ </p>
+ </th>
+<th>
+ <p>
+ Section
+ </p>
+ </th>
+<th>
+ <p>
+ Description
+ </p>
+ </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_HAS_BETHREADS</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Platform
+ </p>
+ </td>
+<td>
+ <p>
+ The platform supports BeOS style threads.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_HAS_CLOCK_GETTIME</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Platform
+ </p>
+ </td>
+<td>
+ <p>
+ The platform has the POSIX API <code class="computeroutput"><span class="identifier">clock_gettime</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_HAS_DIRENT_H</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Platform
+ </p>
+ </td>
+<td>
+ <p>
+ The platform has the POSIX header <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">dirent</span><span class="special">.</span><span class="identifier">h</span><span class="special">&gt;</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_HAS_EXPM1</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Platform
+ </p>
+ </td>
+<td>
+ <p>
+ The platform has the functions <code class="computeroutput"><span class="identifier">expm1</span></code>,
+ <code class="computeroutput"><span class="identifier">expm1f</span></code> and <code class="computeroutput"><span class="identifier">expm1l</span></code> in <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">math</span><span class="special">.</span><span class="identifier">h</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_HAS_FTIME</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Platform
+ </p>
+ </td>
+<td>
+ <p>
+ The platform has the Win32 API type FTIME.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_HAS_GETSYSTEMTIMEASFILETIME</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Platform
+ </p>
+ </td>
+<td>
+ <p>
+ The platform has the Win32 API GetSystemTimeAsFileTime.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_HAS_GETTIMEOFDAY</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Platform
+ </p>
+ </td>
+<td>
+ <p>
+ The platform has the POSIX API <code class="computeroutput"><span class="identifier">gettimeofday</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_HAS_HASH</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Standard library
+ </p>
+ </td>
+<td>
+ <p>
+ The C++ implementation provides the (SGI) hash_set and hash_map
+ classes. When defined, <code class="computeroutput"><span class="identifier">BOOST_HASH_SET_HEADER</span></code>
+ and <code class="computeroutput"><span class="identifier">BOOST_HASH_LIST_HEADER</span></code>
+ will contain the names of the header needed to access hash_set
+ and hash_map; <code class="computeroutput"><span class="identifier">BOOST_STD_EXTENSION_NAMESPACE</span></code>
+ will provide the namespace in which the two class templates reside.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_HAS_LOG1P</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Platform
+ </p>
+ </td>
+<td>
+ <p>
+ The platform has the functions <code class="computeroutput"><span class="identifier">log1p</span></code>,
+ <code class="computeroutput"><span class="identifier">log1pf</span></code> and <code class="computeroutput"><span class="identifier">log1pl</span></code> in <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">math</span><span class="special">.</span><span class="identifier">h</span><span class="special">&gt;</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_HAS_MACRO_USE_FACET</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Standard library
+ </p>
+ </td>
+<td>
+ <p>
+ The standard library lacks a conforming <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">use_facet</span></code>,
+ but has a macro <code class="computeroutput"><span class="identifier">_USE</span><span class="special">(</span><span class="identifier">loc</span><span class="special">,</span> <span class="identifier">Type</span><span class="special">)</span></code> that does the job. This is primarily
+ for the Dinkumware std lib.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_HAS_MS_INT64</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Compiler
+ </p>
+ </td>
+<td>
+ <p>
+ The compiler supports the <code class="computeroutput"><span class="identifier">__int64</span></code>
+ data type.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_HAS_NANOSLEEP</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Platform
+ </p>
+ </td>
+<td>
+ <p>
+ The platform has the POSIX API nanosleep.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_HAS_NL_TYPES_H</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Platform
+ </p>
+ </td>
+<td>
+ <p>
+ The platform has an <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">nl_types</span><span class="special">.</span><span class="identifier">h</span><span class="special">&gt;</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_HAS_NRVO</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Compiler
+ </p>
+ </td>
+<td>
+ <p>
+ Indicated that the compiler supports the named return value optimization
+ (NRVO). Used to select the most efficient implementation for some
+ function. See <a href="../../../../../boost/operators.hpp" target="_top"><code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">operators</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a> for example.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_HAS_PARTIAL_STD_ALLOCATOR</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Standard Library
+ </p>
+ </td>
+<td>
+ <p>
+ The standard library has a partially conforming <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">allocator</span></code>
+ class, but without any of the member templates.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_HAS_PTHREAD_DELAY_NP</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Platform
+ </p>
+ </td>
+<td>
+ <p>
+ The platform has the POSIX API <code class="computeroutput"><span class="identifier">pthread_delay_np</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Platform
+ </p>
+ </td>
+<td>
+ <p>
+ The platform has the POSIX API <code class="computeroutput"><span class="identifier">pthread_mutexattr_settype</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_HAS_PTHREAD_YIELD</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Platform
+ </p>
+ </td>
+<td>
+ <p>
+ The platform has the POSIX API <code class="computeroutput"><span class="identifier">pthread_yield</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_HAS_PTHREADS</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Platform
+ </p>
+ </td>
+<td>
+ <p>
+ The platform support POSIX style threads.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_HAS_SCHED_YIELD</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Platform
+ </p>
+ </td>
+<td>
+ <p>
+ The platform has the POSIX API <code class="computeroutput"><span class="identifier">sched_yield</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_HAS_SGI_TYPE_TRAITS</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Compiler, Standard library
+ </p>
+ </td>
+<td>
+ <p>
+ The compiler has native support for SGI style type traits.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_HAS_STDINT_H</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Platform
+ </p>
+ </td>
+<td>
+ <p>
+ The platform has a <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">stdint</span><span class="special">.</span><span class="identifier">h</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_HAS_SLIST</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Standard library
+ </p>
+ </td>
+<td>
+ <p>
+ The C++ implementation provides the (SGI) slist class. When defined,
+ <code class="computeroutput"><span class="identifier">BOOST_SLIST_HEADER</span></code>
+ will contain the name of the header needed to access <code class="computeroutput"><span class="identifier">slist</span></code> and <code class="computeroutput"><span class="identifier">BOOST_STD_EXTENSION_NAMESPACE</span></code>
+ will provide the namespace in which <code class="computeroutput"><span class="identifier">slist</span></code>
+ resides.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_HAS_STLP_USE_FACET</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Standard library
+ </p>
+ </td>
+<td>
+ <p>
+ The standard library lacks a conforming <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">use_facet</span></code>,
+ but has a workaround class-version that does the job. This is primarily
+ for the STLport std lib.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_HAS_TR1_ARRAY</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Standard library
+ </p>
+ </td>
+<td>
+ <p>
+ The library has a TR1 conforming version of <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">array</span><span class="special">&gt;</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_HAS_TR1_COMPLEX_OVERLOADS</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Standard library
+ </p>
+ </td>
+<td>
+ <p>
+ The library has a version of <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">complex</span><span class="special">&gt;</span></code>
+ that supports passing scalars to the complex number algorithms.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_HAS_TR1_COMPLEX_INVERSE_TRIG</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Standard library
+ </p>
+ </td>
+<td>
+ <p>
+ The library has a version of <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">complex</span><span class="special">&gt;</span></code>
+ that includes the new inverse trig functions from TR1.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_HAS_TR1_REFERENCE_WRAPPER</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Standard library
+ </p>
+ </td>
+<td>
+ <p>
+ The library has TR1 conforming reference wrappers in <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">functional</span><span class="special">&gt;</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_HAS_TR1_RESULT_OF</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Standard library
+ </p>
+ </td>
+<td>
+ <p>
+ The library has a TR1 conforming result_of template in <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">functional</span><span class="special">&gt;</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_HAS_TR1_MEM_FN</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Standard library
+ </p>
+ </td>
+<td>
+ <p>
+ The library has a TR1 conforming mem_fn function template in <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">functional</span><span class="special">&gt;</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_HAS_TR1_BIND</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Standard library
+ </p>
+ </td>
+<td>
+ <p>
+ The library has a TR1 conforming bind function template in <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">functional</span><span class="special">&gt;</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_HAS_TR1_FUNCTION</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Standard library
+ </p>
+ </td>
+<td>
+ <p>
+ The library has a TR1 conforming function class template in <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">functional</span><span class="special">&gt;</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_HAS_TR1_HASH</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Standard library
+ </p>
+ </td>
+<td>
+ <p>
+ The library has a TR1 conforming hash function template in <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">functional</span><span class="special">&gt;</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_HAS_TR1_SHARED_PTR</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Standard library
+ </p>
+ </td>
+<td>
+ <p>
+ The library has a TR1 conforming <code class="computeroutput"><span class="identifier">shared_ptr</span></code>
+ class template in <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">memory</span><span class="special">&gt;</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_HAS_TR1_RANDOM</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Standard library
+ </p>
+ </td>
+<td>
+ <p>
+ The library has a TR1 conforming version of <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">random</span><span class="special">&gt;</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_HAS_TR1_REGEX</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Standard library
+ </p>
+ </td>
+<td>
+ <p>
+ The library has a TR1 conforming version of <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">regex</span><span class="special">&gt;</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_HAS_TR1_TUPLE</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Standard library
+ </p>
+ </td>
+<td>
+ <p>
+ The library has a TR1 conforming version of <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">tuple</span><span class="special">&gt;</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_HAS_TR1_TYPE_TRAITS</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Standard library
+ </p>
+ </td>
+<td>
+ <p>
+ The library has a TR1 conforming version of <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">type_traits</span><span class="special">&gt;</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_HAS_TR1_UTILITY</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Standard library
+ </p>
+ </td>
+<td>
+ <p>
+ The library has the TR1 additions to <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">utility</span><span class="special">&gt;</span></code>
+ (tuple interface to <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span></code>).
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_HAS_TR1_UNORDERED_MAP</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Standard library
+ </p>
+ </td>
+<td>
+ <p>
+ The library has a TR1 conforming version of <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">unordered_map</span><span class="special">&gt;</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_HAS_TR1_UNORDERED_SET</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Standard library
+ </p>
+ </td>
+<td>
+ <p>
+ The library has a TR1 conforming version of <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">unordered_set</span><span class="special">&gt;</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_HAS_TR1</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Standard library
+ </p>
+ </td>
+<td>
+ <p>
+ Implies all the other <code class="computeroutput"><span class="identifier">BOOST_HAS_TR1_</span><span class="special">*</span></code> macros should be set.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_HAS_THREADS</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Platform, Compiler
+ </p>
+ </td>
+<td>
+ <p>
+ Defined if the compiler, in its current translation mode, supports
+ multiple threads of execution.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_HAS_TWO_ARG_USE_FACET</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Standard library
+ </p>
+ </td>
+<td>
+ <p>
+ The standard library lacks a conforming std::use_facet, but has
+ a two argument version that does the job. This is primarily for
+ the Rogue Wave std lib.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_HAS_UNISTD_H</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Platform
+ </p>
+ </td>
+<td>
+ <p>
+ The Platform provides <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">unistd</span><span class="special">.</span><span class="identifier">h</span><span class="special">&gt;</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_HAS_WINTHREADS</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Platform
+ </p>
+ </td>
+<td>
+ <p>
+ The platform supports MS Windows style threads.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_MSVC_STD_ITERATOR</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Standard library
+ </p>
+ </td>
+<td>
+ <p>
+ Microsoft's broken version of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">iterator</span></code>
+ is being used. This implies that <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">iterator</span></code>
+ takes no more than two template parameters.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_MSVC6_MEMBER_TEMPLATES</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Compiler
+ </p>
+ </td>
+<td>
+ <p>
+ Microsoft Visual C++ 6.0 has enough member template idiosyncrasies
+ (being polite) that <code class="computeroutput"><span class="identifier">BOOST_NO_MEMBER_TEMPLATES</span></code>
+ is defined for this compiler. <code class="computeroutput"><span class="identifier">BOOST_MSVC6_MEMBER_TEMPLATES</span></code>
+ is defined to allow compiler specific workarounds. This macro gets
+ defined automatically if <code class="computeroutput"><span class="identifier">BOOST_NO_MEMBER_TEMPLATES</span></code>
+ is not defined - in other words this is treated as a strict subset
+ of the features required by the standard.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_HAS_STDINT_H</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Platform
+ </p>
+ </td>
+<td>
+ <p>
+ There are no 1998 C++ Standard headers <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">stdint</span><span class="special">.</span><span class="identifier">h</span><span class="special">&gt;</span></code>
+ or <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">cstdint</span><span class="special">&gt;</span></code>, although the 1999 C Standard
+ does include <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">stdint</span><span class="special">.</span><span class="identifier">h</span><span class="special">&gt;</span></code>.
+ If <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">stdint</span><span class="special">.</span><span class="identifier">h</span><span class="special">&gt;</span></code> is present, <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stdint</span><span class="special">.</span><span class="identifier">h</span><span class="special">&gt;</span></code>
+ can make good use of it, so a flag is supplied (signalling presence;
+ thus the default is not present, conforming to the current C++
+ standard).
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_config.boost_macro_reference.macros_that_describe_possible_c___future_features"></a><a class="link" href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_possible_c___future_features" title="Macros that describe possible C++ future features">Macros
+ that describe possible C++ future features</a>
+</h3></div></div></div>
+<p>
+ The following macros describe features that may be included in some future
+ ISO C++ standard, but have not yet been approved for inclusion in the language.
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Macro
+ </p>
+ </th>
+<th>
+ <p>
+ Description
+ </p>
+ </th>
+</tr></thead>
+<tbody><tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_HAS_CONCEPTS</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The compiler supports concepts.
+ </p>
+ </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_config.boost_macro_reference.macros_that_describe_c__11_features_not_supported"></a><a class="link" href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_c__11_features_not_supported" title="Macros that describe C++11 features not supported">Macros
+ that describe C++11 features not supported</a>
+</h3></div></div></div>
+<p>
+ The following macros describe features in the 2011 ISO C++ standard, formerly
+ known as C++0x, that are not yet supported by a particular compiler or library.
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Macro
+ </p>
+ </th>
+<th>
+ <p>
+ Description
+ </p>
+ </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_0X_HDR_ARRAY</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The standard library does not provide header &lt;array&gt;.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_0X_HDR_CHRONO</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The standard library does not provide header &lt;chrono&gt;.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_0X_HDR_CODECVT</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The standard library does not provide header &lt;codecvt&gt;.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_0X_HDR_CONDITION_VARIABLE</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The standard library does not provide header &lt;condition_variable&gt;.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_0X_HDR_FORWARD_LIST</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The standard library does not provide header &lt;forward_list&gt;.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_0X_HDR_FUTURE</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The standard library does not provide header &lt;future&gt;.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_0X_HDR_INITIALIZER_LIST</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The standard library does not provide header &lt;initializer_list&gt;.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_0X_HDR_MUTEX</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The standard library does not provide header &lt;mutex&gt;.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_0X_HDR_RANDOM</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The standard library does not provide header &lt;random&gt;.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_0X_HDR_RATIO</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The standard library does not provide header &lt;ratio&gt;.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_0X_HDR_REGEX</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The standard library does not provide header &lt;regex&gt;.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_0X_HDR_SYSTEM_ERROR</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The standard library does not provide header &lt;system_error&gt;.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_0X_HDR_THREAD</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The standard library does not provide header &lt;thread&gt;.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_0X_HDR_TUPLE</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The standard library does not provide header &lt;tuple&gt;.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_0X_HDR_TYPEINDEX</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The standard library does not provide header &lt;typeindex&gt;.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_0X_HDR_TYPE_TRAITS</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The standard library does not provide header &lt;type_traits&gt;.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_0X_HDR_UNORDERED_MAP</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The standard library does not provide header &lt;unordered_map&gt;.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_0X_HDR_UNORDERED_SET</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The standard library does not provide header &lt;unordered_set&gt;.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_AUTO_DECLARATIONS</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The compiler does not support type deduction for variables declared
+ with the <code class="computeroutput"><span class="keyword">auto</span></code> keyword
+ (<code class="computeroutput"><span class="keyword">auto</span> <span class="identifier">var</span>
+ <span class="special">=</span> <span class="special">...;</span></code>).
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_AUTO_MULTIDECLARATIONS</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The compiler does not support type deduction for multiple variables
+ declared with the <code class="computeroutput"><span class="keyword">auto</span></code>
+ keyword (<code class="computeroutput"><span class="keyword">auto</span> <span class="identifier">var</span>
+ <span class="special">=</span> <span class="special">...,</span>
+ <span class="special">*</span><span class="identifier">ptr</span>
+ <span class="special">=</span> <span class="special">...;</span></code>).
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CHAR16_T</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The compiler does not support type <code class="computeroutput"><span class="identifier">char16_t</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CHAR32_T</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The compiler does not support type <code class="computeroutput"><span class="identifier">char32_t</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_TEMPLATE_ALIASES</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The compiler does not support template aliases.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CONSTEXPR</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The compiler does not support <code class="computeroutput"><span class="identifier">constexpr</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_DECLTYPE</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The compiler does not support <code class="computeroutput"><span class="identifier">decltype</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_DECLTYPE_N3276</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The compiler does not support the extension to <code class="computeroutput"><span class="identifier">decltype</span></code>
+ described in <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3276.pdf" target="_top">N3276</a>,
+ accepted in Madrid, March 2011.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_DEFAULTED_FUNCTIONS</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The compiler does not support defaulted (<code class="computeroutput"><span class="special">=</span>
+ <span class="keyword">default</span></code>) functions.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_DELETED_FUNCTIONS</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The compiler does not support deleted (<code class="computeroutput"><span class="special">=</span>
+ <span class="keyword">delete</span></code>) functions.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_EXPLICIT_CONVERSION_OPERATORS</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The compiler does not support explicit conversion operators (<code class="computeroutput"><span class="keyword">explicit</span> <span class="keyword">operator</span>
+ <span class="identifier">T</span><span class="special">()</span></code>).
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_EXTERN_TEMPLATE</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The compiler does not support explicit instantiation forward declarations
+ for templates (<code class="computeroutput"><span class="keyword">extern</span> <span class="keyword">template</span> <span class="special">...</span></code>).
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The compiler does not support default template arguments for function
+ templates.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_INITIALIZER_LISTS</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The C++ compiler does not support C++0x initializer lists.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_LAMBDAS</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The compiler does not support Lambdas.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_LONG_LONG</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The compiler does not support <code class="computeroutput"><span class="keyword">long</span>
+ <span class="keyword">long</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_NOEXCEPT</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The compiler does not support <code class="computeroutput"><span class="identifier">noexcept</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_NULLPTR</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The compiler does not support <code class="computeroutput"><span class="identifier">nullptr</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_RAW_LITERALS</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The compiler does not support raw string literals.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_RVALUE_REFERENCES</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The compiler does not support r-value references.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_SCOPED_ENUMS</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The compiler does not support scoped enumerations (<code class="computeroutput"><span class="keyword">enum</span> <span class="keyword">class</span></code>).
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_STATIC_ASSERT</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The compiler does not support <code class="computeroutput"><span class="identifier">static_assert</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_STD_UNORDERD</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The standard library does not support &lt;unordered_map&gt; and
+ &lt;unordered_set&gt;.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_TEMPLATE_ALIASES</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The compiler does not support template aliases.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_UNICODE_LITERALS</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The compiler does not support Unicode (<code class="computeroutput"><span class="identifier">u8</span></code>,
+ <code class="computeroutput"><span class="identifier">u</span></code>, <code class="computeroutput"><span class="identifier">U</span></code>) literals.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The compiler does not support the <a href="http://en.wikipedia.org/wiki/C%2B%2B0x#Uniform_initialization" target="_top">C++11
+ Unified Initialization Syntax</a>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_VARIADIC_TEMPLATES</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The compiler does not support variadic templates.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_VARIADIC_MACROS</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The compiler does not support variadic macros.
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_config.boost_macro_reference.macros_that_allow_use_of_c__11_features_with_c__03_compilers"></a><a name="config_11_for_03"></a><a class="link" href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_allow_use_of_c__11_features_with_c__03_compilers" title="Macros that allow use of C++11 features with C++03 compilers">Macros
+ that allow use of C++11 features with C++03 compilers</a>
+</h3></div></div></div>
+<p>
+ The following macros allow use of C++11 features even with compilers that
+ do not yet provide compliant C++11 support.
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Macro
+ </p>
+ </th>
+<th>
+ <p>
+ Section
+ </p>
+ </th>
+<th>
+ <p>
+ Description
+ </p>
+ </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_CONSTEXPR</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Some compilers don't support the use of <code class="computeroutput"><span class="identifier">constexpr</span></code>.
+ This macro expands to nothing on those compilers, and <code class="computeroutput"><span class="identifier">constexpr</span></code> elsewhere. For example,
+ when defining a constexpr function or constructor replace:
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">constexpr</span> <span class="identifier">tuple</span><span class="special">();</span>
+</pre>
+<p>
+ with:
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">BOOST_CONSTEXPR</span> <span class="identifier">tuple</span><span class="special">();</span>
+</pre>
+<p>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_CONSTEXPR_OR_CONST</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Some compilers don't support the use of <code class="computeroutput"><span class="identifier">constexpr</span></code>.
+ This macro expands to <code class="computeroutput"><span class="keyword">const</span></code>
+ on those compilers, and <code class="computeroutput"><span class="identifier">constexpr</span></code>
+ elsewhere. For example, when defining const expr variables replace:
+
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">static</span> <span class="identifier">constexpr</span> <span class="identifier">UIntType</span> <span class="identifier">xor_mask</span> <span class="special">=</span> <span class="identifier">a</span><span class="special">;</span>
+</pre>
+<p>
+ with:
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">static</span> <span class="identifier">BOOST_CONSTEXPR_OR_CONST</span> <span class="identifier">UIntType</span> <span class="identifier">xor_mask</span> <span class="special">=</span> <span class="identifier">a</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_STATIC_CONSTEXPR</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ This is a shortcut for <code class="computeroutput"><span class="keyword">static</span>
+ <span class="identifier">BOOST_CONSTEXPR_OR_CONST</span></code>For
+ example, when defining const expr variables replace:
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">static</span> <span class="identifier">constexpr</span> <span class="identifier">UIntType</span> <span class="identifier">xor_mask</span> <span class="special">=</span> <span class="identifier">a</span><span class="special">;</span>
+</pre>
+<p>
+ with:
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">BOOST_STATIC_CONSTEXPR</span> <span class="identifier">UIntType</span> <span class="identifier">xor_mask</span> <span class="special">=</span> <span class="identifier">a</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">BOOST_NOEXCEPT</span>
+<span class="identifier">BOOST_NOEXCEPT_IF</span><span class="special">(</span><span class="identifier">Predicate</span><span class="special">)</span>
+<span class="identifier">BOOST_NOEXCEPT_EXPR</span><span class="special">(</span><span class="identifier">Expression</span><span class="special">)</span>
+</pre>
+<p>
+ </p>
+ </td>
+<td>
+ <p>
+ If <code class="computeroutput"><span class="identifier">BOOST_NO_NOEXCEPT</span></code>
+ is defined (i.e. C++03 compliant compilers) these macros are defined
+ as:
+ </p>
+ <div class="blockquote"><blockquote class="blockquote">
+<p>
+
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_NOEXCEPT</span>
+<span class="preprocessor">#define</span> <span class="identifier">BOOST_NOEXCEPT_IF</span><span class="special">(</span><span class="identifier">Predicate</span><span class="special">)</span>
+<span class="preprocessor">#define</span> <span class="identifier">BOOST_NOEXCEPT_EXPR</span><span class="special">(</span><span class="identifier">Expression</span><span class="special">)</span> <span class="keyword">false</span>
+</pre>
+<p>
+ </p>
+</blockquote></div>
+ <p>
+ If <code class="computeroutput"><span class="identifier">BOOST_NO_NOEXCEPT</span></code>
+ is not defined (i.e. C++11 compliant compilers) they are defined
+ as:
+ </p>
+ <div class="blockquote"><blockquote class="blockquote">
+<p>
+
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_NOEXCEPT</span> <span class="identifier">noexcept</span>
+<span class="preprocessor">#define</span> <span class="identifier">BOOST_NOEXCEPT_IF</span><span class="special">(</span><span class="identifier">Predicate</span><span class="special">)</span> <span class="identifier">noexcept</span><span class="special">((</span><span class="identifier">Predicate</span><span class="special">))</span>
+<span class="preprocessor">#define</span> <span class="identifier">BOOST_NOEXCEPT_EXPR</span><span class="special">(</span><span class="identifier">Expression</span><span class="special">)</span> <span class="identifier">noexcept</span><span class="special">((</span><span class="identifier">Expression</span><span class="special">))</span>
+</pre>
+<p>
+ </p>
+</blockquote></div>
+ </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_config.boost_macro_reference.boost_helper_macros"></a><a name="config_helpers"></a><a class="link" href="boost_macro_reference.html#boost_config.boost_macro_reference.boost_helper_macros" title="Boost Helper Macros">Boost
+ Helper Macros</a>
+</h3></div></div></div>
+<p>
+ The following macros are either simple helpers, or macros that provide workarounds
+ for compiler/standard library defects.
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Macro
+ </p>
+ </th>
+<th>
+ <p>
+ Description
+ </p>
+ </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_WORKAROUND</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ This macro is used where a compiler specific workaround is required
+ that is not otherwise described by one of the other Boost.Config
+ macros. To use the macro you must first
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">detail</span><span class="special">/</span><span class="identifier">workaround</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+</pre>
+<p>
+ usage is then:
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="preprocessor">#if</span> <span class="identifier">BOOST_WORKAROUND</span><span class="special">(</span><span class="identifier">MACRONAME</span><span class="special">,</span> <span class="identifier">CONDITION</span><span class="special">)</span>
+ <span class="comment">// workaround code goes here...</span>
+<span class="preprocessor">#else</span>
+ <span class="comment">// Standard conforming code goes here...</span>
+<span class="preprocessor">#endif</span>
+</pre>
+<p>
+ where <code class="computeroutput"><span class="identifier">MACRONAME</span></code>
+ is a macro that usually describes the version number to be tested
+ against, and <code class="computeroutput"><span class="identifier">CONDITION</span></code>
+ is a comparison operator followed by a value. For example <code class="computeroutput"><span class="identifier">BOOST_WORKAROUND</span><span class="special">(</span><span class="identifier">BOOST_INTEL</span><span class="special">,</span>
+ <span class="special">&lt;=</span> <span class="number">1010</span><span class="special">)</span></code> would evaluate to <code class="computeroutput"><span class="number">1</span></code> for Intel C++ 10.1 and earlier.
+ </p>
+ <p>
+ The macro can also be used with <code class="computeroutput"><span class="identifier">BOOST_TESTED_AT</span></code>
+ if all current compiler versions exhibit the issue, but the issue
+ is expected to be fixed at some later point.
+ </p>
+ <p>
+ For example <code class="computeroutput"><span class="identifier">BOOST_WORKAROUND</span><span class="special">(</span><span class="identifier">__BORLANDC__</span><span class="special">,</span> <span class="identifier">BOOST_TESTED_AT</span><span class="special">(</span><span class="number">0x590</span><span class="special">))</span></code> would normally evaluate to <code class="computeroutput"><span class="number">1</span></code> for all values of <code class="computeroutput"><span class="identifier">__BORLANDC__</span></code> <span class="emphasis"><em>unless</em></span>
+ the macro <code class="computeroutput"><span class="identifier">BOOST_DETECT_OUTDATED_WORKAROUNDS</span></code>
+ is defined, in which case evaluates to <code class="computeroutput"><span class="special">(</span><span class="identifier">__BORLANDC__</span> <span class="special">&lt;=</span>
+ <span class="number">0x590</span><span class="special">)</span></code>.
+ </p>
+ <p>
+ <span class="bold"><strong>Note</strong></span>: the ultimate source of documentation
+ for this macro is in <a href="../../../../../boost/detail/workaround.hpp" target="_top">boost/detail/workaround.hpp</a>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_PREVENT_MACRO_SUBSTITUTION</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Sometimes you have a function name with the same name as a C macro,
+ for example "min" and "max" member functions,
+ in which case one can prevent the function being expanded as a
+ macro using:
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">someclass</span><span class="special">.</span><span class="identifier">min</span> <span class="identifier">BOOST_PREVENT_MACRO_SUBSTITUTION</span><span class="special">(</span><span class="identifier">arg1</span><span class="special">,</span> <span class="identifier">arg2</span><span class="special">);</span>
+</pre>
+<p>
+ The following also works in most, but not all, contexts:
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="special">(</span><span class="identifier">someclass</span><span class="special">.</span><span class="identifier">max</span><span class="special">)(</span><span class="identifier">arg1</span><span class="special">,</span> <span class="identifier">arg2</span><span class="special">);</span>
+</pre>
+<p>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_DEDUCED_TYPENAME</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Some compilers don't support the use of typename for dependent
+ types in deduced contexts. This macro expands to nothing on those
+ compilers, and typename elsewhere. For example, replace: <code class="computeroutput"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">void</span>
+ <span class="identifier">f</span><span class="special">(</span><span class="identifier">T</span><span class="special">,</span>
+ <span class="keyword">typename</span> <span class="identifier">T</span><span class="special">::</span><span class="identifier">type</span><span class="special">);</span></code> with: <code class="computeroutput"><span class="keyword">template</span>
+ <span class="special">&lt;</span><span class="keyword">class</span>
+ <span class="identifier">T</span><span class="special">&gt;</span>
+ <span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">BOOST_DEDUCED_TYPENAME</span>
+ <span class="identifier">T</span><span class="special">::</span><span class="identifier">type</span><span class="special">);</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_HASH_MAP_HEADER</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The header to include to get the SGI <code class="computeroutput"><span class="identifier">hash_map</span></code>
+ class. This macro is only available if <code class="computeroutput"><span class="identifier">BOOST_HAS_HASH</span></code>
+ is defined.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_HASH_SET_HEADER</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The header to include to get the SGI <code class="computeroutput"><span class="identifier">hash_set</span></code>
+ class. This macro is only available if <code class="computeroutput"><span class="identifier">BOOST_HAS_HASH</span></code>
+ is defined.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_SLIST_HEADER</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The header to include to get the SGI <code class="computeroutput"><span class="identifier">slist</span></code>
+ class. This macro is only available if <code class="computeroutput"><span class="identifier">BOOST_HAS_SLIST</span></code>
+ is defined.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_STD_EXTENSION_NAMESPACE</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The namespace used for std library extensions (hashtable classes
+ etc).
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_STATIC_CONSTANT</span><span class="special">(</span><span class="identifier">Type</span><span class="special">,</span> <span class="identifier">assignment</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ On compilers which don't allow in-class initialization of static
+ integral constant members, we must use enums as a workaround if
+ we want the constants to be available at compile-time. This macro
+ gives us a convenient way to declare such constants. For example
+ instead of:
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">struct</span> <span class="identifier">foo</span><span class="special">{</span>
+ <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">int</span> <span class="identifier">value</span> <span class="special">=</span> <span class="number">2</span><span class="special">;</span>
+<span class="special">};</span>
+</pre>
+<p>
+ use:
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">struct</span> <span class="identifier">foo</span><span class="special">{</span>
+ <span class="identifier">BOOST_STATIC_CONSTANT</span><span class="special">(</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">value</span> <span class="special">=</span> <span class="number">2</span><span class="special">);</span>
+<span class="special">};</span>
+</pre>
+<p>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_UNREACHABLE_RETURN</span><span class="special">(</span><span class="identifier">result</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Normally evaluates to nothing, but evaluates to return x; if the
+ compiler requires a return, even when it can never be reached.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_EXPLICIT_TEMPLATE_TYPE</span><span class="special">(</span><span class="identifier">t</span><span class="special">)</span></code> <code class="computeroutput"><span class="identifier">BOOST_EXPLICIT_TEMPLATE_NON_TYPE</span><span class="special">(</span><span class="identifier">t</span><span class="special">,</span><span class="identifier">v</span><span class="special">)</span></code> <code class="computeroutput"><span class="identifier">BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE</span><span class="special">(</span><span class="identifier">t</span><span class="special">)</span></code> <code class="computeroutput"><span class="identifier">BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE</span><span class="special">(</span><span class="identifier">t</span><span class="special">,</span><span class="identifier">v</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Some compilers silently "fold" different function template
+ instantiations if some of the template parameters don't appear
+ in the function parameter list. For instance:
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
+<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">ostream</span><span class="special">&gt;</span>
+<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">typeinfo</span><span class="special">&gt;</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">int</span> <span class="identifier">n</span><span class="special">&gt;</span>
+<span class="keyword">void</span> <span class="identifier">f</span><span class="special">()</span> <span class="special">{</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">n</span> <span class="special">&lt;&lt;</span> <span class="char">' '</span><span class="special">;</span> <span class="special">}</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<span class="keyword">void</span> <span class="identifier">g</span><span class="special">()</span> <span class="special">{</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="keyword">typeid</span><span class="special">(</span><span class="identifier">T</span><span class="special">).</span><span class="identifier">name</span><span class="special">()</span> <span class="special">&lt;&lt;</span> <span class="char">' '</span><span class="special">;</span> <span class="special">}</span>
+
+<span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span> <span class="special">{</span>
+ <span class="identifier">f</span><span class="special">&lt;</span><span class="number">1</span><span class="special">&gt;();</span>
+ <span class="identifier">f</span><span class="special">&lt;</span><span class="number">2</span><span class="special">&gt;();</span>
+
+ <span class="identifier">g</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;();</span>
+ <span class="identifier">g</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;();</span>
+<span class="special">}</span>
+</pre>
+<p>
+ incorrectly outputs <code class="literal">2 2 double double</code> on VC++
+ 6. These macros, to be used in the function parameter list, fix
+ the problem without effects on the calling syntax. For instance,
+ in the case above write:
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">int</span> <span class="identifier">n</span><span class="special">&gt;</span>
+<span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">BOOST_EXPLICIT_TEMPLATE_NON_TYPE</span><span class="special">(</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">n</span><span class="special">))</span> <span class="special">{</span> <span class="special">...</span> <span class="special">}</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<span class="keyword">void</span> <span class="identifier">g</span><span class="special">(</span><span class="identifier">BOOST_EXPLICIT_TEMPLATE_TYPE</span><span class="special">(</span><span class="identifier">T</span><span class="special">))</span> <span class="special">{</span> <span class="special">...</span> <span class="special">}</span>
+</pre>
+<p>
+ Beware that they can declare (for affected compilers) a dummy defaulted
+ parameter, so they
+ </p>
+ <p>
+ <span class="bold"><strong>a)</strong></span> should be always invoked <span class="bold"><strong>at the end</strong></span> of the parameter list
+ </p>
+ <p>
+ <span class="bold"><strong>b)</strong></span> can't be used if your function
+ template is multiply declared.
+ </p>
+ <p>
+ Furthermore, in order to add any needed comma separator, an <code class="computeroutput"><span class="identifier">APPEND_</span><span class="special">*</span></code>
+ version must be used when the macro invocation appears after a
+ normal parameter declaration or after the invocation of another
+ macro of this same group.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_USE_FACET</span><span class="special">(</span><span class="identifier">Type</span><span class="special">,</span> <span class="identifier">loc</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ When the standard library does not have a comforming <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">use_facet</span></code> there are various workarounds
+ available, but they differ from library to library. This macro
+ provides a consistent way to access a locale's facets. For example,
+ replace: <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">use_facet</span><span class="special">&lt;</span><span class="identifier">Type</span><span class="special">&gt;(</span><span class="identifier">loc</span><span class="special">);</span></code>
+ with: <code class="computeroutput"><span class="identifier">BOOST_USE_FACET</span><span class="special">(</span><span class="identifier">Type</span><span class="special">,</span> <span class="identifier">loc</span><span class="special">);</span></code> Note do not add a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span></code>
+ prefix to the front of <code class="computeroutput"><span class="identifier">BOOST_USE_FACET</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_HAS_FACET</span><span class="special">(</span><span class="identifier">Type</span><span class="special">,</span> <span class="identifier">loc</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ When the standard library does not have a comforming <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">has_facet</span></code> there are various workarounds
+ available, but they differ from library to library. This macro
+ provides a consistent way to check a locale's facets. For example,
+ replace: <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">has_facet</span><span class="special">&lt;</span><span class="identifier">Type</span><span class="special">&gt;(</span><span class="identifier">loc</span><span class="special">);</span></code>
+ with: <code class="computeroutput"><span class="identifier">BOOST_HAS_FACET</span><span class="special">(</span><span class="identifier">Type</span><span class="special">,</span> <span class="identifier">loc</span><span class="special">);</span></code> Note do not add a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span></code>
+ prefix to the front of <code class="computeroutput"><span class="identifier">BOOST_HAS_FACET</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NESTED_TEMPLATE</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Member templates are supported by some compilers even though they
+ can't use the <code class="computeroutput"><span class="identifier">A</span><span class="special">::</span><span class="keyword">template</span>
+ <span class="identifier">member</span><span class="special">&lt;</span><span class="identifier">U</span><span class="special">&gt;</span></code>
+ syntax, as a workaround replace: <code class="computeroutput"><span class="keyword">typedef</span>
+ <span class="keyword">typename</span> <span class="identifier">A</span><span class="special">::</span><span class="keyword">template</span>
+ <span class="identifier">rebind</span><span class="special">&lt;</span><span class="identifier">U</span><span class="special">&gt;</span>
+ <span class="identifier">binder</span><span class="special">;</span></code>
+ with: <code class="computeroutput"><span class="keyword">typedef</span> <span class="keyword">typename</span>
+ <span class="identifier">A</span><span class="special">::</span><span class="identifier">BOOST_NESTED_TEMPLATE</span> <span class="identifier">rebind</span><span class="special">&lt;</span><span class="identifier">U</span><span class="special">&gt;</span> <span class="identifier">binder</span><span class="special">;</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_STRINGIZE</span><span class="special">(</span><span class="identifier">X</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Converts the parameter <code class="computeroutput"><span class="identifier">X</span></code>
+ to a string after macro replacement on <code class="computeroutput"><span class="identifier">X</span></code>
+ has been performed.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_JOIN</span><span class="special">(</span><span class="identifier">X</span><span class="special">,</span><span class="identifier">Y</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ This piece of macro magic joins the two arguments together, even
+ when one of the arguments is itself a macro (see 16.3.1 in C++
+ standard). This is normally used to create a mangled name in combination
+ with a predefined macro such a __LINE__.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_FORCEINLINE</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ This macro can be used in place of the <code class="computeroutput"><span class="keyword">inline</span></code>
+ keyword to instruct the compiler that a function should always
+ be inlined. Overuse of this macro can lead to significant bloat,
+ while good use can increase performance in certain cases, such
+ as computation-intensive code built through generative programming
+ techniques.
+ </p>
+ <p>
+ Usage example:
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<span class="identifier">BOOST_FORCEINLINE</span> <span class="identifier">T</span><span class="special">&amp;</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">T</span><span class="special">&amp;</span> <span class="identifier">t</span><span class="special">)</span>
+<span class="special">{</span>
+ <span class="keyword">return</span> <span class="identifier">t</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+ </p>
+ <p>
+ Note that use of this macro can lead to cryptic error messages
+ with some compilers. Consider defining it to <code class="computeroutput"><span class="keyword">inline</span></code>
+ before including the Boost.Config header in order to be able to
+ debug errors more easily.
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_config.boost_macro_reference.boost_informational_macros"></a><a name="config_info_macros"></a><a class="link" href="boost_macro_reference.html#boost_config.boost_macro_reference.boost_informational_macros" title="Boost Informational Macros">Boost
+ Informational Macros</a>
+</h3></div></div></div>
+<p>
+ The following macros describe boost features; these are, generally speaking
+ the only boost macros that should be tested in user code.
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Macro
+ </p>
+ </th>
+<th>
+ <p>
+ Header
+ </p>
+ </th>
+<th>
+ <p>
+ Description
+ </p>
+ </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_VERSION</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">version</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Describes the boost version number in XYYYZZ format such that:
+ <code class="computeroutput"><span class="special">(</span><span class="identifier">BOOST_VERSION</span>
+ <span class="special">%</span> <span class="number">100</span><span class="special">)</span></code> is the sub-minor version, <code class="computeroutput"><span class="special">((</span><span class="identifier">BOOST_VERSION</span>
+ <span class="special">/</span> <span class="number">100</span><span class="special">)</span> <span class="special">%</span> <span class="number">1000</span><span class="special">)</span></code>
+ is the minor version, and <code class="computeroutput"><span class="special">(</span><span class="identifier">BOOST_VERSION</span> <span class="special">/</span>
+ <span class="number">100000</span><span class="special">)</span></code>
+ is the major version.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_INT64_T</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">cstdint</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stdint</span><span class="special">.</span><span class="identifier">h</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Defined if there are no 64-bit integral types: <code class="computeroutput"><span class="identifier">int64_t</span></code>,
+ <code class="computeroutput"><span class="identifier">uint64_t</span></code> etc.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_INTEGRAL_INT64_T</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">cstdint</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stdint</span><span class="special">.</span><span class="identifier">h</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Defined if <code class="computeroutput"><span class="identifier">int64_t</span></code>
+ as defined by <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">cstdint</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ is not usable in integral constant expressions.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_MSVC</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Defined if the compiler is really Microsoft Visual C++, as opposed
+ to one of the many other compilers that also define <code class="computeroutput"><span class="identifier">_MSC_VER</span></code>. Has the same value
+ as _MSC_VER.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_MSVC_FULL_VER</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Defined to a normalised 9 digit version of _MSC_FULL_VER (which
+ sometimes only has 8 digits), the macro has the form VVMMPPPPP
+ where VV is the major version number, MM is the minor version number,
+ and PPPPP is the compiler build number.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_INTEL</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Defined if the compiler is an Intel compiler, takes the same value
+ as the compiler version macro.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_CLANG</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Defined to 1 if the compiler is the Clang compiler.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_WINDOWS</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Defined if the Windows platform API is available.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_DINKUMWARE_STDLIB</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Defined if the dinkumware standard library is in use, takes the
+ same value as the Dinkumware library version macro <code class="computeroutput"><span class="identifier">_CPPLIB_VER</span></code> if defined, otherwise
+ 1.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_WREGEX</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">regex</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Defined if the regex library does not support wide character regular
+ expressions.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_COMPILER</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Defined as a string describing the name and version number of the
+ compiler in use. Mainly for debugging the configuration.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_STDLIB</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Defined as a string describing the name and version number of the
+ standard library in use. Mainly for debugging the configuration.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_PLATFORM</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Defined as a string describing the name of the platform. Mainly
+ for debugging the configuration.
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_config.boost_macro_reference.macros_for_libraries_with_separate_source_code"></a><a class="link" href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_for_libraries_with_separate_source_code" title="Macros for libraries with separate source code">Macros
+ for libraries with separate source code</a>
+</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_for_libraries_with_separate_source_code.macros_controlling_shared_library_symbol_visibility">Macros
+ controlling shared library symbol visibility</a></span></dt>
+<dt><span class="section"><a href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_for_libraries_with_separate_source_code.abi_fixing">ABI
+ Fixing</a></span></dt>
+<dt><span class="section"><a href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_for_libraries_with_separate_source_code.automatic_library_selection">Automatic
+ library selection</a></span></dt>
+</dl></div>
+<p>
+ The following macros and helper headers are of use to authors whose libraries
+ include separate source code, and are intended to address several issues:
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+ Controlling shared library symbol visibility
+ </li>
+<li class="listitem">
+ Fixing the ABI of the compiled library
+ </li>
+<li class="listitem">
+ Selecting which compiled library to link against based upon the compilers
+ settings
+ </li>
+</ul></div>
+<p>
+ See <a href="http://svn.boost.org/trac/boost/wiki/Guidelines/Separate" target="_top">Guidelines
+ for Authors of Boost Libraries Containing Separate Source</a>
+ </p>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="boost_config.boost_macro_reference.macros_for_libraries_with_separate_source_code.macros_controlling_shared_library_symbol_visibility"></a><a class="link" href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_for_libraries_with_separate_source_code.macros_controlling_shared_library_symbol_visibility" title="Macros controlling shared library symbol visibility">Macros
+ controlling shared library symbol visibility</a>
+</h4></div></div></div>
+<p>
+ Some compilers support C++ extensions that control which symbols will be
+ exported from shared libraries such as dynamic shared objects (DSO's) on
+ Unix-like systems or dynamic-link libraries (DLL's) on Windows.
+ </p>
+<p>
+ The Microsoft VC++ compiler has long supplied <code class="computeroutput"><span class="identifier">__declspec</span><span class="special">(</span><span class="identifier">dllexport</span><span class="special">)</span></code> and <code class="computeroutput"><span class="identifier">__declspec</span><span class="special">(</span><span class="identifier">dllimport</span><span class="special">)</span></code> extensions for this purpose, as do virtually
+ all other compilers targeting the Windows platform.
+ </p>
+<p>
+ Modern versions of the GNU GCC compiler provide the <code class="computeroutput"><span class="identifier">__attribute__</span><span class="special">((</span><span class="identifier">visibility</span><span class="special">(</span><span class="string">"default"</span><span class="special">)))</span></code> extension to indicate that a symbol
+ should be exported. All other symbols may be hidden by using the <code class="computeroutput"><span class="special">-</span><span class="identifier">fvisibility</span><span class="special">-</span><span class="identifier">hidden</span></code>
+ or <code class="computeroutput"><span class="special">-</span><span class="identifier">fvisibility</span><span class="special">-</span><span class="identifier">ms</span><span class="special">-</span><span class="identifier">compat</span></code> compiler switches.
+ </p>
+<p>
+ Boost supplies several macros to make it easier to manage symbol visibility
+ in a way that is portable between compilers and operating systems.
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Macro
+ </p>
+ </th>
+<th>
+ <p>
+ Description
+ </p>
+ </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_SYMBOL_EXPORT</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Defines the syntax of a C++ language extension that indicates
+ a symbol is to be exported from a shared library. If the compiler
+ has no such extension, the macro is defined with no replacement
+ text.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_SYMBOL_IMPORT</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Defines the syntax of a C++ language extension that indicates
+ a symbol is to be imported from a shared library. If the compiler
+ has no such extension, the macro is defined with no replacement
+ text.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_SYMBOL_VISIBLE</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Defines the syntax of a C++ language extension that indicates
+ a symbol is to be globally visible. If the compiler has no such
+ extension, the macro is defined with no replacement text. Needed
+ for classes that are not otherwise exported, but are used by
+ RTTI. Examples include class for objects that will be thrown
+ as exceptions or used in dynamic_casts, across shared library
+ boundaries. For example, a header-only exception class might
+ look like this:
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">class</span> <span class="identifier">BOOST_SYMBOL_VISIBLE</span> <span class="identifier">my_exception</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">runtime_error</span> <span class="special">{</span> <span class="special">...</span> <span class="special">};</span>
+</pre>
+<p>
+ Without BOOST_SYMBOL_VISIBLE, it would be impossible to catch
+ my_exception thrown from a shared library compiled by GCC with
+ the -fvisibility=hidden option.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_HAS_DECLSPEC</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The compiler has C++ extensions <code class="computeroutput"><span class="identifier">__declspec</span><span class="special">(</span><span class="identifier">dllexport</span><span class="special">)</span></code> and <code class="computeroutput"><span class="identifier">__declspec</span><span class="special">(</span><span class="identifier">dllimport</span><span class="special">)</span></code> to control export/import of
+ symbols from shared libraries. <span class="emphasis"><em>Deprecated. This macro
+ is no longer necessary since BOOST_SYMBOL_EXPORT and BOOST_SYMBOL_IMPORT
+ are now supplied. It is provided to support legacy code.</em></span>
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+<p>
+ Typical usage:
+ </p>
+<p>
+ <span class="bold"><strong>boost/foo/config.hpp</strong></span>
+ </p>
+<pre class="programlisting"><span class="special">...</span>
+<span class="preprocessor">#if</span> <span class="identifier">defined</span><span class="special">(</span><span class="identifier">BOOST_ALL_DYN_LINK</span><span class="special">)</span> <span class="special">||</span> <span class="identifier">defined</span><span class="special">(</span><span class="identifier">BOOST_FOO_DYN_LINK</span><span class="special">)</span>
+<span class="preprocessor"># if</span> <span class="identifier">defined</span><span class="special">(</span><span class="identifier">BOOST_FOO_SOURCE</span><span class="special">)</span>
+<span class="preprocessor"># define</span> <span class="identifier">BOOST_FOO_DECL</span> <span class="identifier">BOOST_SYMBOL_EXPORT</span>
+<span class="preprocessor"># else</span>
+<span class="preprocessor"># define</span> <span class="identifier">BOOST_FOO_DECL</span> <span class="identifier">BOOST_SYMBOL_IMPORT</span>
+<span class="preprocessor"># endif</span>
+<span class="preprocessor">#else</span>
+<span class="preprocessor"># define</span> <span class="identifier">BOOST_FOO_DECL</span>
+<span class="preprocessor">#endif</span>
+<span class="special">...</span>
+</pre>
+<p>
+ <span class="bold"><strong>boost/foo/foo.hpp</strong></span>
+ </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">foo</span><span class="special">/</span><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<span class="special">...</span>
+<span class="keyword">class</span> <span class="identifier">BOOST_FOO_DECL</span> <span class="identifier">bar</span> <span class="special">{</span> <span class="special">...</span> <span class="special">};</span>
+<span class="special">...</span>
+<span class="keyword">void</span> <span class="identifier">BOOST_FOO_DECL</span> <span class="identifier">f</span><span class="special">();</span>
+<span class="special">...</span>
+</pre>
+<p>
+ <span class="bold"><strong>boost/libs/foo/src/foo.cpp</strong></span>
+ </p>
+<pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_FOO_SOURCE</span>
+<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">foo</span><span class="special">/</span><span class="identifier">foo</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<span class="special">...</span>
+<span class="keyword">void</span> <span class="identifier">BOOST_FOO_DECL</span> <span class="identifier">f</span><span class="special">()</span>
+<span class="special">{</span>
+ <span class="special">...</span>
+<span class="special">}</span>
+<span class="special">...</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="boost_config.boost_macro_reference.macros_for_libraries_with_separate_source_code.abi_fixing"></a><a class="link" href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_for_libraries_with_separate_source_code.abi_fixing" title="ABI Fixing">ABI
+ Fixing</a>
+</h4></div></div></div>
+<p>
+ When linking against a pre-compiled library it vital that the ABI used
+ by the compiler when building the library <span class="emphasis"><em>matches exactly</em></span>
+ the ABI used by the code using the library. In this case ABI means things
+ like the struct packing arrangement used, the name mangling scheme used,
+ or the size of some types (enum types for example). This is separate from
+ things like threading support, or runtime library variations, which have
+ to be dealt with by build variants. To put this in perspective there is
+ one compiler (Borland's) that has so many compiler options that make subtle
+ changes to the ABI, that at least in theory there 3200 combinations, and
+ that's without considering runtime library variations. Fortunately these
+ variations can be managed by <code class="computeroutput"><span class="preprocessor">#pragma</span></code>'s
+ that tell the compiler what ABI to use for the types declared in your library.
+ In order to avoid sprinkling <code class="computeroutput"><span class="preprocessor">#pragma</span></code>'s
+ all over the boost headers, there are some prefix and suffix headers that
+ do the job. Typical usage is:
+ </p>
+<p>
+ <span class="bold"><strong>my_library.hpp</strong></span>
+ </p>
+<pre class="programlisting"><span class="preprocessor">#ifndef</span> <span class="identifier">MY_INCLUDE_GUARD</span>
+<span class="preprocessor">#define</span> <span class="identifier">MY_INCLUDE_GUARD</span>
+
+<span class="comment">// all includes go here:</span>
+<code class="literal"><span class="bold"><strong>#include &lt;boost/config.hpp&gt;</strong></span></code>
+<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">whatever</span><span class="special">&gt;</span>
+
+<code class="literal"><span class="bold"><strong>#include &lt;boost/config/abi_prefix.hpp&gt;</strong></span></code> <span class="comment">// must be the last #include</span>
+
+<span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+
+<span class="comment">// your code goes here</span>
+
+<span class="special">}</span>
+
+<code class="literal"><span class="bold"><strong>#include &lt;boost/config/abi_suffix.hpp&gt;</strong></span></code> <span class="comment">// pops abi_prefix.hpp pragmas</span>
+
+<span class="preprocessor">#endif</span> <span class="comment">// include guard</span>
+</pre>
+<p>
+ <span class="bold"><strong>my_library.cpp</strong></span>
+ </p>
+<pre class="programlisting"><span class="special">...</span>
+<span class="comment">// nothing special need be done in the implementation file</span>
+<span class="special">...</span>
+</pre>
+<p>
+ The user can disable this mechanism by defining <code class="computeroutput"><span class="identifier">BOOST_DISABLE_ABI_HEADERS</span></code>,
+ or they can define <code class="computeroutput"><span class="identifier">BOOST_ABI_PREFIX</span></code>
+ and/or <code class="computeroutput"><span class="identifier">BOOST_ABI_SUFFIX</span></code>
+ to point to their own prefix/suffix headers if they so wish.
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="boost_config.boost_macro_reference.macros_for_libraries_with_separate_source_code.automatic_library_selection"></a><a class="link" href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_for_libraries_with_separate_source_code.automatic_library_selection" title="Automatic library selection">Automatic
+ library selection</a>
+</h4></div></div></div>
+<p>
+ It is essential that users link to a build of a library which was built
+ against the same runtime library that their application will be built against
+ -if this does not happen then the library will not be binary compatible
+ with their own code- and there is a high likelihood that their application
+ will experience runtime crashes. These kinds of problems can be extremely
+ time consuming and difficult to debug, and often lead to frustrated users
+ and authors alike (simply selecting the right library to link against is
+ not as easy as it seems when their are 6-8 of them to chose from, and some
+ users seem to be blissfully unaware that there even are different runtimes
+ available to them).
+ </p>
+<p>
+ To solve this issue, some compilers allow source code to contain <code class="computeroutput"><span class="preprocessor">#pragma</span></code>'s that instruct the linker
+ which library to link against, all the user need do is include the headers
+ they need, place the compiled libraries in their library search path, and
+ the compiler and linker do the rest. Boost.config supports this via the
+ header <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">auto_link</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>, before including this header one or
+ more of the following macros need to be defined:
+ </p>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">BOOST_LIB_NAME</span></code></span></dt>
+<dd><p>
+ Required: An identifier containing the basename of the library, for
+ example 'boost_regex'.
+ </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">BOOST_DYN_LINK</span></code></span></dt>
+<dd><p>
+ Optional: when set link to dll rather than static library.
+ </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">BOOST_LIB_DIAGNOSTIC</span></code></span></dt>
+<dd><p>
+ Optional: when set the header will print out the name of the library
+ selected (useful for debugging).
+ </p></dd>
+</dl>
+</div>
+<p>
+ If the compiler supports this mechanism, then it will be told to link against
+ the appropriately named library, the actual algorithm used to mangle the
+ name of the library is documented inside <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">auto_link</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ and has to match that used to create the libraries via bjam 's install
+ rules.
+ </p>
+<p>
+ <span class="bold"><strong>my_library.hpp</strong></span>
+ </p>
+<pre class="programlisting"><span class="special">...</span>
+<span class="comment">//</span>
+<span class="comment">// Don't include auto-linking code if the user has disabled it by</span>
+<span class="comment">// defining BOOST_ALL_NO_LIB, or BOOST_MY_LIBRARY_NO_LIB, or if this </span>
+<span class="comment">// is one of our own source files (signified by BOOST_MY_LIBRARY_SOURCE):</span>
+<span class="comment">//</span>
+<span class="preprocessor">#if</span> <span class="special">!</span><span class="identifier">defined</span><span class="special">(</span><span class="identifier">BOOST_ALL_NO_LIB</span><span class="special">)</span> <span class="special">&amp;&amp;</span> <span class="special">!</span><span class="identifier">defined</span><span class="special">(</span><span class="identifier">BOOST_MY_LIBRARY_NO_LIB</span><span class="special">)</span> <span class="special">&amp;&amp;</span> <span class="special">!</span><span class="identifier">defined</span><span class="special">(</span><span class="identifier">BOOST_MY_LIBRARY_SOURCE</span><span class="special">)</span>
+<span class="preprocessor"># define</span> <span class="identifier">BOOST_LIB_NAME</span> <span class="identifier">boost_my_library</span>
+<span class="preprocessor"># ifdef</span> <span class="identifier">BOOST_MY_LIBRARY_DYN_LINK</span>
+<span class="preprocessor"># define</span> <span class="identifier">BOOST_DYN_LINK</span>
+<span class="preprocessor"># endif</span>
+<span class="preprocessor"># include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">auto_link</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<span class="preprocessor">#endif</span>
+<span class="special">...</span>
+</pre>
+<p>
+ <span class="bold"><strong>my_library.cpp</strong></span>
+ </p>
+<pre class="programlisting"><span class="comment">// define BOOST_MY_LIBRARY_SOURCE so that the header knows that the</span>
+<span class="comment">// library is being built (possibly exporting rather than importing code)</span>
+<span class="comment">//</span>
+<span class="preprocessor">#define</span> <span class="identifier">BOOST_MY_LIBRARY_SOURCE</span>
+
+<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">my_library</span><span class="special">/</span><span class="identifier">my_library</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<span class="special">...</span>
+</pre>
+</div>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Beman Dawes, Vesa Karvonen, John
+ Maddock<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../index.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="guidelines_for_boost_authors.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/libs/config/doc/html/boost_config/guidelines_for_boost_authors.html b/libs/config/doc/html/boost_config/guidelines_for_boost_authors.html
new file mode 100644
index 0000000000..cbc7dbce94
--- /dev/null
+++ b/libs/config/doc/html/boost_config/guidelines_for_boost_authors.html
@@ -0,0 +1,377 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Guidelines for Boost Authors</title>
+<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="../index.html" title="Boost.Config">
+<link rel="up" href="../index.html" title="Boost.Config">
+<link rel="prev" href="boost_macro_reference.html" title="Boost Macro Reference">
+<link rel="next" href="rationale.html" title="Rationale">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
+<td align="center"><a href="../../../../../index.html">Home</a></td>
+<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
+<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
+<td align="center"><a href="../../../../../more/index.htm">More</a></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="boost_macro_reference.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="rationale.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="boost_config.guidelines_for_boost_authors"></a><a class="link" href="guidelines_for_boost_authors.html" title="Guidelines for Boost Authors">Guidelines for
+ Boost Authors</a>
+</h2></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="guidelines_for_boost_authors.html#boost_config.guidelines_for_boost_authors.warnings">Disabling
+ Compiler Warnings</a></span></dt>
+<dt><span class="section"><a href="guidelines_for_boost_authors.html#boost_config.guidelines_for_boost_authors.adding_new_defect_macros">Adding
+ New Defect Macros</a></span></dt>
+<dt><span class="section"><a href="guidelines_for_boost_authors.html#boost_config.guidelines_for_boost_authors.adding_new_feature_test_macros">Adding
+ New Feature Test Macros</a></span></dt>
+<dt><span class="section"><a href="guidelines_for_boost_authors.html#boost_config.guidelines_for_boost_authors.modifying_the_boost_configuration_headers">Modifying
+ the Boost Configuration Headers</a></span></dt>
+</dl></div>
+<p>
+ The <a href="../../../../../boost/config.hpp" target="_top">&lt;boost/config.hpp&gt;</a>
+ header is used to pass configuration information to other boost files, allowing
+ them to cope with platform dependencies such as arithmetic byte ordering, compiler
+ pragmas, or compiler shortcomings. Without such configuration information,
+ many current compilers would not work with the Boost libraries.
+ </p>
+<p>
+ Centralizing configuration information in this header reduces the number of
+ files that must be modified when porting libraries to new platforms, or when
+ compilers are updated. Ideally, no other files would have to be modified when
+ porting to a new platform.
+ </p>
+<p>
+ Configuration headers are controversial because some view them as condoning
+ broken compilers and encouraging non-standard subsets. Adding settings for
+ additional platforms and maintaining existing settings can also be a problem.
+ In other words, configuration headers are a necessary evil rather than a desirable
+ feature. The boost config.hpp policy is designed to minimize the problems and
+ maximize the benefits of a configuration header.
+ </p>
+<p>
+ Note that:
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+ Boost library implementers are not required to "<code class="computeroutput"><span class="preprocessor">#include</span>
+ <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>", and are not required in any
+ way to support compilers that do not comply with the C++ Standard (ISO/IEC
+ 14882).
+ </li>
+<li class="listitem">
+ If a library implementer wishes to support some non-conforming compiler,
+ or to support some platform specific feature, "<code class="computeroutput"><span class="preprocessor">#include</span>
+ <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>" is the preferred way to obtain
+ configuration information not available from the standard headers such
+ as <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">climits</span><span class="special">&gt;</span></code>, etc.
+ </li>
+<li class="listitem">
+ If configuration information can be deduced from standard headers such
+ as <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">climits</span><span class="special">&gt;</span></code>, use those standard headers rather
+ than <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>.
+ </li>
+<li class="listitem">
+ Boost files that use macros defined in <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ should have sensible, standard conforming, default behavior if the macro
+ is not defined. This means that the starting point for porting <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> to a new platform is simply to define
+ nothing at all specific to that platform. In the rare case where there
+ is no sensible default behavior, an #error message should describe the
+ problem.
+ </li>
+<li class="listitem">
+ If a Boost library implementer wants something added to <code class="computeroutput"><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span></code>,
+ post a request on the Boost mailing list. There is no guarantee such a
+ request will be honored; the intent is to limit the complexity of config.hpp.
+ </li>
+<li class="listitem">
+ The intent is to support only compilers which appear on their way to becoming
+ C++ Standard compliant, and only recent releases of those compilers at
+ that.
+ </li>
+<li class="listitem">
+ The intent is not to disable mainstream features now well-supported by
+ the majority of compilers, such as namespaces, exceptions, RTTI, or templates.
+ </li>
+</ul></div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_config.guidelines_for_boost_authors.warnings"></a><a class="link" href="guidelines_for_boost_authors.html#boost_config.guidelines_for_boost_authors.warnings" title="Disabling Compiler Warnings">Disabling
+ Compiler Warnings</a>
+</h3></div></div></div>
+<p>
+ The header <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">warning_disable</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ can be used to disable certain compiler warings that are hard or impossible
+ to otherwise remove.
+ </p>
+<p>
+ Note that:
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+ This header <span class="bold"><strong><span class="emphasis"><em>should never be included
+ by another Boost header</em></span></strong></span>, it should only ever be
+ used by a library source file or a test case.
+ </li>
+<li class="listitem">
+ The header should be included <span class="bold"><strong><span class="emphasis"><em>before
+ you include any other header</em></span></strong></span>.
+ </li>
+<li class="listitem">
+ This header only disables warnings that are hard or impossible to otherwise
+ deal with, and which are typically emitted by one compiler only, or in
+ one compilers own standard library headers.
+ </li>
+</ul></div>
+<p>
+ Currently it disables the following warnings:
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Compiler
+ </p>
+ </th>
+<th>
+ <p>
+ Warning
+ </p>
+ </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+ <p>
+ Visual C++ 8 and later
+ </p>
+ </td>
+<td>
+ <p>
+ <a href="http://msdn2.microsoft.com/en-us/library/ttcz0bys(VS.80).aspx" target="_top">C4996</a>:
+ Error 'function': was declared deprecated
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ Intel C++
+ </p>
+ </td>
+<td>
+ <p>
+ Warning 1786: relates to the use of "deprecated" standard
+ library functions rather like C4996 in Visual C++.
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_config.guidelines_for_boost_authors.adding_new_defect_macros"></a><a class="link" href="guidelines_for_boost_authors.html#boost_config.guidelines_for_boost_authors.adding_new_defect_macros" title="Adding New Defect Macros">Adding
+ New Defect Macros</a>
+</h3></div></div></div>
+<p>
+ When you need to add a new defect macro - either to fix a problem with an
+ existing library, or when adding a new library - distil the issue down to
+ a simple test case; often, at this point other (possibly better) workarounds
+ may become apparent. Secondly always post the test case code to the boost
+ mailing list and invite comments; remember that C++ is complex and that sometimes
+ what may appear a defect, may in fact turn out to be a problem with the authors
+ understanding of the standard.
+ </p>
+<p>
+ When you name the macro, follow the <code class="computeroutput"><span class="identifier">BOOST_NO_</span></code><span class="emphasis"><em>SOMETHING</em></span>
+ naming convention, so that it's obvious that this is a macro reporting a
+ defect.
+ </p>
+<p>
+ Finally, add the test program to the regression tests. You will need to place
+ the test case in a <code class="computeroutput"><span class="special">.</span><span class="identifier">ipp</span></code>
+ file with the following comments near the top:
+ </p>
+<pre class="programlisting"><span class="comment">// MACRO: BOOST_NO_FOO</span>
+<span class="comment">// TITLE: foo</span>
+<span class="comment">// DESCRIPTION: If the compiler fails to support foo</span>
+</pre>
+<p>
+ These comments are processed by the autoconf script, so make sure the format
+ follows the one given. The file should be named "<code class="computeroutput"><span class="identifier">boost_no_foo</span><span class="special">.</span><span class="identifier">ipp</span></code>",
+ where foo is the defect description - try and keep the file name under the
+ Mac 30 character filename limit though. You will also need to provide a function
+ prototype "<code class="computeroutput"><span class="keyword">int</span> <span class="identifier">test</span><span class="special">()</span></code>" that is declared in a namespace with
+ the same name as the macro, but in all lower case, and which returns zero
+ on success:
+ </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost_no_foo</span> <span class="special">{</span>
+<span class="keyword">int</span> <span class="identifier">test</span><span class="special">()</span>
+<span class="special">{</span>
+ <span class="comment">// test code goes here:</span>
+ <span class="comment">//</span>
+ <span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
+<span class="special">}</span>
+
+<span class="special">}</span>
+</pre>
+<p>
+ Once the test code is in place in libs/config/test, updating the configuration
+ test system proceeds as:
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+ cd into <code class="computeroutput"><span class="identifier">libs</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">tools</span></code> and run <code class="computeroutput"><span class="identifier">bjam</span></code>.
+ This generates the <code class="computeroutput"><span class="special">.</span><span class="identifier">cpp</span></code>
+ file test cases from the <code class="computeroutput"><span class="special">.</span><span class="identifier">ipp</span></code> file, updates the libs/config/test/all/Jamfile.v2,
+ <code class="computeroutput"><span class="identifier">config_test</span><span class="special">.</span><span class="identifier">cpp</span></code> and <code class="computeroutput"><span class="identifier">config_info</span><span class="special">.</span><span class="identifier">cpp</span></code>.<br>
+ <br>
+ </li>
+<li class="listitem">
+ cd into <code class="computeroutput"><span class="identifier">libs</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">test</span><span class="special">/</span><span class="identifier">all</span></code> and run <code class="computeroutput"><span class="identifier">bjam</span>
+ </code><span class="emphasis"><em>MACRONAME<code class="computeroutput"> <span class="identifier">compiler</span><span class="special">-</span><span class="identifier">list</span></code></em></span>,
+ where <span class="emphasis"><em>MACRONAME</em></span> is the name of the new macro, and
+ <span class="emphasis"><em><code class="computeroutput"><span class="identifier">compiler</span><span class="special">-</span><span class="identifier">list</span></code></em></span> is a space separated
+ list of compilers to test with.<br> <br> The xxx_pass_test and the
+ xxx_fail_test <span class="bold"><strong>should both report <code class="computeroutput"><span class="special">**</span><span class="identifier">passed</span><span class="special">**</span></code></strong></span>.<br> <br> If <span class="emphasis"><em>MACRONAME</em></span>
+ is not defined when it should be defined, xxx_pass_test will not report
+ <code class="computeroutput"><span class="special">**</span><span class="identifier">passed</span><span class="special">**</span></code>. If <span class="emphasis"><em>MACRONAME</em></span>
+ is defined when it should not be defined, xxx_fail_test will not report
+ <code class="computeroutput"><span class="special">**</span><span class="identifier">passed</span><span class="special">**</span></code>.<br> <br>
+ </li>
+<li class="listitem">
+ cd into <code class="computeroutput"><span class="identifier">libs</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">test</span></code> and run <code class="computeroutput"><span class="identifier">bjam</span>
+ <span class="identifier">config_info</span> <span class="identifier">config_test</span>
+ </code><span class="emphasis"><em><code class="computeroutput"><span class="identifier">compiler</span><span class="special">-</span><span class="identifier">list</span></code></em></span>.
+ <code class="computeroutput"><span class="identifier">config_info</span></code> should build
+ and run cleanly for all the compilers in <span class="emphasis"><em><code class="computeroutput"><span class="identifier">compiler</span><span class="special">-</span><span class="identifier">list</span></code></em></span>
+ while <code class="computeroutput"><span class="identifier">config_test</span></code> should
+ fail for those that have the defect, and pass for those that do not.
+ </li>
+</ul></div>
+<p>
+ Then you should:
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+ Define the defect macro in those config headers that require it.
+ </li>
+<li class="listitem">
+ Document the macro in this documentation (please do not forget this step!!)
+ </li>
+<li class="listitem">
+ Commit everything.
+ </li>
+<li class="listitem">
+ Keep an eye on the regression tests for new failures in Boost.Config
+ caused by the addition.
+ </li>
+<li class="listitem">
+ Start using the macro.
+ </li>
+</ul></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_config.guidelines_for_boost_authors.adding_new_feature_test_macros"></a><a class="link" href="guidelines_for_boost_authors.html#boost_config.guidelines_for_boost_authors.adding_new_feature_test_macros" title="Adding New Feature Test Macros">Adding
+ New Feature Test Macros</a>
+</h3></div></div></div>
+<p>
+ When you need to add a macro that describes a feature that the standard does
+ not require, follow the convention for adding a new defect macro (above),
+ but call the macro <code class="computeroutput"><span class="identifier">BOOST_HAS_FOO</span></code>,
+ and name the test file "<code class="computeroutput"><span class="identifier">boost_has_foo</span><span class="special">.</span><span class="identifier">ipp</span></code>".
+ Try not to add feature test macros unnecessarily, if there is a platform
+ specific macro that can already be used (for example <code class="computeroutput"><span class="identifier">_WIN32</span></code>,
+ <code class="computeroutput"><span class="identifier">__BEOS__</span></code>, or <code class="computeroutput"><span class="identifier">__linux</span></code>) to identify the feature then use
+ that. Try to keep the macro to a feature group, or header name, rather than
+ one specific API (for example <code class="computeroutput"><span class="identifier">BOOST_HAS_NL_TYPES_H</span></code>
+ rather than <code class="computeroutput"><span class="identifier">BOOST_HAS_CATOPEN</span></code>).
+ If the macro describes a POSIX feature group, then add boilerplate code to
+ <a href="../../../../../boost/config/user.hpp" target="_top">&lt;boost/config/suffix.hpp&gt;</a>
+ to auto-detect the feature where possible (if you are wondering why we can't
+ use POSIX feature test macro directly, remember that many of these features
+ can be added by third party libraries, and are not therefore identified inside
+ <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">unistd</span><span class="special">.</span><span class="identifier">h</span><span class="special">&gt;</span></code>).
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_config.guidelines_for_boost_authors.modifying_the_boost_configuration_headers"></a><a class="link" href="guidelines_for_boost_authors.html#boost_config.guidelines_for_boost_authors.modifying_the_boost_configuration_headers" title="Modifying the Boost Configuration Headers">Modifying
+ the Boost Configuration Headers</a>
+</h3></div></div></div>
+<p>
+ The aim of boost's configuration setup is that the configuration headers
+ should be relatively stable - a boost user should not have to recompile their
+ code just because the configuration for some compiler that they're not interested
+ in has changed. Separating the configuration into separate compiler/standard
+ library/platform sections provides for part of this stability, but boost
+ authors require some amount of restraint as well, in particular:
+ </p>
+<p>
+ <a href="../../../../../boost/config.hpp" target="_top">&lt;boost/config.hpp&gt;</a>
+ should never change, don't alter this file.
+ </p>
+<p>
+ <a href="../../../../../boost/config/user.hpp" target="_top">&lt;boost/config/user.hpp&gt;</a>
+ is included by default, don't add extra code to this file unless you have
+ to. If you do, please remember to update <a href="../../../tools/configure.in" target="_top">libs/config/tools/configure.in</a>
+ as well.
+ </p>
+<p>
+ <a href="../../../../../boost/config/user.hpp" target="_top">&lt;boost/config/suffix.hpp&gt;</a>
+ is always included so be careful about modifying this file as it breaks dependencies
+ for everyone. This file should include only "boilerplate" configuration
+ code, and generally should change only when new macros are added.
+ </p>
+<p>
+ <a href="../../../../../boost/config/select_compiler_config.hpp" target="_top">&lt;boost/config/select_compiler_config.hpp&gt;</a>,
+ <a href="../../../../../boost/config/select_platform_config.hpp" target="_top">&lt;boost/config/select_platform_config.hpp&gt;</a>
+ and <a href="../../../../../boost/config/select_stdlib_config.hpp" target="_top">&lt;boost/config/select_stdlib_config.hpp&gt;</a>
+ are included by default and should change only if support for a new compiler/standard
+ library/platform is added.
+ </p>
+<p>
+ The compiler/platform/standard library selection code is set up so that unknown
+ platforms are ignored and assumed to be fully standards compliant - this
+ gives unknown platforms a "sporting chance" of working "as
+ is" even without running the configure script.
+ </p>
+<p>
+ When adding or modifying the individual mini-configs, assume that future,
+ as yet unreleased versions of compilers, have all the defects of the current
+ version. Although this is perhaps unnecessarily pessimistic, it cuts down
+ on the maintenance of these files, and experience suggests that pessimism
+ is better placed than optimism here!
+ </p>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Beman Dawes, Vesa Karvonen, John
+ Maddock<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="boost_macro_reference.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="rationale.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/libs/config/doc/html/boost_config/rationale.html b/libs/config/doc/html/boost_config/rationale.html
new file mode 100644
index 0000000000..d62510c12d
--- /dev/null
+++ b/libs/config/doc/html/boost_config/rationale.html
@@ -0,0 +1,124 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Rationale</title>
+<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="../index.html" title="Boost.Config">
+<link rel="up" href="../index.html" title="Boost.Config">
+<link rel="prev" href="guidelines_for_boost_authors.html" title="Guidelines for Boost Authors">
+<link rel="next" href="acknowledgements.html" title="Acknowledgements">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
+<td align="center"><a href="../../../../../index.html">Home</a></td>
+<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
+<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
+<td align="center"><a href="../../../../../more/index.htm">More</a></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="guidelines_for_boost_authors.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="acknowledgements.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="boost_config.rationale"></a><a class="link" href="rationale.html" title="Rationale">Rationale</a>
+</h2></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="rationale.html#boost_config.rationale.the_problem">The problem</a></span></dt>
+<dt><span class="section"><a href="rationale.html#boost_config.rationale.the_solution">The solution</a></span></dt>
+</dl></div>
+<p>
+ The problem with many traditional "textbook" implementations of configuration
+ headers (where all the configuration options are in a single "monolithic"
+ header) is that they violate certain fundamental software engineering principles
+ which would have the effect of making boost more fragile, more difficult to
+ maintain and more difficult to use safely. You can find a description of the
+ principles from the <a href="http://www.objectmentor.com/resources/articles/Principles_and_Patterns.pdf" target="_top">following
+ article</a>.
+ </p>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_config.rationale.the_problem"></a><a class="link" href="rationale.html#boost_config.rationale.the_problem" title="The problem">The problem</a>
+</h3></div></div></div>
+<p>
+ Consider a situation in which you are concurrently developing on multiple
+ platforms. Then consider adding a new platform or changing the platform definitions
+ of an existing platform. What happens? Everything, and this does literally
+ mean everything, recompiles. Isn't it quite absurd that adding a new platform,
+ which has absolutely nothing to do with previously existing platforms, means
+ that all code on all existing platforms needs to be recompiled?
+ </p>
+<p>
+ Effectively, there is an imposed physical dependency between platforms that
+ have nothing to do with each other. Essentially, the traditional solution
+ employed by configuration headers does not conform to the Open-Closed Principle:
+ </p>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <span class="bold"><strong>"A module should be open for extension but closed
+ for modification."</strong></span>
+ </p></blockquote></div>
+<p>
+ Extending a traditional configuration header implies modifying existing code.
+ </p>
+<p>
+ Furthermore, consider the complexity and fragility of the platform detection
+ code. What if a simple change breaks the detection on some minor platform?
+ What if someone accidentally or on purpose (as a workaround for some other
+ problem) defines some platform dependent macros that are used by the detection
+ code? A traditional configuration header is one of the most volatile headers
+ of the entire library, and more stable elements of Boost would depend on
+ it. This violates the Stable Dependencies Principle:
+ </p>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <span class="bold"><strong>"Depend in the direction of stability."</strong></span>
+ </p></blockquote></div>
+<p>
+ After even a minor change to a traditional configuration header on one minor
+ platform, almost everything on every platform should be tested if we follow
+ sound software engineering practice.
+ </p>
+<p>
+ Another important issue is that it is not always possible to submit changes
+ to <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>.
+ Some boost users are currently working on platforms using tools and libraries
+ that are under strict Non-Disclosure Agreements. In this situation it is
+ impossible to submit changes to a traditional monolithic configuration header,
+ instead some method by which the user can insert their own configuration
+ code must be provided.
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_config.rationale.the_solution"></a><a class="link" href="rationale.html#boost_config.rationale.the_solution" title="The solution">The solution</a>
+</h3></div></div></div>
+<p>
+ The approach taken by boost's configuration headers is to separate configuration
+ into three orthogonal parts: the compiler, the standard library and the platform.
+ Each compiler/standard library/platform gets its own mini-configuration header,
+ so that changes to one compiler's configuration (for example) does not affect
+ other compilers. In addition there are measures that can be taken both to
+ omit the compiler/standard library/platform detection code (so that adding
+ support to a new platform does not break dependencies), or to freeze the
+ configuration completely; providing almost complete protection against dependency
+ changes.
+ </p>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Beman Dawes, Vesa Karvonen, John
+ Maddock<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="guidelines_for_boost_authors.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="acknowledgements.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/libs/config/doc/html/index.html b/libs/config/doc/html/index.html
new file mode 100644
index 0000000000..9dc678b1f2
--- /dev/null
+++ b/libs/config/doc/html/index.html
@@ -0,0 +1,958 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Boost.Config</title>
+<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="Boost.Config">
+<link rel="next" href="boost_config/boost_macro_reference.html" title="Boost Macro Reference">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center"><a href="../../../../index.html">Home</a></td>
+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
+<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
+<td align="center"><a href="../../../../more/index.htm">More</a></td>
+</tr></table>
+<hr>
+<div class="spirit-nav"><a accesskey="n" href="boost_config/boost_macro_reference.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a></div>
+<div class="article">
+<div class="titlepage">
+<div>
+<div><h2 class="title">
+<a name="config"></a>Boost.Config</h2></div>
+<div><div class="authorgroup"><div class="author"><h3 class="author">
+<span class="firstname">Vesa Karvonen, John Maddock</span> <span class="surname">Beman Dawes</span>
+</h3></div></div></div>
+<div><p class="copyright">Copyright &#169; 2001-2007 Beman Dawes, Vesa Karvonen, John
+ Maddock</p></div>
+<div><div class="legalnotice">
+<a name="id988561"></a><p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
+ </p>
+</div></div>
+</div>
+<hr>
+</div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<dl>
+<dt><span class="section"><a href="index.html#boost_config.configuring_boost_for_your_platform">Configuring
+ Boost for Your Platform</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="index.html#boost_config.configuring_boost_for_your_platform.using_the_default_boost_configuration">Using
+ the default boost configuration</a></span></dt>
+<dt><span class="section"><a href="index.html#boost_config.configuring_boost_for_your_platform.the__boost_config_hpp__header">The
+ &lt;boost/config.hpp&gt; header</a></span></dt>
+<dt><span class="section"><a href="index.html#boost_config.configuring_boost_for_your_platform.using_the_configure_script">Using
+ the configure script</a></span></dt>
+<dt><span class="section"><a href="index.html#boost_config.configuring_boost_for_your_platform.user_settable_options">User
+ settable options</a></span></dt>
+<dt><span class="section"><a href="index.html#boost_config.configuring_boost_for_your_platform.advanced_configuration_usage">Advanced
+ configuration usage</a></span></dt>
+<dt><span class="section"><a href="index.html#boost_config.configuring_boost_for_your_platform.testing_the_boost_configuration">Testing
+ the boost configuration</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="boost_config/boost_macro_reference.html">Boost Macro Reference</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_c__03_defects">Macros
+ that describe C++03 defects</a></span></dt>
+<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_optional_features">Macros
+ that describe optional features</a></span></dt>
+<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_possible_c___future_features">Macros
+ that describe possible C++ future features</a></span></dt>
+<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_c__11_features_not_supported">Macros
+ that describe C++11 features not supported</a></span></dt>
+<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_allow_use_of_c__11_features_with_c__03_compilers">Macros
+ that allow use of C++11 features with C++03 compilers</a></span></dt>
+<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.boost_helper_macros">Boost
+ Helper Macros</a></span></dt>
+<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.boost_informational_macros">Boost
+ Informational Macros</a></span></dt>
+<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.macros_for_libraries_with_separate_source_code">Macros
+ for libraries with separate source code</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="boost_config/guidelines_for_boost_authors.html">Guidelines for
+ Boost Authors</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="boost_config/guidelines_for_boost_authors.html#boost_config.guidelines_for_boost_authors.warnings">Disabling
+ Compiler Warnings</a></span></dt>
+<dt><span class="section"><a href="boost_config/guidelines_for_boost_authors.html#boost_config.guidelines_for_boost_authors.adding_new_defect_macros">Adding
+ New Defect Macros</a></span></dt>
+<dt><span class="section"><a href="boost_config/guidelines_for_boost_authors.html#boost_config.guidelines_for_boost_authors.adding_new_feature_test_macros">Adding
+ New Feature Test Macros</a></span></dt>
+<dt><span class="section"><a href="boost_config/guidelines_for_boost_authors.html#boost_config.guidelines_for_boost_authors.modifying_the_boost_configuration_headers">Modifying
+ the Boost Configuration Headers</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="boost_config/rationale.html">Rationale</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="boost_config/rationale.html#boost_config.rationale.the_problem">The problem</a></span></dt>
+<dt><span class="section"><a href="boost_config/rationale.html#boost_config.rationale.the_solution">The solution</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="boost_config/acknowledgements.html">Acknowledgements</a></span></dt>
+</dl>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="boost_config.configuring_boost_for_your_platform"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform" title="Configuring Boost for Your Platform">Configuring
+ Boost for Your Platform</a>
+</h2></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="index.html#boost_config.configuring_boost_for_your_platform.using_the_default_boost_configuration">Using
+ the default boost configuration</a></span></dt>
+<dt><span class="section"><a href="index.html#boost_config.configuring_boost_for_your_platform.the__boost_config_hpp__header">The
+ &lt;boost/config.hpp&gt; header</a></span></dt>
+<dt><span class="section"><a href="index.html#boost_config.configuring_boost_for_your_platform.using_the_configure_script">Using
+ the configure script</a></span></dt>
+<dt><span class="section"><a href="index.html#boost_config.configuring_boost_for_your_platform.user_settable_options">User
+ settable options</a></span></dt>
+<dt><span class="section"><a href="index.html#boost_config.configuring_boost_for_your_platform.advanced_configuration_usage">Advanced
+ configuration usage</a></span></dt>
+<dt><span class="section"><a href="index.html#boost_config.configuring_boost_for_your_platform.testing_the_boost_configuration">Testing
+ the boost configuration</a></span></dt>
+</dl></div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_config.configuring_boost_for_your_platform.using_the_default_boost_configuration"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.using_the_default_boost_configuration" title="Using the default boost configuration">Using
+ the default boost configuration</a>
+</h3></div></div></div>
+<p>
+ Boost comes already configured for most common compilers and platforms; you
+ should be able to use boost "as is". Since the compiler is configured
+ separately from the standard library, the default configuration should work
+ even if you replace the compiler's standard library with a third-party standard
+ library (like <a href="http://stlport.sourceforge.net" target="_top">STLport</a>).
+ </p>
+<p>
+ Using boost "as is" without trying to reconfigure is the recommended
+ method for using boost. You can, however, run the configure script if you
+ want to, and there are regression tests provided that allow you to test the
+ current boost configuration with your particular compiler setup.
+ </p>
+<p>
+ Boost library users can request support for additional compilers or platforms
+ by visiting our <a href="https://svn.boost.org/trac/boost/newticket" target="_top">Trac</a>
+ and submitting a support request.
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_config.configuring_boost_for_your_platform.the__boost_config_hpp__header"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.the__boost_config_hpp__header" title="The &lt;boost/config.hpp&gt; header">The
+ &lt;boost/config.hpp&gt; header</a>
+</h3></div></div></div>
+<p>
+ Boost library implementations access configuration macros via
+ </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <a href="../../../../boost/config.hpp" target="_top">&lt;boost/config.hpp&gt;</a>
+</pre>
+<p>
+ While Boost library users are not required to include that file directly,
+ or use those configuration macros, such use is acceptable. The configuration
+ macros are documented as to their purpose, usage, and limitations which makes
+ them usable by both Boost library and user code.
+ </p>
+<p>
+ Boost <a class="link" href="boost_config/boost_macro_reference.html#config_info_macros">informational</a> or <a class="link" href="boost_config/boost_macro_reference.html#config_helpers">helper</a>
+ macros are designed for use by Boost users as well as for our own internal
+ use. Note however, that the <a class="link" href="boost_config/boost_macro_reference.html#config_features">feature test</a>
+ and <a class="link" href="boost_config/boost_macro_reference.html#config_defects">defect test</a> macros were designed
+ for internal use by Boost libraries, not user code, so they can change at
+ any time (though no gratuitous changes are made to them). Boost library problems
+ resulting from changes to the configuration macros are caught by the Boost
+ regression tests, so the Boost libraries are updated to account for those
+ changes. By contrast, Boost library user code can be adversely affected by
+ changes to the macros without warning. The best way to keep abreast of changes
+ to the macros used in user code is to monitor the discussions on the Boost
+ developers list.
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_config.configuring_boost_for_your_platform.using_the_configure_script"></a><a name="config_config_script"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.using_the_configure_script" title="Using the configure script">Using
+ the configure script</a>
+</h3></div></div></div>
+<div class="important"><table border="0" summary="Important">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="../../../../doc/src/images/important.png"></td>
+<th align="left">Important</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+ This configure script only sets up the Boost headers for use with a particular
+ compiler. It has no effect on Boost.Build, or how the libraries are built.
+ </p></td></tr>
+</table></div>
+<p>
+ If you know that boost is incorrectly configured for your particular setup,
+ and you are on a UNIX like platform, then you may want to try and improve
+ things by running the boost configure script. From a shell command prompt
+ you will need to cd into <span class="emphasis"><em>&lt;boost-root&gt;</em></span><code class="computeroutput"><span class="special">/</span><span class="identifier">libs</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span></code>
+ and type:
+ </p>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">sh</span> <span class="special">./</span><span class="identifier">configure</span></code>
+ </p></blockquote></div>
+<p>
+ you will see a list of the items being checked as the script works its way
+ through the regression tests. Note that the configure script only really
+ auto-detects your compiler if it's called g++, c++ or CC. If you are using
+ some other compiler you will need to set one or more of the following environment
+ variables:
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Variable
+ </p>
+ </th>
+<th>
+ <p>
+ Description
+ </p>
+ </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+ <p>
+ CXX
+ </p>
+ </td>
+<td>
+ <p>
+ The name of the compiler, for example <code class="computeroutput"><span class="identifier">c</span><span class="special">++</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ CXXFLAGS
+ </p>
+ </td>
+<td>
+ <p>
+ The compiler flags to use, for example <code class="computeroutput"><span class="special">-</span><span class="identifier">O2</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ LDFLAGS
+ </p>
+ </td>
+<td>
+ <p>
+ The linker flags to use, for example <code class="computeroutput"><span class="special">-</span><span class="identifier">L</span><span class="special">/</span><span class="identifier">mypath</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ LIBS
+ </p>
+ </td>
+<td>
+ <p>
+ Any libraries to link in, for example <code class="computeroutput"><span class="special">-</span><span class="identifier">lpthread</span></code>.
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+<p>
+ For example to run the configure script with HP aCC, you might use something
+ like:
+ </p>
+<pre class="programlisting"><span class="keyword">export</span> <span class="identifier">CXX</span><span class="special">=</span><span class="string">"aCC"</span>
+<span class="keyword">export</span> <span class="identifier">CXXFLAGS</span><span class="special">=</span><span class="string">"-Aa -DAportable -D__HPACC_THREAD_SAFE_RB_TREE \
+ -DRWSTD_MULTI_THREAD -DRW_MULTI_THREAD -D_REENTRANT -D_THREAD_SAFE"</span>
+<span class="keyword">export</span> <span class="identifier">LDFLAGS</span><span class="special">=</span><span class="string">"-DAportable"</span>
+<span class="keyword">export</span> <span class="identifier">LIBS</span><span class="special">=</span><span class="string">"-lpthread"</span>
+<span class="identifier">sh</span> <span class="special">./</span><span class="identifier">configure</span>
+</pre>
+<p>
+ However you run the configure script, when it finishes you will find a new
+ header -<code class="computeroutput"><span class="identifier">user</span><span class="special">.</span><span class="identifier">hpp</span></code>- located in the <span class="emphasis"><em>&lt;boost-root&gt;</em></span><code class="computeroutput"><span class="special">/</span><span class="identifier">libs</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span></code>
+ directory. <span class="bold"><strong>Note that configure does not install this
+ header into your boost include path by default</strong></span>. This header contains
+ all the options generated by the configure script, plus a header-section
+ that contains the user settable options from the default version of <a href="../../../../boost/config/user.hpp" target="_top">&lt;boost/config/user.hpp&gt;</a>
+ (located under <span class="emphasis"><em>&lt;boost-root&gt;</em></span><code class="computeroutput"><span class="special">/</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span></code>).
+ There are two ways you can use this header:
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+ <span class="bold"><strong>Option 1:</strong></span> copy the header into <span class="emphasis"><em>&lt;boost-root&gt;</em></span><code class="computeroutput"><span class="special">/</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span></code> so that it replaces the default user.hpp
+ provided by boost. This option allows only one configure-generated setup;
+ boost developers should avoid this option, as it incurs the danger of
+ accidentally committing a configure-modified <a href="../../../../boost/config/user.hpp" target="_top">&lt;boost/config/user.hpp&gt;</a>
+ to the cvs repository (something you will not be thanked for!).
+ </li>
+<li class="listitem">
+ <span class="bold"><strong>Option 2:</strong></span> give the header a more memorable
+ name, and place it somewhere convenient; then, define the macro <code class="computeroutput"><span class="identifier">BOOST_USER_CONFIG</span></code> to point to it. For
+ example create a new sub-directory <span class="emphasis"><em>&lt;boost-root&gt;</em></span><code class="computeroutput"><span class="special">/</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span></code> <code class="computeroutput"><span class="identifier">user</span><span class="special">/</span></code>, and copy the header there; for example
+ as <code class="computeroutput"><span class="identifier">multithread</span><span class="special">-</span><span class="identifier">gcc</span><span class="special">-</span><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span></code>. Then, when compiling add the command
+ line option: <code class="computeroutput"><span class="special">-</span><span class="identifier">DBOOST_USER_CONFIG</span><span class="special">=</span><span class="string">"&lt;boost/config/user/multithread-gcc-config.hpp&gt;"</span></code>,
+ and boost will use the new configuration header. This option allows you
+ to generate more than one configuration header, and to keep them separate
+ from the boost source - so that updates to the source do not interfere
+ with your configuration.
+ </li>
+</ul></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_config.configuring_boost_for_your_platform.user_settable_options"></a><a name="config_user_settable"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.user_settable_options" title="User settable options">User
+ settable options</a>
+</h3></div></div></div>
+<p>
+ There are some configuration-options that represent user choices, rather
+ than compiler defects or platform specific options. These are listed in
+ <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">user</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ and at the start of a configure-generated <code class="computeroutput"><span class="identifier">user</span><span class="special">.</span><span class="identifier">hpp</span></code> header.
+ You can define these on the command line, or by editing <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">user</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>, they are listed in the following table:
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Macro
+ </p>
+ </th>
+<th>
+ <p>
+ Description
+ </p>
+ </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_USER_CONFIG</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ When defined, it should point to the name of the user configuration
+ file to include prior to any boost configuration files. When not
+ defined, defaults to <a href="../../../../boost/config/user.hpp" target="_top"><code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">user</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_COMPILER_CONFIG</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ When defined, it should point to the name of the compiler configuration
+ file to use. Defining this cuts out the compiler selection logic,
+ and eliminates the dependency on the header containing that logic.
+ For example if you are using gcc, then you could define BOOST_COMPILER_CONFIG
+ to <a href="../../../../boost/config/compiler/gcc.hpp" target="_top"><code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">compiler</span><span class="special">/</span><span class="identifier">gcc</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_STDLIB_CONFIG</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ When defined, it should point to the name of the standard library
+ configuration file to use. Defining this cuts out the standard
+ library selection logic, and eliminates the dependency on the header
+ containing that logic. For example if you are using STLport, then
+ you could define <code class="computeroutput"><span class="identifier">BOOST_STDLIB_CONFIG</span></code>
+ to <a href="../../../../boost/config/stdlib/stlport.hpp" target="_top"><code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">stdlib</span><span class="special">/</span><span class="identifier">stlport</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_PLATFORM_CONFIG</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ When defined, it should point to the name of the platform configuration
+ file to use. Defining this cuts out the platform selection logic,
+ and eliminates the dependency on the header containing that logic.
+ For example if you are compiling on linux, then you could define
+ <code class="computeroutput"><span class="identifier">BOOST_PLATFORM_CONFIG</span></code>
+ to <a href="../../../../boost/config/platform/linux.hpp" target="_top"><code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">platform</span><span class="special">/</span><span class="identifier">linux</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_COMPILER_CONFIG</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ When defined, no compiler configuration file is selected or included,
+ define when the compiler is fully conformant with the standard,
+ or where the user header (see <code class="computeroutput"><span class="identifier">BOOST_USER_CONFIG</span></code>),
+ has had any options necessary added to it, for example by an autoconf
+ generated configure script.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_STDLIB_CONFIG</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ When defined, no standard library configuration file is selected
+ or included, define when the standard library is fully conformant
+ with the standard, or where the user header (see <code class="computeroutput"><span class="identifier">BOOST_USER_CONFIG</span></code>), has had any
+ options necessary added to it, for example by an autoconf generated
+ configure script.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_PLATFORM_CONFIG</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ When defined, no platform configuration file is selected or included,
+ define when the platform is fully conformant with the standard
+ (and has no useful extra features), or where the user header (see
+ <code class="computeroutput"><span class="identifier">BOOST_USER_CONFIG</span></code>),
+ has had any options necessary added to it, for example by an autoconf
+ generated configure script.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CONFIG</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Equivalent to defining all of <code class="computeroutput"><span class="identifier">BOOST_NO_COMPILER_CONFIG</span></code>,
+ <code class="computeroutput"><span class="identifier">BOOST_NO_STDLIB_CONFIG</span></code>
+ and <code class="computeroutput"><span class="identifier">BOOST_NO_PLATFORM_CONFIG</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_STRICT_CONFIG</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The normal behavior for compiler versions that are newer than the
+ last known version, is to assume that they have all the same defects
+ as the last known version. By setting this define, then compiler
+ versions that are newer than the last known version are assumed
+ to be fully conforming with the standard. This is probably most
+ useful for boost developers or testers, and for those who want
+ to use boost to test beta compiler versions.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_ASSERT_CONFIG</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ When this flag is set, if the config finds anything unknown, then
+ it will stop with a #error rather than continue. Boost regression
+ testers should set this define, as should anyone who wants to quickly
+ check whether boost is supported on their platform.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_DISABLE_THREADS</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ When defined, disables threading support, even if the compiler
+ in its current translation mode supports multiple threads.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_DISABLE_WIN32</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ When defined, disables the use of Win32 specific API's, even when
+ these are available. Also has the effect of setting <code class="computeroutput"><span class="identifier">BOOST_DISABLE_THREADS</span></code> unless
+ <code class="computeroutput"><span class="identifier">BOOST_HAS_PTHREADS</span></code>
+ is set. This option may be set automatically by the config system
+ when it detects that the compiler is in "strict mode".
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_DISABLE_ABI_HEADERS</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Stops boost headers from including any prefix/suffix headers that
+ normally control things like struct packing and alignment.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_ABI_PREFIX</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ A prefix header to include in place of whatever boost.config would
+ normally select, any replacement should set up struct packing and
+ alignment options as required.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_ABI_SUFFIX</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ A suffix header to include in place of whatever boost.config would
+ normally select, any replacement should undo the effects of the
+ prefix header.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_ALL_DYN_LINK</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Forces all libraries that have separate source, to be linked as
+ dll's rather than static libraries on Microsoft Windows (this macro
+ is used to turn on <code class="computeroutput"><span class="identifier">__declspec</span><span class="special">(</span><span class="identifier">dllimport</span><span class="special">)</span></code> modifiers, so that the compiler
+ knows which symbols to look for in a dll rather than in a static
+ library). Note that there may be some libraries that can only be
+ statically linked (Boost.Test for example) and others which may
+ only be dynamically linked (Boost.Threads for example), in these
+ cases this macro has no effect.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_</span></code><span class="emphasis"><em>WHATEVER</em></span><code class="computeroutput"><span class="identifier">_DYN_LINK</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Forces library "whatever" to be linked as a dll rather
+ than a static library on Microsoft Windows: replace the <span class="emphasis"><em>WHATEVER</em></span>
+ part of the macro name with the name of the library that you want
+ to dynamically link to, for example use <code class="computeroutput"><span class="identifier">BOOST_DATE_TIME_DYN_LINK</span></code>
+ or <code class="computeroutput"><span class="identifier">BOOST_REGEX_DYN_LINK</span></code>
+ etc (this macro is used to turn on <code class="computeroutput"><span class="identifier">__declspec</span><span class="special">(</span><span class="identifier">dllimport</span><span class="special">)</span></code> modifiers, so that the compiler
+ knows which symbols to look for in a dll rather than in a static
+ library). Note that there may be some libraries that can only be
+ statically linked (Boost.Test for example) and others which may
+ only be dynamically linked (Boost.Threads for example), in these
+ cases this macro is unsupported.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_ALL_NO_LIB</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Tells the config system not to automatically select which libraries
+ to link against. Normally if a compiler supports #pragma lib, then
+ the correct library build variant will be automatically selected
+ and linked against, simply by the act of including one of that
+ library's headers. This macro turns that feature off.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_</span></code><span class="emphasis"><em>WHATEVER</em></span><code class="computeroutput"><span class="identifier">_NO_LIB</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Tells the config system not to automatically select which library
+ to link against for library "whatever", replace <span class="emphasis"><em>WHATEVER</em></span>
+ in the macro name with the name of the library; for example <code class="computeroutput"><span class="identifier">BOOST_DATE_TIME_NO_LIB</span></code> or <code class="computeroutput"><span class="identifier">BOOST_REGEX_NO_LIB</span></code>. Normally
+ if a compiler supports <code class="computeroutput"><span class="preprocessor">#pragma</span>
+ <span class="identifier">lib</span></code>, then the correct
+ library build variant will be automatically selected and linked
+ against, simply by the act of including one of that library's headers.
+ This macro turns that feature off.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_LIB_DIAGNOSTIC</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Causes the auto-linking code to output diagnostic messages indicating
+ the name of the library that is selected for linking.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_LIB_TOOLSET</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Overrides the name of the toolset part of the name of library being
+ linked to; note if defined this must be defined to a quoted string
+ literal, for example "abc".
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_config.configuring_boost_for_your_platform.advanced_configuration_usage"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.advanced_configuration_usage" title="Advanced configuration usage">Advanced
+ configuration usage</a>
+</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="index.html#boost_config.configuring_boost_for_your_platform.advanced_configuration_usage.example_1__creating_our_own_frozen_configuration">Example
+ 1, creating our own frozen configuration</a></span></dt>
+<dt><span class="section"><a href="index.html#boost_config.configuring_boost_for_your_platform.advanced_configuration_usage.example_2__skipping_files_that_you_don_t_need">Example
+ 2: skipping files that you don't need</a></span></dt>
+<dt><span class="section"><a href="index.html#boost_config.configuring_boost_for_your_platform.advanced_configuration_usage.example_3__using_configure_script_to_freeze_the_boost_configuration">Example
+ 3: using configure script to freeze the boost configuration</a></span></dt>
+</dl></div>
+<p>
+ By setting various macros on the compiler command line or by editing <a href="../../../../boost/config/user.hpp" target="_top">&lt;boost/config/user.hpp&gt;</a>,
+ the boost configuration setup can be optimised in a variety of ways.
+ </p>
+<p>
+ Boost's configuration is structured so that the user-configuration is included
+ first (defaulting to <a href="../../../../boost/config/user.hpp" target="_top">&lt;boost/config/user.hpp&gt;</a>
+ if <code class="computeroutput"><span class="identifier">BOOST_USER_CONFIG</span></code> is not
+ defined). This sets up any user-defined policies, and gives the user-configuration
+ a chance to influence what happens next.
+ </p>
+<p>
+ Next the compiler, standard library, and platform configuration files are
+ included. These are included via macros (<code class="computeroutput"><span class="identifier">BOOST_COMPILER_CONFIG</span></code>
+ etc, <a class="link" href="index.html#config_user_settable">see user settable macros</a>),
+ and if the corresponding macro is undefined then a separate header that detects
+ which compiler/standard library/platform is in use is included in order to
+ set these. The config can be told to ignore these headers altogether if the
+ corresponding <code class="computeroutput"><span class="identifier">BOOST_NO_XXX</span></code>
+ macro is set (for example <code class="computeroutput"><span class="identifier">BOOST_NO_COMPILER_CONFIG</span></code>
+ to disable including any compiler configuration file - <a class="link" href="index.html#config_user_settable">see
+ user settable macros</a>).
+ </p>
+<p>
+ Finally the boost configuration header, includes <a href="../../../../boost/config/user.hpp" target="_top">&lt;boost/config/suffix.hpp&gt;</a>;
+ this header contains any boiler plate configuration code - for example where
+ one boost macro being set implies that another must be set also.
+ </p>
+<p>
+ The following usage examples represent just a few of the possibilities:
+ </p>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="boost_config.configuring_boost_for_your_platform.advanced_configuration_usage.example_1__creating_our_own_frozen_configuration"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.advanced_configuration_usage.example_1__creating_our_own_frozen_configuration" title="Example 1, creating our own frozen configuration">Example
+ 1, creating our own frozen configuration</a>
+</h4></div></div></div>
+<p>
+ Lets suppose that we're building boost with Visual C++ 6, and STLport 4.0.
+ Lets suppose also that we don't intend to update our compiler or standard
+ library any time soon. In order to avoid breaking dependencies when we
+ update boost, we may want to "freeze" our configuration headers,
+ so that we only have to rebuild our project if the boost code itself has
+ changed, and not because the boost config has been updated for more recent
+ versions of Visual C++ or STLport. We'll start by realising that the configuration
+ files in use are: <a href="../../../../boost/config/compiler/visualc.hpp" target="_top"><code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">compiler</span><span class="special">/</span><span class="identifier">visualc</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a> for the compiler, <a href="../../../../boost/config/stdlib/stlport.hpp" target="_top"><code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">stdlib</span><span class="special">/</span><span class="identifier">stlport</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a> for the standard library, and
+ <a href="../../../../boost/config/platform/win32.hpp" target="_top"><code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">platform</span><span class="special">/</span><span class="identifier">win32</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a> for the platform. Next we'll
+ create our own private configuration directory: <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">mysetup</span><span class="special">/</span></code>, and copy the configuration files into
+ there. Finally, open up <a href="../../../../boost/config/user.hpp" target="_top">&lt;boost/config/user.hpp&gt;</a>
+ and edit the following defines:
+ </p>
+<pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_COMPILER_CONFIG</span> <span class="string">"boost/config/mysetup/visualc.hpp"</span>
+<span class="preprocessor">#define</span> <span class="identifier">BOOST_STDLIB_CONFIG</span> <span class="string">"boost/config/mysetup/stlport.hpp"</span>
+<span class="preprocessor">#define</span> <span class="identifier">BOOST_USER_CONFIG</span> <span class="string">"boost/config/mysetup/win32.hpp"</span>
+</pre>
+<p>
+ Now when you use boost, its configuration header will go straight to our
+ "frozen" versions, and ignore the default versions, you will
+ now be insulated from any configuration changes when you update boost.
+ This technique is also useful if you want to modify some of the boost configuration
+ files; for example if you are working with a beta compiler release not
+ yet supported by boost.
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="boost_config.configuring_boost_for_your_platform.advanced_configuration_usage.example_2__skipping_files_that_you_don_t_need"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.advanced_configuration_usage.example_2__skipping_files_that_you_don_t_need" title="Example 2: skipping files that you don't need">Example
+ 2: skipping files that you don't need</a>
+</h4></div></div></div>
+<p>
+ Lets suppose that you're using boost with a compiler that is fully conformant
+ with the standard; you're not interested in the fact that older versions
+ of your compiler may have had bugs, because you know that your current
+ version does not need any configuration macros setting. In a case like
+ this, you can define <code class="computeroutput"><span class="identifier">BOOST_NO_COMPILER_CONFIG</span></code>
+ either on the command line, or in <a href="../../../../boost/config/user.hpp" target="_top">&lt;boost/config/user.hpp&gt;</a>,
+ and miss out the compiler configuration header altogether (actually you
+ miss out two headers, one which works out what the compiler is, and one
+ that configures boost for it). This has two consequences: the first is
+ that less code has to be c ompiled, and the second that you have removed
+ a dependency on two boost headers.
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="boost_config.configuring_boost_for_your_platform.advanced_configuration_usage.example_3__using_configure_script_to_freeze_the_boost_configuration"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.advanced_configuration_usage.example_3__using_configure_script_to_freeze_the_boost_configuration" title="Example 3: using configure script to freeze the boost configuration">Example
+ 3: using configure script to freeze the boost configuration</a>
+</h4></div></div></div>
+<p>
+ If you are working on a unix-like platform then you can use the configure
+ script to generate a "frozen" configuration based on your current
+ compiler setup - <a class="link" href="index.html#config_config_script">see using the configure
+ script for more details</a>.
+ </p>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_config.configuring_boost_for_your_platform.testing_the_boost_configuration"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.testing_the_boost_configuration" title="Testing the boost configuration">Testing
+ the boost configuration</a>
+</h3></div></div></div>
+<p>
+ The boost configuration library provides a full set of regression test programs
+ under the <span class="emphasis"><em>&lt;boost-root&gt;</em></span><code class="computeroutput"><span class="special">/</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span></code>
+ <code class="computeroutput"><span class="identifier">test</span><span class="special">/</span></code>
+ sub-directory:
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ File
+ </p>
+ </th>
+<th>
+ <p>
+ Description
+ </p>
+ </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">config_info</span><span class="special">.</span><span class="identifier">cpp</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Prints out a detailed description of your compiler/standard library/platform
+ setup, plus your current boost configuration. The information provided
+ by this program useful in setting up the boost configuration files.
+ If you report that boost is incorrectly configured for your compiler/library/platform
+ then please include the output from this program when reporting
+ the changes required.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">config_test</span><span class="special">.</span><span class="identifier">cpp</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ A monolithic test program that includes most of the individual
+ test cases. This provides a quick check to see if boost is correctly
+ configured for your compiler/library/platform.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">limits_test</span><span class="special">.</span><span class="identifier">cpp</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Tests your standard library's <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span></code>
+ implementation (or its boost provided replacement if <code class="computeroutput"><span class="identifier">BOOST_NO_LIMITS</span></code> is defined).
+ This test file fails with most versions of numeric_limits, mainly
+ due to the way that some compilers treat NAN's and infinity.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">no_</span><span class="special">*</span><span class="identifier">pass</span><span class="special">.</span><span class="identifier">cpp</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Individual compiler defect test files. Each of these should compile,
+ if one does not then the corresponding <code class="computeroutput"><span class="identifier">BOOST_NO_XXX</span></code>
+ macro needs to be defined - see each test file for specific details.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">no_</span><span class="special">*</span><span class="identifier">fail</span><span class="special">.</span><span class="identifier">cpp</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Individual compiler defect test files. Each of these should not
+ compile, if one does then the corresponding <code class="computeroutput"><span class="identifier">BOOST_NO_XXX</span></code>
+ macro is defined when it need not be - see each test file for specific
+ details.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">has_</span><span class="special">*</span><span class="identifier">pass</span><span class="special">.</span><span class="identifier">cpp</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Individual feature test files. If one of these does not compile
+ then the corresponding <code class="computeroutput"><span class="identifier">BOOST_HAS_XXX</span></code>
+ macro is defined when it should not be - see each test file for
+ specific details.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">has_</span><span class="special">*</span><span class="identifier">fail</span><span class="special">.</span><span class="identifier">cpp</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Individual feature test files. If one of these does compile then
+ the corresponding <code class="computeroutput"><span class="identifier">BOOST_HAS_XXX</span></code>
+ macro can be safely defined - see each test file for specific details.
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+<p>
+ Although you can run the configuration regression tests as individual test
+ files, there are rather a lot of them, so there are a couple of shortcuts
+ to help you out:
+ </p>
+<p>
+ If you have built the <a href="../../../../tools/regression/doc/index.html" target="_top">boost
+ regression test driver</a>, then you can use this to produce a nice html
+ formatted report of the results using the supplied test file.
+ </p>
+<p>
+ Alternatively you can run the configure script like this:
+ </p>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="special">./</span><span class="identifier">configure</span>
+ <span class="special">--</span><span class="identifier">enable</span><span class="special">-</span><span class="identifier">test</span></code>
+ </p></blockquote></div>
+<p>
+ in which case the script will test the current configuration rather than
+ creating a new one from scratch.
+ </p>
+<p>
+ If you are reporting the results of these tests for a new platform/library/compiler
+ then please include a log of the full compiler output, the output from <code class="computeroutput"><span class="identifier">config_info</span><span class="special">.</span><span class="identifier">cpp</span></code>, and the pass/fail test results.
+ </p>
+</div>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"><p><small>Last revised: October 11, 2011 at 17:21:29 GMT</small></p></td>
+<td align="right"><div class="copyright-footer"></div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav"><a accesskey="n" href="boost_config/boost_macro_reference.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a></div>
+</body>
+</html>
diff --git a/libs/config/doc/macro_reference.qbk b/libs/config/doc/macro_reference.qbk
new file mode 100644
index 0000000000..c5dad035da
--- /dev/null
+++ b/libs/config/doc/macro_reference.qbk
@@ -0,0 +1,1201 @@
+[/
+ Boost.Config
+
+ Copyright (c) 2001 Beman Dawes
+ Copyright (c) 2001 Vesa Karvonen
+ Copyright (c) 2001 John Maddock
+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
+]
+
+
+
+[section Boost Macro Reference]
+
+[#config_defects]
+
+[section Macros that describe C++03 defects]
+
+The following macros all describe features that are required by the C++03 standard,
+if one of the following macros is defined, then it represents a defect in the
+compiler's conformance with the 2003 standard.
+
+
+[table
+[[Macro ][Section ][ Description ]]
+
+
+[[`BOOST_BCB_PARTIAL_SPECIALIZATION_BUG`][Compiler][
+The compiler exibits certain partial specialisation bug - probably Borland
+C++ Builder specific.
+]]
+[[`BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL`][Compiler][
+Argument dependent lookup fails if there is a using declaration for the
+symbol being looked up in the current scope. For example, using
+`boost::get_pointer`; prevents ADL from finding overloads of `get_pointer`
+in namespaces nested inside boost (but not elsewhere). Probably
+Borland specific.
+]]
+[[`BOOST_NO_ADL_BARRIER`][Compiler][
+The compiler locates and searches namespaces that it should /*not*/ in fact
+search when performing argument dependent lookup.
+]]
+[[`BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP`][Compiler][
+Compiler does not implement argument-dependent lookup (also named
+Koenig lookup); see std::3.4.2 \[basic.koenig.lookup\]
+]]
+[[`BOOST_NO_AUTO_PTR`][Standard library][
+If the compiler / library supplies non-standard or broken `std::auto_ptr`.
+]]
+[[`BOOST_NO_COMPLETE_VALUE_INITIALIZATION`][Compiler][
+Compiler has not completely implemented value-initialization.
+See also [@../../../utility/value_init.htm#compiler_issues The Utility\/Value Init docs]
+]]
+[[`BOOST_NO_CTYPE_FUNCTIONS`][Platform][
+The Platform does not provide functions for the character-classifying
+operations `<ctype.h>` and `<cctype>`, only macros.
+]]
+[[`BOOST_NO_CV_SPECIALIZATIONS`][Compiler][
+If template specialisations for cv-qualified types conflict with a
+specialisation for a cv-unqualififed type.
+]]
+[[`BOOST_NO_CV_VOID_SPECIALIZATIONS`][Compiler][
+If template specialisations for cv-void types conflict with a specialisation
+for void.
+]]
+[[`BOOST_NO_CWCHAR`][Platform][
+The Platform does not provide `<wchar.h>` and `<cwchar>`.
+]]
+[[`BOOST_NO_CWCTYPE`][Platform][
+The Platform does not provide `<wctype.h>` and `<cwctype>`.
+]]
+[[`BOOST_NO_FENV_H`][Platform, Standard library][
+The C standard library doesn't provide `<fenv.h>`. [@../../../../boost/detail/fenv.hpp
+`<boost/detail/fenv.hpp>`] should be included instead of `<fenv.h>` for maximum
+portability on platforms which do provide `<fenv.h>`.
+]]
+[[`BOOST_NO_DEPENDENT_NESTED_DERIVATIONS`][Compiler][
+The compiler fails to compile a nested class that has a dependent base class:
+``
+template<typename T>
+struct foo : {
+ template<typename U>
+ struct bar : public U {};
+``
+};
+]]
+[[`BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS`][Compiler][
+Template value parameters cannot have a dependent type, for example:
+``
+template<class T, typename T::type value>
+class X { ... };
+``
+]]
+[[`BOOST_NO_EXCEPTION_STD_NAMESPACE`][Standard Library][
+The standard library does not put some or all of the contents of
+`<exception>` in namespace std.
+]]
+[[`BOOST_NO_EXCEPTIONS`][Compiler][
+The compiler does not support exception handling (this setting is typically
+required by many C++ compilers for embedded platforms). Note that there is
+no requirement for boost libraries to honor this configuration setting -
+indeed doing so may be impossible in some cases. Those libraries that do
+honor this will typically abort if a critical error occurs - you have been
+warned!
+]]
+[[`BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS`][Compiler][
+Can only use deduced template arguments when calling function template
+instantiations.
+]]
+[[`BOOST_NO_FUNCTION_TEMPLATE_ORDERING`][Compiler][
+The compiler does not perform function template ordering or its function
+template ordering is incorrect.
+``
+// #1
+template<class T> void f(T);
+
+// #2
+template<class T,class U> void f(T(*)(U));
+
+void bar(int);
+
+f(&bar); // should choose #2.
+``
+]]
+[[`BOOST_NO_INCLASS_MEMBER_INITIALIZATION`][Compiler][
+Compiler violates std::9.4.2/4.
+]]
+[[`BOOST_NO_INTRINSIC_WCHAR_T`][Compiler][
+The C++ implementation does not provide `wchar_t`, or it is really a synonym
+for another integral type. Use this symbol to decide whether it is appropriate
+to explicitly specialize a template on `wchar_t` if there is already a
+specialization for other integer types.
+]]
+[[`BOOST_NO_IOSFWD`][std lib][
+The standard library lacks `<iosfwd>`.
+]]
+[[`BOOST_NO_IOSTREAM`][std lib][
+The standard library lacks `<iostream>`, `<istream>` or `<ostream>`.
+]]
+[[`BOOST_NO_IS_ABSTRACT`][Compiler][
+The C++ compiler does not support SFINAE with abstract types, this is covered
+by __CORE_LANGUAGE_DR337__, but is not part of the current standard. Fortunately
+most compilers that support SFINAE also support this DR.
+]]
+[[`BOOST_NO_LIMITS`][Standard library][
+The C++ implementation does not provide the `<limits>` header. Never check for
+this symbol in library code; always include `<boost/limits.hpp>`, which
+guarantees to provide `std::numeric_limits`.
+]]
+[[`BOOST_NO_NUMERIC_LIMITS_LOWEST`][Standard library][
+Static function `numeric_limits<T>::lowest()` is not available for use.
+]]
+[[`BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS`][Standard library][
+Constants such as `numeric_limits<T>::is_signed` are not available for use
+at compile-time.
+]]
+[[`BOOST_NO_LONG_LONG_NUMERIC_LIMITS`][Standard library][
+There is no specialization for `numeric_limits<long long>` and
+`numeric_limits<unsigned long long>`. `<boost/limits.hpp>` will then add these
+specializations as a standard library "fix" only if the compiler supports the
+`long long` datatype.
+]]
+[[`BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS`][Compiler][
+The compiler does not support the specialization of individual member
+functions of template classes.
+]]
+[[`BOOST_NO_MEMBER_TEMPLATE_KEYWORD`][Compiler][
+If the compiler supports member templates, but not the template keyword
+when accessing member template classes.
+]]
+[[`BOOST_NO_MEMBER_TEMPLATE_FRIENDS`][Compiler][
+Member template friend syntax (`template<class P> friend class frd;`)
+described in the C++ Standard, 14.5.3, not supported.
+]]
+[[`BOOST_NO_MEMBER_TEMPLATES`][Compiler][
+Member template functions not fully supported.
+]]
+[[`BOOST_NO_MS_INT64_NUMERIC_LIMITS`][Standard library][
+There is no specialization for `numeric_limits<__int64>` and
+`numeric_limits<unsigned __int64>`. `<boost/limits.hpp>` will then add these
+specializations as a standard library "fix", only if the compiler supports
+the `__int64` datatype.
+]]
+[[`BOOST_NO_NESTED_FRIENDSHIP`][Compiler][
+Compiler doesn't allow a nested class to access private members of its
+containing class. Probably Borland/CodeGear specific.
+]]
+[[`BOOST_NO_OPERATORS_IN_NAMESPACE`][Compiler][
+Compiler requires inherited operator friend functions to be defined at
+namespace scope, then using'ed to boost. Probably GCC specific. See
+[@../../../../boost/operators.hpp `<boost/operators.hpp>`] for example.
+]]
+[[`BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS`][Compiler][
+The compiler does not correctly handle partial specializations
+which depend upon default arguments in the primary template.
+]]
+[[`BOOST_NO_POINTER_TO_MEMBER_CONST`][Compiler][
+The compiler does not correctly handle pointers to const member functions,
+preventing use of these in overloaded function templates. See
+[@../../../../boost/functional.hpp `<boost/functional.hpp>`] for example.
+]]
+[[`BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS`][Compiler][
+Pointers to members don't work when used as template parameters.
+]]
+[[`BOOST_NO_PRIVATE_IN_AGGREGATE`][Compiler][
+The compiler misreads 8.5.1, treating classes as non-aggregate if they
+contain private or protected member functions.
+]]
+[[`BOOST_NO_RTTI`][Compiler][
+The compiler may (or may not) have the typeid operator, but RTTI on the dynamic type
+of an object is not supported.
+]]
+[[`BOOST_NO_SFINAE`][Compiler][
+The compiler does not support the "Substitution Failure Is Not An Error"
+meta-programming idiom.
+]]
+[[`BOOST_NO_SFINAE_EXPR`][Compiler][
+The compiler does not support usage of SFINAE with arbitrary expressions.
+]]
+[[`BOOST_NO_STD_ALLOCATOR`][Standard library][
+The C++ standard library does not provide a standards conforming
+`std::allocator`.
+]]
+[[`BOOST_NO_STD_DISTANCE`][Standard library][
+The platform does not have a conforming version of `std::distance`.
+]]
+[[`BOOST_NO_STD_ITERATOR`][Standard library][
+The C++ implementation fails to provide the `std::iterator` class.
+]]
+[[`BOOST_NO_STD_ITERATOR_TRAITS`][Standard library][
+The compiler does not provide a standard compliant implementation of
+`std::iterator_traits`. Note that the compiler may still have a
+non-standard implementation.
+]]
+[[`BOOST_NO_STD_LOCALE`][Standard library][
+The standard library lacks `std::locale`.
+]]
+[[`BOOST_NO_STD_MESSAGES`][Standard library][
+The standard library lacks a conforming `std::messages` facet.
+]]
+[[`BOOST_NO_STD_MIN_MAX`][Standard library][
+The C++ standard library does not provide the `min()` and `max()` template
+functions that should be in `<algorithm>`.
+]]
+[[`BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN`][Standard library][
+Defined if the standard library's output iterators are not assignable.
+]]
+[[`BOOST_NO_STD_TYPEINFO`][Standard library][
+The <typeinfo> header declares `type_info` in the global namespace instead of namespace std.
+]]
+[[`BOOST_NO_STD_USE_FACET`][Standard library][
+The standard library lacks a conforming `std::use_facet`.
+]]
+[[`BOOST_NO_STD_WSTREAMBUF`][Standard library][
+The standard library's implementation of `std::basic_streambuf<wchar_t>`
+is either missing, incomplete, or buggy.
+]]
+[[`BOOST_NO_STD_WSTRING`][Standard library][
+The standard library lacks `std::wstring`.
+]]
+[[`BOOST_NO_STDC_NAMESPACE`][Compiler, Platform][
+The contents of C++ standard headers for C library functions
+(the `<c...>` headers) have not been placed in namespace std. This test is
+difficult - some libraries "fake" the std C functions by adding using
+declarations to import them into namespace std, unfortunately they don't
+necessarily catch all of them...
+]]
+[[`BOOST_NO_STRINGSTREAM`][Standard library][
+The C++ implementation does not provide the `<sstream>` header.
+]]
+[[`BOOST_NO_SWPRINTF`][Platform][
+The platform does not have a conforming version of `swprintf`.
+]]
+[[`BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION`][Compiler][
+Class template partial specialization (14.5.4 \[temp.class.spec\]) not
+supported.
+]]
+[[`BOOST_NO_TEMPLATED_IOSTREAMS`][Standard library][
+The standard library does not provide templated iostream classes.
+]]
+[[`BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS`][Standard library][
+The standard library does not provide templated iterator constructors
+for its containers.
+]]
+[[`BOOST_NO_TEMPLATE_TEMPLATES`][Compiler][
+The compiler does not support template template parameters.
+]]
+[[`BOOST_NO_TYPEID`][Compiler][
+The compiler does not support the typeid operator at all.
+]]
+[[`BOOST_NO_TYPENAME_WITH_CTOR`][Compiler][
+The typename keyword cannot be used when creating a temporary of a
+Dependent type.
+]]
+[[`BOOST_NO_UNREACHABLE_RETURN_DETECTION`][Compiler][
+If a return is unreachable, then no return statement should be required,
+however some compilers insist on it, while other issue a bunch of warnings
+if it is in fact present.
+]]
+[[`BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE`][Compiler][
+The compiler will not accept a using declaration that brings a function
+from a typename used as a base class into a derived class if functions of
+the same name are present in the derived class.
+]]
+[[`BOOST_NO_USING_TEMPLATE`][Compiler][
+The compiler will not accept a using declaration that imports a template
+class or function from another namespace. Originally a Borland specific
+problem with imports to/from the global namespace, extended to MSVC6
+which has a specific issue with importing template classes (but not
+functions).
+]]
+[[`BOOST_NO_VOID_RETURNS`][Compiler][
+The compiler does not allow a void function to return the result of calling
+another void function.
+``
+void f() {}
+void g() { return f(); }
+``
+]]
+]
+
+[endsect]
+
+[#config_features]
+
+
+[section Macros that describe optional features]
+
+The following macros describe features that are not required by the C++
+standard. The macro is only defined if the feature is present.
+
+
+[table
+[[Macro ][Section ][Description ]]
+
+[[`BOOST_HAS_BETHREADS`][Platform][
+The platform supports BeOS style threads.
+]]
+[[`BOOST_HAS_CLOCK_GETTIME`][Platform][
+The platform has the POSIX API `clock_gettime`.
+]]
+[[`BOOST_HAS_DIRENT_H`][Platform][
+The platform has the POSIX header `<dirent.h>`.
+]]
+[[`BOOST_HAS_EXPM1`][Platform][
+The platform has the functions `expm1`, `expm1f` and `expm1l` in `<math.h>`
+]]
+[[`BOOST_HAS_FTIME`][Platform][
+The platform has the Win32 API type FTIME.
+]]
+[[`BOOST_HAS_GETSYSTEMTIMEASFILETIME`][Platform][
+The platform has the Win32 API GetSystemTimeAsFileTime.
+]]
+[[`BOOST_HAS_GETTIMEOFDAY`][Platform][
+The platform has the POSIX API `gettimeofday`.
+]]
+[[`BOOST_HAS_HASH`][Standard library][
+The C++ implementation provides the (SGI) hash_set and hash_map classes.
+When defined, `BOOST_HASH_SET_HEADER` and `BOOST_HASH_LIST_HEADER` will contain
+the names of the header needed to access hash_set and hash_map;
+`BOOST_STD_EXTENSION_NAMESPACE` will provide the namespace in which the two
+class templates reside.
+]]
+[[`BOOST_HAS_LOG1P`][Platform][
+The platform has the functions `log1p`, `log1pf` and `log1pl` in `<math.h>`.
+]]
+[[`BOOST_HAS_MACRO_USE_FACET`][Standard library][
+The standard library lacks a conforming `std::use_facet`, but has a macro
+`_USE(loc, Type)` that does the job. This is primarily for the Dinkumware
+std lib.
+]]
+[[`BOOST_HAS_MS_INT64`][Compiler][
+The compiler supports the `__int64` data type.
+]]
+[[`BOOST_HAS_NANOSLEEP`][Platform][
+The platform has the POSIX API nanosleep.
+]]
+[[`BOOST_HAS_NL_TYPES_H`][Platform][
+The platform has an `<nl_types.h>`.
+]]
+[[`BOOST_HAS_NRVO`][Compiler][
+Indicated that the compiler supports the named return value optimization
+(NRVO). Used to select the most efficient implementation for some function.
+See [@../../../../boost/operators.hpp `<boost/operators.hpp>`] for example.
+]]
+[[`BOOST_HAS_PARTIAL_STD_ALLOCATOR`][Standard Library][
+The standard library has a partially conforming `std::allocator` class, but
+without any of the member templates.
+]]
+[[`BOOST_HAS_PTHREAD_DELAY_NP`][Platform][
+The platform has the POSIX API `pthread_delay_np`.
+]]
+[[`BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE`][Platform][
+The platform has the POSIX API `pthread_mutexattr_settype`.
+]]
+[[`BOOST_HAS_PTHREAD_YIELD`][Platform][
+The platform has the POSIX API `pthread_yield`.
+]]
+[[`BOOST_HAS_PTHREADS`][Platform][
+The platform support POSIX style threads.
+]]
+[[`BOOST_HAS_SCHED_YIELD`][Platform][
+The platform has the POSIX API `sched_yield`.
+]]
+[[`BOOST_HAS_SGI_TYPE_TRAITS`][Compiler, Standard library][
+The compiler has native support for SGI style type traits.
+]]
+[[`BOOST_HAS_STDINT_H`][Platform][
+The platform has a `<stdint.h>`
+]]
+[[`BOOST_HAS_SLIST`][Standard library][
+The C++ implementation provides the (SGI) slist class. When defined,
+`BOOST_SLIST_HEADER` will contain the name of the header needed to access
+`slist` and `BOOST_STD_EXTENSION_NAMESPACE` will provide the namespace in
+which `slist` resides.
+]]
+[[`BOOST_HAS_STLP_USE_FACET`][Standard library][
+The standard library lacks a conforming `std::use_facet`, but has a workaround
+class-version that does the job. This is primarily for the STLport std lib.
+]]
+[[`BOOST_HAS_TR1_ARRAY`][Standard library][
+The library has a TR1 conforming version of `<array>`.
+]]
+[[`BOOST_HAS_TR1_COMPLEX_OVERLOADS`][Standard library][
+The library has a version of `<complex>` that supports passing scalars to the
+complex number algorithms.
+]]
+[[`BOOST_HAS_TR1_COMPLEX_INVERSE_TRIG`][Standard library][
+The library has a version of `<complex>` that includes the new inverse trig
+functions from TR1.
+]]
+[[`BOOST_HAS_TR1_REFERENCE_WRAPPER`][Standard library][
+The library has TR1 conforming reference wrappers in `<functional>`.
+]]
+[[`BOOST_HAS_TR1_RESULT_OF`][Standard library][
+The library has a TR1 conforming result_of template in `<functional>`.
+]]
+[[`BOOST_HAS_TR1_MEM_FN`][Standard library][
+The library has a TR1 conforming mem_fn function template in `<functional>`.
+]]
+[[`BOOST_HAS_TR1_BIND`][Standard library][
+The library has a TR1 conforming bind function template in `<functional>`.
+]]
+[[`BOOST_HAS_TR1_FUNCTION`][Standard library][
+The library has a TR1 conforming function class template in `<functional>`.
+]]
+[[`BOOST_HAS_TR1_HASH`][Standard library][
+The library has a TR1 conforming hash function template in `<functional>`.
+]]
+[[`BOOST_HAS_TR1_SHARED_PTR`][Standard library][
+The library has a TR1 conforming `shared_ptr` class template in `<memory>`.
+]]
+[[`BOOST_HAS_TR1_RANDOM`][Standard library][
+The library has a TR1 conforming version of `<random>`.
+]]
+[[`BOOST_HAS_TR1_REGEX`][Standard library][
+The library has a TR1 conforming version of `<regex>`.
+]]
+[[`BOOST_HAS_TR1_TUPLE`][Standard library][
+The library has a TR1 conforming version of `<tuple>`.
+]]
+[[`BOOST_HAS_TR1_TYPE_TRAITS`][Standard library][
+The library has a TR1 conforming version of `<type_traits>`.
+]]
+[[`BOOST_HAS_TR1_UTILITY`][Standard library][
+The library has the TR1 additions to `<utility>` (tuple interface to `std::pair`).
+]]
+[[`BOOST_HAS_TR1_UNORDERED_MAP`][Standard library][
+The library has a TR1 conforming version of `<unordered_map>`.
+]]
+[[`BOOST_HAS_TR1_UNORDERED_SET`][Standard library][
+The library has a TR1 conforming version of `<unordered_set>`.
+]]
+[[`BOOST_HAS_TR1`][Standard library][
+Implies all the other `BOOST_HAS_TR1_*` macros should be set.
+]]
+[[`BOOST_HAS_THREADS`][Platform, Compiler][
+Defined if the compiler, in its current translation mode, supports multiple
+threads of execution.
+]]
+[[`BOOST_HAS_TWO_ARG_USE_FACET`][Standard library][
+The standard library lacks a conforming std::use_facet, but has a two
+argument version that does the job. This is primarily for the Rogue Wave
+std lib.
+]]
+[[`BOOST_HAS_UNISTD_H`][Platform][
+The Platform provides `<unistd.h>`.
+]]
+[[`BOOST_HAS_WINTHREADS`][Platform][
+The platform supports MS Windows style threads.
+]]
+[[`BOOST_MSVC_STD_ITERATOR`][Standard library][
+Microsoft's broken version of `std::iterator` is being used. This implies that
+`std::iterator` takes no more than two template parameters.
+]]
+[[`BOOST_MSVC6_MEMBER_TEMPLATES`][Compiler][
+Microsoft Visual C++ 6.0 has enough member template idiosyncrasies
+(being polite) that `BOOST_NO_MEMBER_TEMPLATES` is defined for this compiler.
+`BOOST_MSVC6_MEMBER_TEMPLATES` is defined to allow compiler specific workarounds.
+This macro gets defined automatically if `BOOST_NO_MEMBER_TEMPLATES` is not
+defined - in other words this is treated as a strict subset of the features
+required by the standard.
+]]
+[[`BOOST_HAS_STDINT_H`][Platform][
+There are no 1998 C++ Standard headers `<stdint.h>` or `<cstdint>`, although the
+1999 C Standard does include `<stdint.h>`. If `<stdint.h>` is present,
+`<boost/stdint.h>` can make good use of it, so a flag is supplied (signalling
+presence; thus the default is not present, conforming to the current C++
+standard).
+]]
+]
+
+[endsect]
+
+[section Macros that describe possible C++ future features]
+
+The following macros describe features that may be included in some future
+ISO C++ standard, but have not yet been approved for inclusion in the language.
+
+
+[table
+[[Macro ][Description ]]
+
+[[`BOOST_HAS_CONCEPTS`][
+The compiler supports concepts.
+]]
+]
+
+[endsect]
+
+[section Macros that describe C++11 features not supported]
+
+The following macros describe features in the 2011 ISO C++ standard, formerly known as C++0x,
+that are not yet supported by a particular compiler or library.
+
+[table
+[[Macro ][Description ]]
+
+[[`BOOST_NO_0X_HDR_ARRAY`][The standard library does not provide header <array>.]]
+[[`BOOST_NO_0X_HDR_CHRONO`][The standard library does not provide header <chrono>.]]
+[[`BOOST_NO_0X_HDR_CODECVT`][The standard library does not provide header <codecvt>.]]
+[[`BOOST_NO_0X_HDR_CONDITION_VARIABLE`][The standard library does not provide header <condition_variable>.]]
+[[`BOOST_NO_0X_HDR_FORWARD_LIST`][The standard library does not provide header <forward_list>.]]
+[[`BOOST_NO_0X_HDR_FUTURE`][The standard library does not provide header <future>.]]
+[[`BOOST_NO_0X_HDR_INITIALIZER_LIST`][The standard library does not provide header <initializer_list>.]]
+[[`BOOST_NO_0X_HDR_MUTEX`][The standard library does not provide header <mutex>.]]
+[[`BOOST_NO_0X_HDR_RANDOM`][The standard library does not provide header <random>.]]
+[[`BOOST_NO_0X_HDR_RATIO`][The standard library does not provide header <ratio>.]]
+[[`BOOST_NO_0X_HDR_REGEX`][The standard library does not provide header <regex>.]]
+[[`BOOST_NO_0X_HDR_SYSTEM_ERROR`][The standard library does not provide header <system_error>.]]
+[[`BOOST_NO_0X_HDR_THREAD`][The standard library does not provide header <thread>.]]
+[[`BOOST_NO_0X_HDR_TUPLE`][The standard library does not provide header <tuple>.]]
+[[`BOOST_NO_0X_HDR_TYPEINDEX`][The standard library does not provide header <typeindex>.]]
+[[`BOOST_NO_0X_HDR_TYPE_TRAITS`][The standard library does not provide header <type_traits>.]]
+[[`BOOST_NO_0X_HDR_UNORDERED_MAP`][The standard library does not provide header <unordered_map>.]]
+[[`BOOST_NO_0X_HDR_UNORDERED_SET`][The standard library does not provide header <unordered_set>.]]
+
+[[`BOOST_NO_AUTO_DECLARATIONS`][The compiler does not support
+type deduction for variables declared with the `auto` keyword (`auto var = ...;`).
+]]
+[[`BOOST_NO_AUTO_MULTIDECLARATIONS`][The compiler does not support
+type deduction for multiple variables declared with the `auto` keyword (`auto var = ..., *ptr = ...;`).
+]]
+[[`BOOST_NO_CHAR16_T`][The compiler does not support
+type `char16_t`.
+]]
+[[`BOOST_NO_CHAR32_T`][The compiler does not support
+type `char32_t`.
+]]
+[[`BOOST_NO_TEMPLATE_ALIASES`][The compiler does not support template aliases.
+]]
+[[`BOOST_NO_CONSTEXPR`][The compiler does not support
+`constexpr`.
+]]
+[[`BOOST_NO_DECLTYPE`][The compiler does not support
+`decltype`.
+]]
+[[`BOOST_NO_DECLTYPE_N3276`][The compiler does not support the extension to
+`decltype` described in [@http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3276.pdf N3276],
+accepted in Madrid, March 2011.
+]]
+[[`BOOST_NO_DEFAULTED_FUNCTIONS`][The compiler does not support
+defaulted (`= default`) functions.
+]]
+[[`BOOST_NO_DELETED_FUNCTIONS`][The compiler does not support
+deleted (`= delete`) functions.
+]]
+[[`BOOST_NO_EXPLICIT_CONVERSION_OPERATORS`][The compiler does not support
+explicit conversion operators (`explicit operator T()`).
+]]
+[[`BOOST_NO_EXTERN_TEMPLATE`][The compiler does not support
+explicit instantiation forward declarations for templates (`extern template ...`).
+]]
+[[`BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS`][The compiler does not support
+default template arguments for function templates.
+]]
+[[`BOOST_NO_INITIALIZER_LISTS`][
+The C++ compiler does not support C++0x initializer lists.
+]]
+[[`BOOST_NO_LAMBDAS`][The compiler does not support Lambdas.
+]]
+[[`BOOST_NO_LONG_LONG`][The compiler does not support `long long`.
+]]
+[[`BOOST_NO_NOEXCEPT`][The compiler does not support `noexcept`.
+]]
+[[`BOOST_NO_NULLPTR`][The compiler does not support `nullptr`.
+]]
+[[`BOOST_NO_RAW_LITERALS`][The compiler does not support
+raw string literals.
+]]
+[[`BOOST_NO_RVALUE_REFERENCES`][The compiler does not support
+r-value references.
+]]
+[[`BOOST_NO_SCOPED_ENUMS`][The compiler does not support
+scoped enumerations (`enum class`).
+]]
+[[`BOOST_NO_STATIC_ASSERT`][The compiler does not support
+`static_assert`.
+]]
+[[`BOOST_NO_STD_UNORDERD`][The standard library does not support
+<unordered_map> and <unordered_set>.
+]]
+[[`BOOST_NO_TEMPLATE_ALIASES`][The compiler does not support template aliases.
+]]
+[[`BOOST_NO_UNICODE_LITERALS`][The compiler does not support
+Unicode (`u8`, `u`, `U`) literals.
+]]
+[[`BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX`][The compiler does not support
+the [@http://en.wikipedia.org/wiki/C%2B%2B0x#Uniform_initialization C++11 Unified Initialization Syntax].
+]]
+[[`BOOST_NO_VARIADIC_TEMPLATES`][The compiler does not support
+variadic templates.
+]]
+[[`BOOST_NO_VARIADIC_MACROS`][The compiler does not support
+variadic macros.
+]]
+]
+
+[endsect]
+
+[#config_11_for_03]
+
+[section Macros that allow use of C++11 features with C++03 compilers]
+
+The following macros allow use of C++11 features even with compilers that do not yet
+provide compliant C++11 support.
+
+[table
+[[Macro ][Section ][ Description ]]
+
+[[`BOOST_CONSTEXPR`][
+Some compilers don't support the use of `constexpr`. This macro expands to nothing on those compilers, and `constexpr`
+elsewhere. For example, when defining a constexpr function or constructor replace:
+``
+ constexpr tuple();
+``
+with:
+``
+ BOOST_CONSTEXPR tuple();
+``
+]]
+[[`BOOST_CONSTEXPR_OR_CONST`][
+Some compilers don't support the use of `constexpr`. This macro expands to `const` on those compilers, and `constexpr`
+elsewhere. For example, when defining const expr variables replace:
+``
+ static constexpr UIntType xor_mask = a;
+``
+with:
+``
+ static BOOST_CONSTEXPR_OR_CONST UIntType xor_mask = a;
+``
+]]
+[[`BOOST_STATIC_CONSTEXPR`][
+This is a shortcut for `static BOOST_CONSTEXPR_OR_CONST`For example, when defining const expr variables replace:
+``
+ static constexpr UIntType xor_mask = a;
+``
+with:
+``
+ BOOST_STATIC_CONSTEXPR UIntType xor_mask = a;
+``
+]]
+[[
+``
+ BOOST_NOEXCEPT
+ BOOST_NOEXCEPT_IF(Predicate)
+ BOOST_NOEXCEPT_EXPR(Expression)
+``
+][
+If `BOOST_NO_NOEXCEPT` is defined (i.e. C++03 compliant compilers) these macros are defined as:
+[:
+``
+ #define BOOST_NOEXCEPT
+ #define BOOST_NOEXCEPT_IF(Predicate)
+ #define BOOST_NOEXCEPT_EXPR(Expression) false
+``
+]
+If `BOOST_NO_NOEXCEPT` is not defined (i.e. C++11 compliant compilers) they are defined as:
+[:
+``
+ #define BOOST_NOEXCEPT noexcept
+ #define BOOST_NOEXCEPT_IF(Predicate) noexcept((Predicate))
+ #define BOOST_NOEXCEPT_EXPR(Expression) noexcept((Expression))
+``
+]
+]]
+]
+
+[endsect]
+
+[#config_helpers]
+
+[section Boost Helper Macros]
+
+The following macros are either simple helpers, or macros that provide
+workarounds for compiler/standard library defects.
+
+
+[table
+[[Macro ][Description ]]
+
+[[`BOOST_WORKAROUND`][
+This macro is used where a compiler specific workaround is required that is not otherwise
+described by one of the other Boost.Config macros. To use the macro you must first
+``
+#include <boost/detail/workaround.hpp>
+``
+usage is then:
+``
+#if BOOST_WORKAROUND(MACRONAME, CONDITION)
+ // workaround code goes here...
+#else
+ // Standard conforming code goes here...
+#endif
+``
+where `MACRONAME` is a macro that usually describes the version number to be tested against, and `CONDITION`
+is a comparison operator followed by a value. For example `BOOST_WORKAROUND(BOOST_INTEL, <= 1010)` would
+evaluate to `1` for Intel C++ 10.1 and earlier.
+
+The macro can also be used with `BOOST_TESTED_AT` if all
+current compiler versions exhibit the issue, but the issue is expected to be fixed at some later point.
+
+For example
+`BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x590))` would normally evaluate to `1` for all values
+of `__BORLANDC__` /unless/ the macro `BOOST_DETECT_OUTDATED_WORKAROUNDS` is defined, in which case evaluates to
+`(__BORLANDC__ <= 0x590)`.
+
+[*Note]: the ultimate source of documentation for this macro is in [@../../../../boost/detail/workaround.hpp boost/detail/workaround.hpp].
+]]
+[[`BOOST_PREVENT_MACRO_SUBSTITUTION`][
+Sometimes you have a function name with the same name as a C macro, for example "min" and "max"
+member functions, in which case one can prevent the function being expanded as a macro using:
+``
+someclass.min BOOST_PREVENT_MACRO_SUBSTITUTION(arg1, arg2);
+``
+The following also works in most, but not all, contexts:
+``
+(someclass.max)(arg1, arg2);
+``
+]]
+[[`BOOST_DEDUCED_TYPENAME`][
+Some compilers don't support the use of typename for dependent types in deduced
+contexts. This macro expands to nothing on those compilers, and typename
+elsewhere. For example, replace:
+`template <class T> void f(T, typename T::type);`
+with:
+`template <class T> void f(T, BOOST_DEDUCED_TYPENAME T::type);`
+]]
+[[`BOOST_HASH_MAP_HEADER`][
+The header to include to get the SGI `hash_map` class. This macro is only
+available if `BOOST_HAS_HASH` is defined.
+]]
+[[`BOOST_HASH_SET_HEADER`][
+The header to include to get the SGI `hash_set` class. This macro is only
+available if `BOOST_HAS_HASH` is defined.
+]]
+[[`BOOST_SLIST_HEADER`][
+The header to include to get the SGI `slist` class. This macro is only
+available if `BOOST_HAS_SLIST` is defined.
+]]
+[[`BOOST_STD_EXTENSION_NAMESPACE`][
+The namespace used for std library extensions (hashtable classes etc).
+]]
+[[`BOOST_STATIC_CONSTANT(Type, assignment)`][
+On compilers which don't allow in-class initialization of static integral
+constant members, we must use enums as a workaround if we want the constants
+to be available at compile-time. This macro gives us a convenient way to
+declare such constants.
+For example instead of:
+``
+struct foo{
+ static const int value = 2;
+};
+``
+use:
+``
+struct foo{
+ BOOST_STATIC_CONSTANT(int, value = 2);
+};
+``
+]]
+[[`BOOST_UNREACHABLE_RETURN(result)`][
+Normally evaluates to nothing, but evaluates to return x; if the compiler
+requires a return, even when it can never be reached.
+]]
+[[`BOOST_EXPLICIT_TEMPLATE_TYPE(t)`
+ `BOOST_EXPLICIT_TEMPLATE_NON_TYPE(t,v)`
+ `BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(t)`
+ `BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(t,v)`][
+Some compilers silently "fold" different function template instantiations if
+some of the template parameters don't appear in the function parameter list.
+For instance:
+``
+ #include <iostream>
+ #include <ostream>
+ #include <typeinfo>
+
+ template <int n>
+ void f() { std::cout << n << ' '; }
+
+ template <typename T>
+ void g() { std::cout << typeid(T).name() << ' '; }
+
+ int main() {
+ f<1>();
+ f<2>();
+
+ g<int>();
+ g<double>();
+ }
+``
+incorrectly outputs [^2 2 double double] on VC++ 6. These macros, to be used
+in the function parameter list, fix the problem without effects on the calling
+syntax. For instance, in the case above write:
+``
+ template <int n>
+ void f(BOOST_EXPLICIT_TEMPLATE_NON_TYPE(int, n)) { ... }
+
+ template <typename T>
+ void g(BOOST_EXPLICIT_TEMPLATE_TYPE(T)) { ... }
+``
+Beware that they can declare (for affected compilers) a dummy defaulted
+parameter, so they
+
+[*a)] should be always invoked [*at the end] of the parameter list
+
+[*b)] can't be used if your function template is multiply declared.
+
+Furthermore, in order to add any needed comma separator, an `APPEND_*` version
+must be used when the macro invocation appears after a normal parameter
+declaration or after the invocation of another macro of this same group.
+]]
+[[`BOOST_USE_FACET(Type, loc)`][
+When the standard library does not have a comforming `std::use_facet` there
+are various workarounds available, but they differ from library to library.
+This macro provides a consistent way to access a locale's facets. For example,
+replace:
+`std::use_facet<Type>(loc);`
+with:
+`BOOST_USE_FACET(Type, loc);`
+Note do not add a `std::` prefix to the front of `BOOST_USE_FACET`.
+]]
+[[`BOOST_HAS_FACET(Type, loc)`][
+When the standard library does not have a comforming `std::has_facet` there
+are various workarounds available, but they differ from library to library.
+This macro provides a consistent way to check a locale's facets. For example,
+replace:
+`std::has_facet<Type>(loc);`
+with:
+`BOOST_HAS_FACET(Type, loc);`
+Note do not add a `std::` prefix to the front of `BOOST_HAS_FACET`.
+]]
+[[`BOOST_NESTED_TEMPLATE`][
+Member templates are supported by some compilers even though they can't use
+the `A::template member<U>` syntax, as a workaround replace:
+`typedef typename A::template rebind<U> binder;`
+with:
+`typedef typename A::BOOST_NESTED_TEMPLATE rebind<U> binder;`
+]]
+[[`BOOST_STRINGIZE(X)`][
+Converts the parameter `X` to a string after macro replacement on `X` has
+been performed.
+]]
+[[`BOOST_JOIN(X,Y)`][
+This piece of macro magic joins the two arguments together, even when one of
+the arguments is itself a macro (see 16.3.1 in C++ standard). This is normally
+used to create a mangled name in combination with a predefined macro such a
+\_\_LINE__.
+]]
+[[`BOOST_FORCEINLINE`][
+This macro can be used in place of the `inline` keyword to instruct the compiler
+that a function should always be inlined.
+Overuse of this macro can lead to significant bloat, while good use can increase
+performance in certain cases, such as computation-intensive code built through
+generative programming techniques.
+
+Usage example:
+``
+ template<class T>
+ BOOST_FORCEINLINE T& f(T& t)
+ {
+ return t;
+ }
+``
+
+Note that use of this macro can lead to cryptic error messages with some compilers.
+Consider defining it to `inline` before including the Boost.Config header in order to be
+able to debug errors more easily.
+]]
+]
+
+[endsect]
+
+[#config_info_macros]
+
+[section Boost Informational Macros]
+
+The following macros describe boost features; these are, generally speaking
+the only boost macros that should be tested in user code.
+
+[table
+
+[[Macro ][Header ][Description ]]
+
+[[`BOOST_VERSION`][`<boost/version.hpp>`][
+Describes the boost version number in XYYYZZ format such that:
+`(BOOST_VERSION % 100)` is the sub-minor version, `((BOOST_VERSION / 100) % 1000)`
+is the minor version, and `(BOOST_VERSION / 100000)` is the major version.
+]]
+[[`BOOST_NO_INT64_T`][`<boost/cstdint.hpp>` `<boost/stdint.h>`][
+Defined if there are no 64-bit integral types: `int64_t`, `uint64_t` etc.
+]]
+[[`BOOST_NO_INTEGRAL_INT64_T`][`<boost/cstdint.hpp>` `<boost/stdint.h>`][
+Defined if `int64_t` as defined by `<boost/cstdint.hpp>` is not usable in
+integral constant expressions.
+]]
+[[`BOOST_MSVC`][`<boost/config.hpp>`][
+Defined if the compiler is really Microsoft Visual C++, as opposed to one
+of the many other compilers that also define `_MSC_VER`. Has the same value as
+_MSC_VER.
+]]
+[[`BOOST_MSVC_FULL_VER`][`<boost/config.hpp>`][
+Defined to a normalised 9 digit version of _MSC_FULL_VER (which sometimes only has 8 digits),
+the macro has the form VVMMPPPPP where VV is the major version number, MM is the minor version number, and
+PPPPP is the compiler build number.
+]]
+[[`BOOST_INTEL`][`<boost/config.hpp>`][
+Defined if the compiler is an Intel compiler, takes the same value as the
+compiler version macro.
+]]
+[[`BOOST_CLANG`][`<boost/config.hpp>`][
+Defined to 1 if the compiler is the Clang compiler.
+]]
+[[`BOOST_WINDOWS`][`<boost/config.hpp>`][
+Defined if the Windows platform API is available.
+]]
+[[`BOOST_DINKUMWARE_STDLIB`][`<boost/config.hpp>`][
+Defined if the dinkumware standard library is in use, takes the same value
+as the Dinkumware library version macro `_CPPLIB_VER` if defined, otherwise 1.
+]]
+[[`BOOST_NO_WREGEX`][`<boost/regex.hpp>`][
+Defined if the regex library does not support wide character regular
+expressions.
+]]
+[[`BOOST_COMPILER`][`<boost/config.hpp>`][
+Defined as a string describing the name and version number of the compiler
+in use. Mainly for debugging the configuration.
+]]
+[[`BOOST_STDLIB`][`<boost/config.hpp>`][
+Defined as a string describing the name and version number of the standard
+library in use. Mainly for debugging the configuration.
+]]
+[[`BOOST_PLATFORM`][`<boost/config.hpp>`][
+Defined as a string describing the name of the platform. Mainly for debugging
+the configuration.
+]]
+]
+
+[endsect]
+
+[section Macros for libraries with separate source code]
+
+The following macros and helper headers are of use to authors whose libraries
+include separate source code, and are intended to address several issues:
+
+* Controlling shared library symbol visibility
+* Fixing the ABI of the compiled library
+* Selecting which compiled library to link against based upon the compilers settings
+
+See [@http://svn.boost.org/trac/boost/wiki/Guidelines/Separate Guidelines for Authors of Boost Libraries Containing Separate Source]
+
+[section Macros controlling shared library symbol visibility]
+
+Some compilers support C++ extensions that control which symbols
+will be exported from shared libraries such as dynamic shared objects (DSO's) on Unix-like
+systems or dynamic-link libraries (DLL's) on Windows.
+
+The Microsoft VC++ compiler has long supplied
+`__declspec(dllexport)` and `__declspec(dllimport)` extensions for this purpose,
+as do virtually all other compilers targeting the Windows platform.
+
+Modern versions of the GNU GCC compiler provide the `__attribute__((visibility("default")))`
+extension to indicate that a symbol should be exported. All other symbols may be hidden by using the
+`-fvisibility-hidden` or `-fvisibility-ms-compat` compiler switches.
+
+Boost supplies several macros to make it easier to manage symbol visibility in a way that
+is portable between compilers and operating systems.
+
+[table
+[[Macro ][Description ]]
+[[`BOOST_SYMBOL_EXPORT`][
+Defines the syntax of a C++ language extension that indicates a symbol is to be exported from a shared library.
+If the compiler has no such extension, the macro is defined with no replacement text.
+]]
+[[`BOOST_SYMBOL_IMPORT`][
+Defines the syntax of a C++ language extension that indicates a symbol is to be imported from a shared library.
+If the compiler has no such extension, the macro is defined with no replacement text.
+]]
+[[`BOOST_SYMBOL_VISIBLE`][
+Defines the syntax of a C++ language extension that indicates a symbol is to be globally visible.
+If the compiler has no such extension, the macro is defined with no replacement text.
+Needed for classes that are not otherwise exported, but are used by RTTI. Examples include
+class for objects that will be thrown as exceptions or used in dynamic_casts,
+across shared library boundaries. For example, a header-only exception class might look like this:
+``
+ class BOOST_SYMBOL_VISIBLE my_exception : public std::runtime_error { ... };
+``
+Without BOOST_SYMBOL_VISIBLE, it would be impossible to catch my_exception thrown from a shared library
+compiled by GCC with the -fvisibility=hidden option.
+]]
+[[`BOOST_HAS_DECLSPEC`][
+The compiler has C++ extensions `__declspec(dllexport)` and `__declspec(dllimport)` to control
+export/import of symbols from shared libraries.
+['Deprecated. This macro is no longer necessary since BOOST_SYMBOL_EXPORT and BOOST_SYMBOL_IMPORT
+are now supplied. It is provided to support legacy code.]
+]]
+]
+
+Typical usage:
+
+[*boost/foo/config.hpp]
+
+ ...
+ #if defined(BOOST_ALL_DYN_LINK) || defined(BOOST_FOO_DYN_LINK)
+ # if defined(BOOST_FOO_SOURCE)
+ # define BOOST_FOO_DECL BOOST_SYMBOL_EXPORT
+ # else
+ # define BOOST_FOO_DECL BOOST_SYMBOL_IMPORT
+ # endif
+ #else
+ # define BOOST_FOO_DECL
+ #endif
+ ...
+
+[*boost/foo/foo.hpp]
+
+ #include <boost/foo/config.hpp>
+ ...
+ class BOOST_FOO_DECL bar { ... };
+ ...
+ void BOOST_FOO_DECL f();
+ ...
+
+[*boost/libs/foo/src/foo.cpp]
+
+ #define BOOST_FOO_SOURCE
+ #include <boost/foo/foo.hpp>
+ ...
+ void BOOST_FOO_DECL f()
+ {
+ ...
+ }
+ ...
+
+[endsect]
+
+[section ABI Fixing]
+
+When linking against a pre-compiled library it vital that the ABI used by the
+compiler when building the library ['matches exactly] the ABI used by the code
+using the library. In this case ABI means things like the struct packing
+arrangement used, the name mangling scheme used, or the size of some types
+(enum types for example). This is separate from things like threading support,
+or runtime library variations, which have to be dealt with by build variants.
+To put this in perspective there is one compiler (Borland's) that has so many
+compiler options that make subtle changes to the ABI, that at least in theory
+there 3200 combinations, and that's without considering runtime library
+variations. Fortunately these variations can be managed by `#pragma`'s that
+tell the compiler what ABI to use for the types declared in your library.
+In order to avoid sprinkling `#pragma`'s all over the boost headers, there are
+some prefix and suffix headers that do the job. Typical usage is:
+
+[*my_library.hpp]
+
+ #ifndef MY_INCLUDE_GUARD
+ #define MY_INCLUDE_GUARD
+
+ // all includes go here:
+ ``[^[*#include <boost/config.hpp>]]``
+ #include <whatever>
+
+ ``[^[*#include <boost/config/abi_prefix.hpp>]]`` // must be the last #include
+
+ namespace boost {
+
+ // your code goes here
+
+ }
+
+ ``[^[*#include <boost/config/abi_suffix.hpp>]]`` // pops abi_prefix.hpp pragmas
+
+ #endif // include guard
+
+[*my_library.cpp]
+
+ ...
+ // nothing special need be done in the implementation file
+ ...
+
+The user can disable this mechanism by defining `BOOST_DISABLE_ABI_HEADERS`, or
+they can define `BOOST_ABI_PREFIX` and/or `BOOST_ABI_SUFFIX` to point to their
+own prefix/suffix headers if they so wish.
+
+[endsect]
+
+[section Automatic library selection]
+
+It is essential that users link to a build of a library which was built against
+the same runtime library that their application will be built against -if this
+does not happen then the library will not be binary compatible with their own
+code- and there is a high likelihood that their application will experience
+runtime crashes. These kinds of problems can be extremely time consuming and
+difficult to debug, and often lead to frustrated users and authors alike (simply
+selecting the right library to link against is not as easy as it seems when
+their are 6-8 of them to chose from, and some users seem to be blissfully
+unaware that there even are different runtimes available to them).
+
+To solve this issue, some compilers allow source code to contain `#pragma`'s that
+instruct the linker which library to link against, all the user need do is
+include the headers they need, place the compiled libraries in their library
+search path, and the compiler and linker do the rest. Boost.config supports
+this via the header `<boost/config/auto_link.hpp>`, before including this header
+one or more of the following macros need to be defined:
+
+[variablelist
+[[`BOOST_LIB_NAME`][
+Required: An identifier containing the basename of the library, for
+example 'boost_regex'.
+]]
+[[`BOOST_DYN_LINK`][
+Optional: when set link to dll rather than static library.
+]]
+[[`BOOST_LIB_DIAGNOSTIC`][
+Optional: when set the header will print out the name of the library selected
+(useful for debugging).
+]]
+]
+
+If the compiler supports this mechanism, then it will be told to link against
+the appropriately named library, the actual algorithm used to mangle the name
+of the library is documented inside `<boost/config/auto_link.hpp>` and has to
+match that used to create the libraries via bjam 's install rules.
+
+
+[*my_library.hpp]
+
+ ...
+ //
+ // Don't include auto-linking code if the user has disabled it by
+ // defining BOOST_ALL_NO_LIB, or BOOST_MY_LIBRARY_NO_LIB, or if this
+ // is one of our own source files (signified by BOOST_MY_LIBRARY_SOURCE):
+ //
+ #if !defined(BOOST_ALL_NO_LIB) && !defined(BOOST_MY_LIBRARY_NO_LIB) && !defined(BOOST_MY_LIBRARY_SOURCE)
+ # define BOOST_LIB_NAME boost_my_library
+ # ifdef BOOST_MY_LIBRARY_DYN_LINK
+ # define BOOST_DYN_LINK
+ # endif
+ # include <boost/config/auto_link.hpp>
+ #endif
+ ...
+
+[*my_library.cpp]
+
+ // define BOOST_MY_LIBRARY_SOURCE so that the header knows that the
+ // library is being built (possibly exporting rather than importing code)
+ //
+ #define BOOST_MY_LIBRARY_SOURCE
+
+ #include <boost/my_library/my_library.hpp>
+ ...
+
+[endsect]
+
+[endsect]
+
+[endsect]
+
+
+
diff --git a/libs/config/doc/rationale.qbk b/libs/config/doc/rationale.qbk
new file mode 100644
index 0000000000..c5c78fe712
--- /dev/null
+++ b/libs/config/doc/rationale.qbk
@@ -0,0 +1,80 @@
+[/
+ Boost.Config
+
+ Copyright (c) 2001 Beman Dawes
+ Copyright (c) 2001 Vesa Karvonen
+ Copyright (c) 2001 John Maddock
+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
+]
+
+[section Rationale]
+
+The problem with many traditional "textbook" implementations of configuration
+headers (where all the configuration options are in a single "monolithic"
+header) is that they violate certain fundamental software engineering
+principles which would have the effect of making boost more fragile, more
+difficult to maintain and more difficult to use safely. You can find a
+description of the principles from the __PRINCIPLES_AND_PATTERNS_ARTICLE__.
+
+[section The problem]
+
+Consider a situation in which you are concurrently developing on multiple
+platforms. Then consider adding a new platform or changing the platform
+definitions of an existing platform. What happens? Everything, and this does
+literally mean everything, recompiles. Isn't it quite absurd that adding a
+new platform, which has absolutely nothing to do with previously existing
+platforms, means that all code on all existing platforms needs to be
+recompiled?
+
+Effectively, there is an imposed physical dependency between platforms that
+have nothing to do with each other. Essentially, the traditional solution
+employed by configuration headers does not conform to the Open-Closed
+Principle:
+
+[: [*"A module should be open for extension but closed for modification."]]
+
+Extending a traditional configuration header implies modifying existing code.
+
+Furthermore, consider the complexity and fragility of the platform detection
+code. What if a simple change breaks the detection on some minor platform?
+What if someone accidentally or on purpose (as a workaround for some other
+problem) defines some platform dependent macros that are used by the
+detection code? A traditional configuration header is one of the most
+volatile headers of the entire library, and more stable elements of
+Boost would depend on it. This violates the Stable Dependencies Principle:
+
+[: [*"Depend in the direction of stability."]]
+
+After even a minor change to a traditional configuration header on one minor
+platform, almost everything on every platform should be tested if we follow
+sound software engineering practice.
+
+Another important issue is that it is not always possible to submit changes
+to `<boost/config.hpp>`. Some boost users are currently working on platforms
+using tools and libraries that are under strict Non-Disclosure Agreements.
+In this situation it is impossible to submit changes to a traditional
+monolithic configuration header, instead some method by which the user
+can insert their own configuration code must be provided.
+
+[endsect]
+
+[section The solution]
+
+The approach taken by boost's configuration headers is to separate
+configuration into three orthogonal parts: the compiler, the standard
+library and the platform. Each compiler/standard library/platform gets
+its own mini-configuration header, so that changes to one compiler's
+configuration (for example) does not affect other compilers. In addition
+there are measures that can be taken both to omit the compiler/standard
+library/platform detection code (so that adding support to a new platform
+does not break dependencies), or to freeze the configuration completely;
+providing almost complete protection against dependency changes.
+
+[endsect]
+
+[endsect]
+
+
diff --git a/libs/config/index.html b/libs/config/index.html
new file mode 100644
index 0000000000..df7430bd0e
--- /dev/null
+++ b/libs/config/index.html
@@ -0,0 +1,15 @@
+<html>
+ <head>
+ <meta http-equiv="refresh" content="0; URL=doc/html/index.html">
+ </head>
+ <body>
+ <P>
+ Automatic redirection failed, please go to <a href="doc/html/index.html">doc/html/index.html</a>.
+ </P>
+ <P>Copyright&nbsp;John Maddock 2001</P>
+ <P>Distributed under the Boost Software License, Version 1.0. (See accompanying file <A href="../../LICENSE_1_0.txt">
+ LICENSE_1_0.txt</A> or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</A>).</P>
+ </body>
+</html>
+
+
diff --git a/libs/config/test/Jamfile.v2 b/libs/config/test/Jamfile.v2
new file mode 100644
index 0000000000..df61352320
--- /dev/null
+++ b/libs/config/test/Jamfile.v2
@@ -0,0 +1,62 @@
+#
+# Copyright John Maddock 2008.
+# Use, modification and distribution are subject to the
+# Boost Software License, Version 1.0. (See accompanying file
+# LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+#
+# If you need to alter build preferences then set them in
+# the template defined in options_v2.jam.
+#
+
+import modules ;
+
+local is_unix = [ modules.peek : UNIX ] ;
+
+if $(is_unix)
+{
+ local osname = [ SHELL uname ] ;
+
+ switch $(osname)
+ {
+ case "Sun*" : OTHERFLAGS = "-lpthread -lrt" ;
+ case "*BSD*" : OTHERFLAGS = "-lpthread" ;
+ }
+}
+
+test-suite config
+ :
+ [ compile config_test_c.c ]
+ [ run config_test.cpp
+ : #args
+ : #input-files
+ : #requirements
+ <threading>multi
+ : config_test_threaded
+ ]
+ [ run config_test.cpp
+ : #args
+ : #input-files
+ : #requirements
+ <threading>single <toolset>msvc:<runtime-link>static <toolset>msvc:<link>static
+ <target-os>linux:<linkflags>-lpthread
+ <target-os>linux:<linkflags>-lrt
+ <toolset>gcc:<linkflags>$(OTHERFLAGS)
+ ]
+ [ run config_info.cpp : : : <test-info>always_show_run_output <threading>single <toolset>msvc:<runtime-link>static <toolset>msvc:<link>static ]
+ [ run config_info.cpp : : : <test-info>always_show_run_output <threading>multi : config_info_threaded ]
+ [ run math_info.cpp : : : <test-info>always_show_run_output <toolset>borland:<runtime-link>static <toolset>borland:<link>static ]
+ [ run abi/abi_test.cpp abi/main.cpp ]
+ [ run limits_test.cpp ../../test/build//boost_test_exec_monitor ]
+ [ run link/main.cpp link//link_test
+ : #args
+ : #input-files
+ : #requirements
+ <runtime-link>shared
+ <define>BOOST_DYN_LINK=1
+ <define>BOOST_CONFIG_NO_LIB=1
+ :
+ config_link_test
+ ]
+ [ compile-fail threads/test_thread_fail1.cpp ]
+ [ compile-fail threads/test_thread_fail2.cpp ]
+ ;
diff --git a/libs/config/test/abi/abi_test.cpp b/libs/config/test/abi/abi_test.cpp
new file mode 100644
index 0000000000..98be1b196a
--- /dev/null
+++ b/libs/config/test/abi/abi_test.cpp
@@ -0,0 +1,27 @@
+// (C) Copyright John Maddock 2003.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+
+#include "abi_test.hpp"
+
+
+char abi_test::virtual_one()const
+{
+ return c;
+}
+
+boost::int32_t abi_test::virtual_two()const
+{
+ return i;
+}
+
+abi_test::abi_test()
+{
+ c = 0x12;
+ i = 0x5678;
+}
+
diff --git a/libs/config/test/abi/abi_test.hpp b/libs/config/test/abi/abi_test.hpp
new file mode 100644
index 0000000000..a2bec783bf
--- /dev/null
+++ b/libs/config/test/abi/abi_test.hpp
@@ -0,0 +1,54 @@
+// (C) Copyright John Maddock 2003.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+
+#ifndef BOOST_ABI_TEST_HPP
+#define BOOST_ABI_TEST_HPP
+
+#include <boost/config.hpp>
+#include <boost/cstdint.hpp>
+
+#ifdef BOOST_HAS_ABI_HEADERS
+#include BOOST_ABI_PREFIX
+#endif
+
+//
+// the following class is designed to break if the ABI
+// it's compiled with does not match that of the client
+// calling it....
+//
+
+struct empty{};
+
+class abi_test : protected empty
+{
+private:
+ empty e;
+ char c;
+ boost::int32_t i;
+public:
+ inline char inline_one()const
+ { return c; }
+ inline boost::int32_t inline_two()const
+ { return i; }
+
+ virtual char virtual_one()const;
+ virtual boost::int32_t virtual_two()const;
+
+ abi_test();
+};
+
+
+
+#ifdef BOOST_HAS_ABI_HEADERS
+#include BOOST_ABI_SUFFIX
+#endif
+
+#endif // BOOST_ABI_TEST_HPP
+
+
+
diff --git a/libs/config/test/abi/main.cpp b/libs/config/test/abi/main.cpp
new file mode 100644
index 0000000000..e8f9d1393c
--- /dev/null
+++ b/libs/config/test/abi/main.cpp
@@ -0,0 +1,31 @@
+// (C) Copyright John Maddock 2003.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+//
+// before we do anything else, we need to mess with the compilers ABI:
+//
+#include <boost/config.hpp>
+#ifdef BOOST_MSVC
+#pragma pack(1)
+#elif defined(__BORLANDC__)
+#pragma option -Ve- -Vx- -a1 -b-
+#endif
+#include <stdio.h>
+#include "abi_test.hpp"
+
+
+int main()
+{
+ abi_test t;
+ if((t.inline_one() != t.virtual_one()) || (t.inline_two() != t.virtual_two()))
+ {
+ fwrite("Failed ABI test", 1, 15, stdout);
+ return -1;
+ }
+ return 0;
+}
+
diff --git a/libs/config/test/all/Jamfile.v2 b/libs/config/test/all/Jamfile.v2
new file mode 100644
index 0000000000..811c052a0a
--- /dev/null
+++ b/libs/config/test/all/Jamfile.v2
@@ -0,0 +1,526 @@
+#
+# Regression test Jamfile for boost configuration setup.
+# *** DO NOT EDIT THIS FILE BY HAND ***
+# This file was automatically generated on Sun Nov 27 09:43:19 2011
+# by libs/config/tools/generate.cpp
+# Copyright John Maddock.
+# Use, modification and distribution are subject to the
+# Boost Software License, Version 1.0. (See accompanying file
+# LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+#
+# If you need to alter build preferences then set them in
+# the template defined in options_v2.jam.
+#
+path-constant DOT : . ;
+include $(DOT)/options_v2.jam ;
+
+run ../config_info.cpp : : : <threading>single <toolset>msvc:<runtime-link>static <toolset>msvc:<link>static ;
+run ../config_info.cpp : : : <threading>multi : config_info_threaded ;
+run ../math_info.cpp : : : <toolset>borland:<runtime-link>static <toolset>borland:<link>static ;
+run ../config_test.cpp : : : <threading>single <toolset>msvc:<runtime-link>static <toolset>msvc:<link>static ;
+run ../config_test.cpp : : : <threading>multi : config_test_threaded ;
+run ../limits_test.cpp ../../../test/build//boost_test_exec_monitor ;
+run ../abi/abi_test.cpp ../abi/main.cpp ;
+
+test-suite "BOOST_HAS_TWO_ARG_USE_FACET" :
+[ run ../has_2arg_use_facet_pass.cpp ]
+[ compile-fail ../has_2arg_use_facet_fail.cpp ] ;
+test-suite "BOOST_HAS_BETHREADS" :
+[ run ../has_bethreads_pass.cpp ]
+[ compile-fail ../has_bethreads_fail.cpp ] ;
+test-suite "BOOST_HAS_CLOCK_GETTIME" :
+[ run ../has_clock_gettime_pass.cpp ]
+[ compile-fail ../has_clock_gettime_fail.cpp ] ;
+test-suite "BOOST_HAS_DIRENT_H" :
+[ run ../has_dirent_h_pass.cpp ]
+[ compile-fail ../has_dirent_h_fail.cpp ] ;
+test-suite "BOOST_HAS_EXPM1" :
+[ run ../has_expm1_pass.cpp ]
+[ compile-fail ../has_expm1_fail.cpp ] ;
+test-suite "BOOST_HAS_FTIME" :
+[ run ../has_ftime_pass.cpp ]
+[ compile-fail ../has_ftime_fail.cpp ] ;
+test-suite "BOOST_HAS_GETSYSTEMTIMEASFILETIME" :
+[ run ../has_getsystemtimeasfiletime_pass.cpp ]
+[ compile-fail ../has_getsystemtimeasfiletime_fail.cpp ] ;
+test-suite "BOOST_HAS_GETTIMEOFDAY" :
+[ run ../has_gettimeofday_pass.cpp ]
+[ compile-fail ../has_gettimeofday_fail.cpp ] ;
+test-suite "BOOST_HAS_HASH" :
+[ run ../has_hash_pass.cpp ]
+[ compile-fail ../has_hash_fail.cpp ] ;
+test-suite "BOOST_HAS_LOG1P" :
+[ run ../has_log1p_pass.cpp ]
+[ compile-fail ../has_log1p_fail.cpp ] ;
+test-suite "BOOST_HAS_LONG_LONG" :
+[ run ../has_long_long_pass.cpp ]
+[ compile-fail ../has_long_long_fail.cpp ] ;
+test-suite "BOOST_HAS_MACRO_USE_FACET" :
+[ run ../has_macro_use_facet_pass.cpp ]
+[ compile-fail ../has_macro_use_facet_fail.cpp ] ;
+test-suite "BOOST_HAS_MS_INT64" :
+[ run ../has_ms_int64_pass.cpp ]
+[ compile-fail ../has_ms_int64_fail.cpp ] ;
+test-suite "BOOST_HAS_NANOSLEEP" :
+[ run ../has_nanosleep_pass.cpp ]
+[ compile-fail ../has_nanosleep_fail.cpp ] ;
+test-suite "BOOST_HAS_NL_TYPES_H" :
+[ run ../has_nl_types_h_pass.cpp ]
+[ compile-fail ../has_nl_types_h_fail.cpp ] ;
+test-suite "BOOST_HAS_NRVO" :
+[ run ../has_nrvo_pass.cpp ]
+[ compile-fail ../has_nrvo_fail.cpp ] ;
+test-suite "BOOST_HAS_PARTIAL_STD_ALLOCATOR" :
+[ run ../has_part_alloc_pass.cpp ]
+[ compile-fail ../has_part_alloc_fail.cpp ] ;
+test-suite "BOOST_HAS_PTHREADS" :
+[ run ../has_pthreads_pass.cpp ]
+[ compile-fail ../has_pthreads_fail.cpp ] ;
+test-suite "BOOST_HAS_PTHREAD_DELAY_NP" :
+[ run ../has_pthread_delay_np_pass.cpp ]
+[ compile-fail ../has_pthread_delay_np_fail.cpp ] ;
+test-suite "BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE" :
+[ run ../has_pthread_ma_st_pass.cpp ]
+[ compile-fail ../has_pthread_ma_st_fail.cpp ] ;
+test-suite "BOOST_HAS_PTHREAD_YIELD" :
+[ run ../has_pthread_yield_pass.cpp ]
+[ compile-fail ../has_pthread_yield_fail.cpp ] ;
+test-suite "BOOST_HAS_RVALUE_REFS" :
+[ run ../has_rvalue_refs_pass.cpp ]
+[ compile-fail ../has_rvalue_refs_fail.cpp ] ;
+test-suite "BOOST_HAS_SCHED_YIELD" :
+[ run ../has_sched_yield_pass.cpp ]
+[ compile-fail ../has_sched_yield_fail.cpp ] ;
+test-suite "BOOST_HAS_SGI_TYPE_TRAITS" :
+[ run ../has_sgi_type_traits_pass.cpp ]
+[ compile-fail ../has_sgi_type_traits_fail.cpp ] ;
+test-suite "BOOST_HAS_SIGACTION" :
+[ run ../has_sigaction_pass.cpp ]
+[ compile-fail ../has_sigaction_fail.cpp ] ;
+test-suite "BOOST_HAS_SLIST" :
+[ run ../has_slist_pass.cpp ]
+[ compile-fail ../has_slist_fail.cpp ] ;
+test-suite "BOOST_HAS_STATIC_ASSERT" :
+[ run ../has_static_assert_pass.cpp ]
+[ compile-fail ../has_static_assert_fail.cpp ] ;
+test-suite "BOOST_HAS_STDINT_H" :
+[ run ../has_stdint_h_pass.cpp ]
+[ compile-fail ../has_stdint_h_fail.cpp ] ;
+test-suite "BOOST_HAS_STLP_USE_FACET" :
+[ run ../has_stlp_use_facet_pass.cpp ]
+[ compile-fail ../has_stlp_use_facet_fail.cpp ] ;
+test-suite "BOOST_HAS_TR1_ARRAY" :
+[ run ../has_tr1_array_pass.cpp ]
+[ compile-fail ../has_tr1_array_fail.cpp ] ;
+test-suite "BOOST_HAS_TR1_BIND" :
+[ run ../has_tr1_bind_pass.cpp ]
+[ compile-fail ../has_tr1_bind_fail.cpp ] ;
+test-suite "BOOST_HAS_TR1_COMPLEX_OVERLOADS" :
+[ run ../has_tr1_complex_over_pass.cpp ]
+[ compile-fail ../has_tr1_complex_over_fail.cpp ] ;
+test-suite "BOOST_HAS_TR1_COMPLEX_INVERSE_TRIG" :
+[ run ../has_tr1_complex_trig_pass.cpp ]
+[ compile-fail ../has_tr1_complex_trig_fail.cpp ] ;
+test-suite "BOOST_HAS_TR1_FUNCTION" :
+[ run ../has_tr1_function_pass.cpp ]
+[ compile-fail ../has_tr1_function_fail.cpp ] ;
+test-suite "BOOST_HAS_TR1_HASH" :
+[ run ../has_tr1_hash_pass.cpp ]
+[ compile-fail ../has_tr1_hash_fail.cpp ] ;
+test-suite "BOOST_HAS_TR1_MEM_FN" :
+[ run ../has_tr1_mem_fn_pass.cpp ]
+[ compile-fail ../has_tr1_mem_fn_fail.cpp ] ;
+test-suite "BOOST_HAS_TR1_RANDOM" :
+[ run ../has_tr1_random_pass.cpp ]
+[ compile-fail ../has_tr1_random_fail.cpp ] ;
+test-suite "BOOST_HAS_TR1_REFERENCE_WRAPPER" :
+[ run ../has_tr1_ref_wrap_pass.cpp ]
+[ compile-fail ../has_tr1_ref_wrap_fail.cpp ] ;
+test-suite "BOOST_HAS_TR1_REGEX" :
+[ run ../has_tr1_regex_pass.cpp ]
+[ compile-fail ../has_tr1_regex_fail.cpp ] ;
+test-suite "BOOST_HAS_TR1_RESULT_OF" :
+[ run ../has_tr1_result_of_pass.cpp ]
+[ compile-fail ../has_tr1_result_of_fail.cpp ] ;
+test-suite "BOOST_HAS_TR1_SHARED_PTR" :
+[ run ../has_tr1_shared_ptr_pass.cpp ]
+[ compile-fail ../has_tr1_shared_ptr_fail.cpp ] ;
+test-suite "BOOST_HAS_TR1_TUPLE" :
+[ run ../has_tr1_tuple_pass.cpp ]
+[ compile-fail ../has_tr1_tuple_fail.cpp ] ;
+test-suite "BOOST_HAS_TR1_TYPE_TRAITS" :
+[ run ../has_tr1_type_traits_pass.cpp ]
+[ compile-fail ../has_tr1_type_traits_fail.cpp ] ;
+test-suite "BOOST_HAS_TR1_UNORDERED_MAP" :
+[ run ../has_tr1_unordered_map_pass.cpp ]
+[ compile-fail ../has_tr1_unordered_map_fail.cpp ] ;
+test-suite "BOOST_HAS_TR1_UNORDERED_SET" :
+[ run ../has_tr1_unordered_set_pass.cpp ]
+[ compile-fail ../has_tr1_unordered_set_fail.cpp ] ;
+test-suite "BOOST_HAS_TR1_UTILITY" :
+[ run ../has_tr1_utility_pass.cpp ]
+[ compile-fail ../has_tr1_utility_fail.cpp ] ;
+test-suite "BOOST_HAS_UNISTD_H" :
+[ run ../has_unistd_h_pass.cpp ]
+[ compile-fail ../has_unistd_h_fail.cpp ] ;
+test-suite "BOOST_HAS_VARIADIC_TMPL" :
+[ run ../has_variadic_tmpl_pass.cpp ]
+[ compile-fail ../has_variadic_tmpl_fail.cpp ] ;
+test-suite "BOOST_MSVC6_MEMBER_TEMPLATES" :
+[ run ../has_vc6_mem_templ_pass.cpp ]
+[ compile-fail ../has_vc6_mem_templ_fail.cpp ] ;
+test-suite "BOOST_MSVC_STD_ITERATOR" :
+[ run ../has_vc_iterator_pass.cpp ]
+[ compile-fail ../has_vc_iterator_fail.cpp ] ;
+test-suite "BOOST_HAS_WINTHREADS" :
+[ run ../has_winthreads_pass.cpp ]
+[ compile-fail ../has_winthreads_fail.cpp ] ;
+test-suite "BOOST_NO_0X_HDR_ARRAY" :
+[ run ../no_0x_hdr_array_pass.cpp ]
+[ compile-fail ../no_0x_hdr_array_fail.cpp ] ;
+test-suite "BOOST_NO_0X_HDR_CHRONO" :
+[ run ../no_0x_hdr_chrono_pass.cpp ]
+[ compile-fail ../no_0x_hdr_chrono_fail.cpp ] ;
+test-suite "BOOST_NO_0X_HDR_CODECVT" :
+[ run ../no_0x_hdr_codecvt_pass.cpp ]
+[ compile-fail ../no_0x_hdr_codecvt_fail.cpp ] ;
+test-suite "BOOST_NO_0X_HDR_CONDITION_VARIABLE" :
+[ run ../no_0x_hdr_condition_variable_pass.cpp ]
+[ compile-fail ../no_0x_hdr_condition_variable_fail.cpp ] ;
+test-suite "BOOST_NO_0X_HDR_FORWARD_LIST" :
+[ run ../no_0x_hdr_forward_list_pass.cpp ]
+[ compile-fail ../no_0x_hdr_forward_list_fail.cpp ] ;
+test-suite "BOOST_NO_0X_HDR_FUTURE" :
+[ run ../no_0x_hdr_future_pass.cpp ]
+[ compile-fail ../no_0x_hdr_future_fail.cpp ] ;
+test-suite "BOOST_NO_0X_HDR_INITIALIZER_LIST" :
+[ run ../no_0x_hdr_initializer_list_pass.cpp ]
+[ compile-fail ../no_0x_hdr_initializer_list_fail.cpp ] ;
+test-suite "BOOST_NO_0X_HDR_MUTEX" :
+[ run ../no_0x_hdr_mutex_pass.cpp ]
+[ compile-fail ../no_0x_hdr_mutex_fail.cpp ] ;
+test-suite "BOOST_NO_0X_HDR_RANDOM" :
+[ run ../no_0x_hdr_random_pass.cpp ]
+[ compile-fail ../no_0x_hdr_random_fail.cpp ] ;
+test-suite "BOOST_NO_0X_HDR_RATIO" :
+[ run ../no_0x_hdr_ratio_pass.cpp ]
+[ compile-fail ../no_0x_hdr_ratio_fail.cpp ] ;
+test-suite "BOOST_NO_0X_HDR_REGEX" :
+[ run ../no_0x_hdr_regex_pass.cpp ]
+[ compile-fail ../no_0x_hdr_regex_fail.cpp ] ;
+test-suite "BOOST_NO_0X_HDR_SYSTEM_ERROR" :
+[ run ../no_0x_hdr_system_error_pass.cpp ]
+[ compile-fail ../no_0x_hdr_system_error_fail.cpp ] ;
+test-suite "BOOST_NO_0X_HDR_THREAD" :
+[ run ../no_0x_hdr_thread_pass.cpp ]
+[ compile-fail ../no_0x_hdr_thread_fail.cpp ] ;
+test-suite "BOOST_NO_0X_HDR_TUPLE" :
+[ run ../no_0x_hdr_tuple_pass.cpp ]
+[ compile-fail ../no_0x_hdr_tuple_fail.cpp ] ;
+test-suite "BOOST_NO_0X_HDR_TYPEINDEX" :
+[ run ../no_0x_hdr_typeindex_pass.cpp ]
+[ compile-fail ../no_0x_hdr_typeindex_fail.cpp ] ;
+test-suite "BOOST_NO_0X_HDR_TYPE_TRAITS" :
+[ run ../no_0x_hdr_type_traits_pass.cpp ]
+[ compile-fail ../no_0x_hdr_type_traits_fail.cpp ] ;
+test-suite "BOOST_NO_0X_HDR_UNORDERED_MAP" :
+[ run ../no_0x_hdr_unordered_map_pass.cpp ]
+[ compile-fail ../no_0x_hdr_unordered_map_fail.cpp ] ;
+test-suite "BOOST_NO_0X_HDR_UNORDERED_SET" :
+[ run ../no_0x_hdr_unordered_set_pass.cpp ]
+[ compile-fail ../no_0x_hdr_unordered_set_fail.cpp ] ;
+test-suite "BOOST_NO_ADL_BARRIER" :
+[ run ../no_adl_barrier_pass.cpp ]
+[ compile-fail ../no_adl_barrier_fail.cpp ] ;
+test-suite "BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP" :
+[ run ../no_arg_dep_lookup_pass.cpp ]
+[ compile-fail ../no_arg_dep_lookup_fail.cpp ] ;
+test-suite "BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS" :
+[ run ../no_array_type_spec_pass.cpp ]
+[ compile-fail ../no_array_type_spec_fail.cpp ] ;
+test-suite "BOOST_NO_AUTO_DECLARATIONS" :
+[ run ../no_auto_declarations_pass.cpp ]
+[ compile-fail ../no_auto_declarations_fail.cpp ] ;
+test-suite "BOOST_NO_AUTO_MULTIDECLARATIONS" :
+[ run ../no_auto_multidecl_pass.cpp ]
+[ compile-fail ../no_auto_multidecl_fail.cpp ] ;
+test-suite "BOOST_NO_AUTO_PTR" :
+[ run ../no_auto_ptr_pass.cpp ]
+[ compile-fail ../no_auto_ptr_fail.cpp ] ;
+test-suite "BOOST_BCB_PARTIAL_SPECIALIZATION_BUG" :
+[ run ../no_bcb_partial_spec_pass.cpp ]
+[ compile-fail ../no_bcb_partial_spec_fail.cpp ] ;
+test-suite "BOOST_NO_CHAR16_T" :
+[ run ../no_char16_t_pass.cpp ]
+[ compile-fail ../no_char16_t_fail.cpp ] ;
+test-suite "BOOST_NO_CHAR32_T" :
+[ run ../no_char32_t_pass.cpp ]
+[ compile-fail ../no_char32_t_fail.cpp ] ;
+test-suite "BOOST_NO_COMPLETE_VALUE_INITIALIZATION" :
+[ run ../no_com_value_init_pass.cpp ]
+[ compile-fail ../no_com_value_init_fail.cpp ] ;
+test-suite "BOOST_NO_CONSTEXPR" :
+[ run ../no_constexpr_pass.cpp ]
+[ compile-fail ../no_constexpr_fail.cpp ] ;
+test-suite "BOOST_NO_CTYPE_FUNCTIONS" :
+[ run ../no_ctype_functions_pass.cpp ]
+[ compile-fail ../no_ctype_functions_fail.cpp ] ;
+test-suite "BOOST_NO_CV_SPECIALIZATIONS" :
+[ run ../no_cv_spec_pass.cpp ]
+[ compile-fail ../no_cv_spec_fail.cpp ] ;
+test-suite "BOOST_NO_CV_VOID_SPECIALIZATIONS" :
+[ run ../no_cv_void_spec_pass.cpp ]
+[ compile-fail ../no_cv_void_spec_fail.cpp ] ;
+test-suite "BOOST_NO_CWCHAR" :
+[ run ../no_cwchar_pass.cpp ]
+[ compile-fail ../no_cwchar_fail.cpp ] ;
+test-suite "BOOST_NO_CWCTYPE" :
+[ run ../no_cwctype_pass.cpp ]
+[ compile-fail ../no_cwctype_fail.cpp ] ;
+test-suite "BOOST_NO_DECLTYPE" :
+[ run ../no_decltype_pass.cpp ]
+[ compile-fail ../no_decltype_fail.cpp ] ;
+test-suite "BOOST_NO_DECLTYPE_N3276" :
+[ run ../no_decltype_n3276_pass.cpp ]
+[ compile-fail ../no_decltype_n3276_fail.cpp ] ;
+test-suite "BOOST_DEDUCED_TYPENAME" :
+[ run ../no_ded_typename_pass.cpp ]
+[ compile-fail ../no_ded_typename_fail.cpp ] ;
+test-suite "BOOST_NO_DEFAULTED_FUNCTIONS" :
+[ run ../no_defaulted_functions_pass.cpp ]
+[ compile-fail ../no_defaulted_functions_fail.cpp ] ;
+test-suite "BOOST_NO_DELETED_FUNCTIONS" :
+[ run ../no_deleted_functions_pass.cpp ]
+[ compile-fail ../no_deleted_functions_fail.cpp ] ;
+test-suite "BOOST_NO_DEPENDENT_NESTED_DERIVATIONS" :
+[ run ../no_dep_nested_class_pass.cpp ]
+[ compile-fail ../no_dep_nested_class_fail.cpp ] ;
+test-suite "BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS" :
+[ run ../no_dep_val_param_pass.cpp ]
+[ compile-fail ../no_dep_val_param_fail.cpp ] ;
+test-suite "BOOST_NO_EXCEPTIONS" :
+[ run ../no_exceptions_pass.cpp ]
+[ compile-fail ../no_exceptions_fail.cpp ] ;
+test-suite "BOOST_NO_EXCEPTION_STD_NAMESPACE" :
+[ run ../no_excep_std_pass.cpp ]
+[ compile-fail ../no_excep_std_fail.cpp ] ;
+test-suite "BOOST_NO_EXPLICIT_CONVERSION_OPERATORS" :
+[ run ../no_explicit_cvt_ops_pass.cpp ]
+[ compile-fail ../no_explicit_cvt_ops_fail.cpp ] ;
+test-suite "BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS" :
+[ run ../no_exp_func_tem_arg_pass.cpp ]
+[ compile-fail ../no_exp_func_tem_arg_fail.cpp ] ;
+test-suite "BOOST_NO_EXTERN_TEMPLATE" :
+[ run ../no_extern_template_pass.cpp ]
+[ compile-fail ../no_extern_template_fail.cpp ] ;
+test-suite "BOOST_NO_FENV_H" :
+[ run ../no_fenv_h_pass.cpp ]
+[ compile-fail ../no_fenv_h_fail.cpp ] ;
+test-suite "BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS" :
+[ run ../no_function_template_default_args_pass.cpp ]
+[ compile-fail ../no_function_template_default_args_fail.cpp ] ;
+test-suite "BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS" :
+[ run ../no_function_type_spec_pass.cpp ]
+[ compile-fail ../no_function_type_spec_fail.cpp ] ;
+test-suite "BOOST_NO_FUNCTION_TEMPLATE_ORDERING" :
+[ run ../no_func_tmp_order_pass.cpp ]
+[ compile-fail ../no_func_tmp_order_fail.cpp ] ;
+test-suite "BOOST_NO_MS_INT64_NUMERIC_LIMITS" :
+[ run ../no_i64_limits_pass.cpp ]
+[ compile-fail ../no_i64_limits_fail.cpp ] ;
+test-suite "BOOST_NO_INITIALIZER_LISTS" :
+[ run ../no_initializer_lists_pass.cpp ]
+[ compile-fail ../no_initializer_lists_fail.cpp ] ;
+test-suite "BOOST_NO_INCLASS_MEMBER_INITIALIZATION" :
+[ run ../no_inline_memb_init_pass.cpp ]
+[ compile-fail ../no_inline_memb_init_fail.cpp ] ;
+test-suite "BOOST_NO_INTEGRAL_INT64_T" :
+[ run ../no_integral_int64_t_pass.cpp ]
+[ compile-fail ../no_integral_int64_t_fail.cpp ] ;
+test-suite "BOOST_NO_IOSFWD" :
+[ run ../no_iosfwd_pass.cpp ]
+[ compile-fail ../no_iosfwd_fail.cpp ] ;
+test-suite "BOOST_NO_IOSTREAM" :
+[ run ../no_iostream_pass.cpp ]
+[ compile-fail ../no_iostream_fail.cpp ] ;
+test-suite "BOOST_NO_IS_ABSTRACT" :
+[ run ../no_is_abstract_pass.cpp ]
+[ compile-fail ../no_is_abstract_fail.cpp ] ;
+test-suite "BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS" :
+[ run ../no_iter_construct_pass.cpp ]
+[ compile-fail ../no_iter_construct_fail.cpp ] ;
+test-suite "BOOST_NO_LAMBDAS" :
+[ run ../no_lambdas_pass.cpp ]
+[ compile-fail ../no_lambdas_fail.cpp ] ;
+test-suite "BOOST_NO_LIMITS" :
+[ run ../no_limits_pass.cpp ]
+[ compile-fail ../no_limits_fail.cpp ] ;
+test-suite "BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS" :
+[ run ../no_limits_const_exp_pass.cpp ]
+[ compile-fail ../no_limits_const_exp_fail.cpp ] ;
+test-suite "BOOST_NO_NUMERIC_LIMITS_LOWEST" :
+[ run ../no_limits_lowest_pass.cpp ]
+[ compile-fail ../no_limits_lowest_fail.cpp ] ;
+test-suite "BOOST_NO_LONG_LONG_NUMERIC_LIMITS" :
+[ run ../no_ll_limits_pass.cpp ]
+[ compile-fail ../no_ll_limits_fail.cpp ] ;
+test-suite "BOOST_NO_LONG_LONG" :
+[ run ../no_long_long_pass.cpp ]
+[ compile-fail ../no_long_long_fail.cpp ] ;
+test-suite "BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS" :
+[ run ../no_mem_func_spec_pass.cpp ]
+[ compile-fail ../no_mem_func_spec_fail.cpp ] ;
+test-suite "BOOST_NO_MEMBER_TEMPLATES" :
+[ run ../no_mem_templates_pass.cpp ]
+[ compile-fail ../no_mem_templates_fail.cpp ] ;
+test-suite "BOOST_NO_MEMBER_TEMPLATE_FRIENDS" :
+[ run ../no_mem_templ_frnds_pass.cpp ]
+[ compile-fail ../no_mem_templ_frnds_fail.cpp ] ;
+test-suite "BOOST_NO_MEMBER_TEMPLATE_KEYWORD" :
+[ run ../no_mem_tem_keyword_pass.cpp ]
+[ compile-fail ../no_mem_tem_keyword_fail.cpp ] ;
+test-suite "BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS" :
+[ run ../no_mem_tem_pnts_pass.cpp ]
+[ compile-fail ../no_mem_tem_pnts_fail.cpp ] ;
+test-suite "BOOST_NO_NESTED_FRIENDSHIP" :
+[ run ../no_nested_friendship_pass.cpp ]
+[ compile-fail ../no_nested_friendship_fail.cpp ] ;
+test-suite "BOOST_NO_NOEXCEPT" :
+[ run ../no_noexcept_pass.cpp ]
+[ compile-fail ../no_noexcept_fail.cpp ] ;
+test-suite "BOOST_NO_NULLPTR" :
+[ run ../no_nullptr_pass.cpp ]
+[ compile-fail ../no_nullptr_fail.cpp ] ;
+test-suite "BOOST_NO_OPERATORS_IN_NAMESPACE" :
+[ run ../no_ops_in_namespace_pass.cpp ]
+[ compile-fail ../no_ops_in_namespace_fail.cpp ] ;
+test-suite "BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION" :
+[ run ../no_partial_spec_pass.cpp ]
+[ compile-fail ../no_partial_spec_fail.cpp ] ;
+test-suite "BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS" :
+[ run ../no_part_spec_def_args_pass.cpp ]
+[ compile-fail ../no_part_spec_def_args_fail.cpp ] ;
+test-suite "BOOST_NO_PRIVATE_IN_AGGREGATE" :
+[ run ../no_priv_aggregate_pass.cpp ]
+[ compile-fail ../no_priv_aggregate_fail.cpp ] ;
+test-suite "BOOST_NO_POINTER_TO_MEMBER_CONST" :
+[ run ../no_ptr_mem_const_pass.cpp ]
+[ compile-fail ../no_ptr_mem_const_fail.cpp ] ;
+test-suite "BOOST_NO_RAW_LITERALS" :
+[ run ../no_raw_literals_pass.cpp ]
+[ compile-fail ../no_raw_literals_fail.cpp ] ;
+test-suite "BOOST_NO_UNREACHABLE_RETURN_DETECTION" :
+[ run ../no_ret_det_pass.cpp ]
+[ compile-fail ../no_ret_det_fail.cpp ] ;
+test-suite "BOOST_NO_RTTI" :
+[ run ../no_rtti_pass.cpp ]
+[ compile-fail ../no_rtti_fail.cpp ] ;
+test-suite "BOOST_NO_RVALUE_REFERENCES" :
+[ run ../no_rvalue_references_pass.cpp ]
+[ compile-fail ../no_rvalue_references_fail.cpp ] ;
+test-suite "BOOST_NO_SCOPED_ENUMS" :
+[ run ../no_scoped_enums_pass.cpp ]
+[ compile-fail ../no_scoped_enums_fail.cpp ] ;
+test-suite "BOOST_NO_SFINAE" :
+[ run ../no_sfinae_pass.cpp ]
+[ compile-fail ../no_sfinae_fail.cpp ] ;
+test-suite "BOOST_NO_SFINAE_EXPR" :
+[ run ../no_sfinae_expr_pass.cpp ]
+[ compile-fail ../no_sfinae_expr_fail.cpp ] ;
+test-suite "BOOST_NO_STRINGSTREAM" :
+[ run ../no_sstream_pass.cpp ]
+[ compile-fail ../no_sstream_fail.cpp ] ;
+test-suite "BOOST_NO_STATIC_ASSERT" :
+[ run ../no_static_assert_pass.cpp ]
+[ compile-fail ../no_static_assert_fail.cpp ] ;
+test-suite "BOOST_NO_STDC_NAMESPACE" :
+[ run ../no_stdc_namespace_pass.cpp ]
+[ compile-fail ../no_stdc_namespace_fail.cpp ] ;
+test-suite "BOOST_NO_STD_ALLOCATOR" :
+[ run ../no_std_allocator_pass.cpp ]
+[ compile-fail ../no_std_allocator_fail.cpp ] ;
+test-suite "BOOST_NO_STD_DISTANCE" :
+[ run ../no_std_distance_pass.cpp ]
+[ compile-fail ../no_std_distance_fail.cpp ] ;
+test-suite "BOOST_NO_STD_ITERATOR" :
+[ run ../no_std_iterator_pass.cpp ]
+[ compile-fail ../no_std_iterator_fail.cpp ] ;
+test-suite "BOOST_NO_STD_ITERATOR_TRAITS" :
+[ run ../no_std_iter_traits_pass.cpp ]
+[ compile-fail ../no_std_iter_traits_fail.cpp ] ;
+test-suite "BOOST_NO_STD_LOCALE" :
+[ run ../no_std_locale_pass.cpp ]
+[ compile-fail ../no_std_locale_fail.cpp ] ;
+test-suite "BOOST_NO_STD_MESSAGES" :
+[ run ../no_std_messages_pass.cpp ]
+[ compile-fail ../no_std_messages_fail.cpp ] ;
+test-suite "BOOST_NO_STD_MIN_MAX" :
+[ run ../no_std_min_max_pass.cpp ]
+[ compile-fail ../no_std_min_max_fail.cpp ] ;
+test-suite "BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN" :
+[ run ../no_std_oi_assign_pass.cpp ]
+[ compile-fail ../no_std_oi_assign_fail.cpp ] ;
+test-suite "BOOST_NO_STD_TYPEINFO" :
+[ run ../no_std_typeinfo_pass.cpp ]
+[ compile-fail ../no_std_typeinfo_fail.cpp ] ;
+test-suite "BOOST_NO_STD_UNORDERED" :
+[ run ../no_std_unordered_pass.cpp ]
+[ compile-fail ../no_std_unordered_fail.cpp ] ;
+test-suite "BOOST_NO_STD_USE_FACET" :
+[ run ../no_std_use_facet_pass.cpp ]
+[ compile-fail ../no_std_use_facet_fail.cpp ] ;
+test-suite "BOOST_NO_STD_WSTREAMBUF" :
+[ run ../no_std_wstreambuf_pass.cpp ]
+[ compile-fail ../no_std_wstreambuf_fail.cpp ] ;
+test-suite "BOOST_NO_STD_WSTRING" :
+[ run ../no_std_wstring_pass.cpp ]
+[ compile-fail ../no_std_wstring_fail.cpp ] ;
+test-suite "BOOST_NO_SWPRINTF" :
+[ run ../no_swprintf_pass.cpp ]
+[ compile-fail ../no_swprintf_fail.cpp ] ;
+test-suite "BOOST_NO_TEMPLATE_ALIASES" :
+[ run ../no_template_aliases_pass.cpp ]
+[ compile-fail ../no_template_aliases_fail.cpp ] ;
+test-suite "BOOST_NO_TEMPLATED_IOSTREAMS" :
+[ run ../no_template_streams_pass.cpp ]
+[ compile-fail ../no_template_streams_fail.cpp ] ;
+test-suite "BOOST_NO_TEMPLATE_TEMPLATES" :
+[ run ../no_template_template_pass.cpp ]
+[ compile-fail ../no_template_template_fail.cpp ] ;
+test-suite "BOOST_NO_TWO_PHASE_NAME_LOOKUP" :
+[ run ../no_two_phase_lookup_pass.cpp ]
+[ compile-fail ../no_two_phase_lookup_fail.cpp ] ;
+test-suite "BOOST_NO_TYPEID" :
+[ run ../no_typeid_pass.cpp ]
+[ compile-fail ../no_typeid_fail.cpp ] ;
+test-suite "BOOST_NO_TYPENAME_WITH_CTOR" :
+[ run ../no_typename_with_ctor_pass.cpp ]
+[ compile-fail ../no_typename_with_ctor_fail.cpp ] ;
+test-suite "BOOST_NO_UNICODE_LITERALS" :
+[ run ../no_unicode_literals_pass.cpp ]
+[ compile-fail ../no_unicode_literals_fail.cpp ] ;
+test-suite "BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX" :
+[ run ../no_unified_init_pass.cpp ]
+[ compile-fail ../no_unified_init_fail.cpp ] ;
+test-suite "BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL" :
+[ run ../no_using_breaks_adl_pass.cpp ]
+[ compile-fail ../no_using_breaks_adl_fail.cpp ] ;
+test-suite "BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE" :
+[ run ../no_using_decl_overld_pass.cpp ]
+[ compile-fail ../no_using_decl_overld_fail.cpp ] ;
+test-suite "BOOST_NO_USING_TEMPLATE" :
+[ run ../no_using_template_pass.cpp ]
+[ compile-fail ../no_using_template_fail.cpp ] ;
+test-suite "BOOST_NO_VARIADIC_MACROS" :
+[ run ../no_variadic_macros_pass.cpp ]
+[ compile-fail ../no_variadic_macros_fail.cpp ] ;
+test-suite "BOOST_NO_VARIADIC_TEMPLATES" :
+[ run ../no_variadic_templates_pass.cpp ]
+[ compile-fail ../no_variadic_templates_fail.cpp ] ;
+test-suite "BOOST_NO_VOID_RETURNS" :
+[ run ../no_void_returns_pass.cpp ]
+[ compile-fail ../no_void_returns_fail.cpp ] ;
+test-suite "BOOST_NO_INTRINSIC_WCHAR_T" :
+[ run ../no_wchar_t_pass.cpp ]
+[ compile-fail ../no_wchar_t_fail.cpp ] ;
+
diff --git a/libs/config/test/all/options_v2.jam b/libs/config/test/all/options_v2.jam
new file mode 100644
index 0000000000..ac748ef0dd
--- /dev/null
+++ b/libs/config/test/all/options_v2.jam
@@ -0,0 +1,12 @@
+# copyright John Maddock 2003
+# Use, modification and distribution are subject to the
+# Boost Software License, Version 1.0. (See accompanying file
+# LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+project
+ : requirements
+ # threading tests require thread support turned on:
+ <threading>multi
+ ;
+
+local test-requirements = <library>../../test/build//boost_test_exec_monitor ;
diff --git a/libs/config/test/boost_has_2arg_use_facet.ipp b/libs/config/test/boost_has_2arg_use_facet.ipp
new file mode 100644
index 0000000000..7ed2b7c162
--- /dev/null
+++ b/libs/config/test/boost_has_2arg_use_facet.ipp
@@ -0,0 +1,32 @@
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_HAS_TWO_ARG_USE_FACET
+// TITLE: two argument version of use_facet
+// DESCRIPTION: The standard library lacks a conforming std::use_facet,
+// but has a two argument version that does the job.
+// This is primarily for the Rogue Wave std lib.
+
+#include <locale>
+
+
+namespace boost_has_two_arg_use_facet{
+
+int test()
+{
+ std::locale l;
+ const std::ctype<char>& ct = std::use_facet(l, (std::ctype<char>*)0);
+ return 0;
+}
+
+}
+
+
+
+
+
+
diff --git a/libs/config/test/boost_has_bethreads.ipp b/libs/config/test/boost_has_bethreads.ipp
new file mode 100644
index 0000000000..0e01699de4
--- /dev/null
+++ b/libs/config/test/boost_has_bethreads.ipp
@@ -0,0 +1,34 @@
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_HAS_BETHREADS
+// TITLE: BeOS Threads
+// DESCRIPTION: The platform supports BeOS style threads.
+
+#include <OS.h>
+
+
+namespace boost_has_bethreads{
+
+int test()
+{
+ sem_id mut = create_sem(1, "test");
+ if(mut > 0)
+ {
+ acquire_sem(mut);
+ release_sem(mut);
+ delete_sem(mut);
+ }
+ return 0;
+}
+
+}
+
+
+
+
+
diff --git a/libs/config/test/boost_has_clock_gettime.ipp b/libs/config/test/boost_has_clock_gettime.ipp
new file mode 100644
index 0000000000..59eee5859a
--- /dev/null
+++ b/libs/config/test/boost_has_clock_gettime.ipp
@@ -0,0 +1,35 @@
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_HAS_CLOCK_GETTIME
+// TITLE: clock_gettime
+// DESCRIPTION: The platform supports POSIX standard API clock_gettime.
+
+#include <time.h>
+
+
+namespace boost_has_clock_gettime{
+
+void f()
+{
+ // this is never called, it just has to compile:
+ timespec tp;
+ int res = clock_gettime(CLOCK_REALTIME, &tp);
+ (void) &res;
+}
+
+int test()
+{
+ return 0;
+}
+
+}
+
+
+
+
+
diff --git a/libs/config/test/boost_has_dirent_h.ipp b/libs/config/test/boost_has_dirent_h.ipp
new file mode 100644
index 0000000000..5d60202021
--- /dev/null
+++ b/libs/config/test/boost_has_dirent_h.ipp
@@ -0,0 +1,30 @@
+// (C) Copyright John Maddock 2002.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_HAS_DIRENT_H
+// TITLE: <dirent.h>
+// DESCRIPTION: The platform has an <dirent.h>.
+
+#include <dirent.h>
+
+
+namespace boost_has_dirent_h{
+
+int test()
+{
+ DIR* pd = opendir("foobar");
+ if(pd) closedir(pd);
+ return 0;
+}
+
+}
+
+
+
+
+
+
diff --git a/libs/config/test/boost_has_expm1.ipp b/libs/config/test/boost_has_expm1.ipp
new file mode 100644
index 0000000000..b219d50f17
--- /dev/null
+++ b/libs/config/test/boost_has_expm1.ipp
@@ -0,0 +1,25 @@
+// (C) Copyright John Maddock 2005.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_HAS_EXPM1
+// TITLE: expm1
+// DESCRIPTION: The std lib has a C99-conforming expm1 function.
+
+#include <math.h>
+
+namespace boost_has_expm1{
+
+int test()
+{
+ double x = 0.5;
+ x = ::expm1(x);
+ (void)x;
+ return 0;
+}
+
+}
+
diff --git a/libs/config/test/boost_has_ftime.ipp b/libs/config/test/boost_has_ftime.ipp
new file mode 100644
index 0000000000..ff04baf9ea
--- /dev/null
+++ b/libs/config/test/boost_has_ftime.ipp
@@ -0,0 +1,32 @@
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_HAS_FTIME
+// TITLE: The platform has FTIME.
+// DESCRIPTION: The platform supports the Win32 API type FTIME.
+
+#include <windows.h>
+
+
+namespace boost_has_ftime{
+
+void f(FILETIME)
+{
+ // this is never called, it just has to compile:
+}
+
+int test()
+{
+ return 0;
+}
+
+}
+
+
+
+
+
diff --git a/libs/config/test/boost_has_getsystemtimeasfiletime.ipp b/libs/config/test/boost_has_getsystemtimeasfiletime.ipp
new file mode 100644
index 0000000000..d9b7e1c95c
--- /dev/null
+++ b/libs/config/test/boost_has_getsystemtimeasfiletime.ipp
@@ -0,0 +1,30 @@
+// (C) Copyright John Maddock 2011.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_HAS_GETSYSTEMTIMEASFILETIME
+// TITLE: GetSystemTimeAsFileTime
+// DESCRIPTION: The platform supports Win32 API GetSystemTimeAsFileTime.
+
+#include <windows.h>
+
+
+namespace boost_has_getsystemtimeasfiletime{
+
+void f()
+{
+ // this is never called, it just has to compile:
+ FILETIME ft;
+ GetSystemTimeAsFileTime(&ft);
+}
+
+int test()
+{
+ return 0;
+}
+
+}
+
diff --git a/libs/config/test/boost_has_gettimeofday.ipp b/libs/config/test/boost_has_gettimeofday.ipp
new file mode 100644
index 0000000000..d79186a9be
--- /dev/null
+++ b/libs/config/test/boost_has_gettimeofday.ipp
@@ -0,0 +1,35 @@
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_HAS_GETTIMEOFDAY
+// TITLE: gettimeofday
+// DESCRIPTION: The platform supports POSIX standard API gettimeofday.
+
+#include <sys/time.h>
+
+
+namespace boost_has_gettimeofday{
+
+void f()
+{
+ // this is never called, it just has to compile:
+ timeval tp;
+ int res = gettimeofday(&tp, 0);
+ (void) &res;
+}
+
+int test()
+{
+ return 0;
+}
+
+}
+
+
+
+
+
diff --git a/libs/config/test/boost_has_hash.ipp b/libs/config/test/boost_has_hash.ipp
new file mode 100644
index 0000000000..fb89764d48
--- /dev/null
+++ b/libs/config/test/boost_has_hash.ipp
@@ -0,0 +1,67 @@
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_HAS_HASH
+// TITLE: <hashset> and <hashmap>
+// DESCRIPTION: The C++ implementation provides the (SGI) hash_set
+// or hash_map classes.
+
+#if defined(__GLIBCXX__) || (defined(__GLIBCPP__) && __GLIBCPP__>=20020514) // GCC >= 3.1.0
+# ifdef BOOST_NO_STD_UNORDERED
+# define BOOST_STD_EXTENSION_NAMESPACE __gnu_cxx
+# include <ext/hash_set>
+# include <ext/hash_map>
+# else
+ // If we have BOOST_NO_STD_UNORDERED *not* defined, then we must
+ // not include the <ext/*> headers as they clash with the C++0x
+ // headers. ie in any given translation unit we can include one
+ // or the other, but not both.
+# define DISABLE_BOOST_HAS_HASH_TEST
+# endif
+#else
+#include <hash_set>
+#include <hash_map>
+#endif
+
+#ifndef BOOST_STD_EXTENSION_NAMESPACE
+#define BOOST_STD_EXTENSION_NAMESPACE std
+#endif
+
+namespace boost_has_hash{
+
+#ifndef DISABLE_BOOST_HAS_HASH_TEST
+
+template <class Key, class Eq, class Hash, class Alloc>
+void foo(const BOOST_STD_EXTENSION_NAMESPACE::hash_set<Key,Eq,Hash,Alloc>& )
+{
+}
+
+template <class Key, class T, class Eq, class Hash, class Alloc>
+void foo(const BOOST_STD_EXTENSION_NAMESPACE::hash_map<Key,T,Eq,Hash,Alloc>& )
+{
+}
+
+#endif
+
+int test()
+{
+#ifndef DISABLE_BOOST_HAS_HASH_TEST
+ BOOST_STD_EXTENSION_NAMESPACE::hash_set<int> hs;
+ foo(hs);
+ BOOST_STD_EXTENSION_NAMESPACE::hash_map<int, long> hm;
+ foo(hm);
+#endif
+ return 0;
+}
+
+}
+
+
+
+
+
+
diff --git a/libs/config/test/boost_has_log1p.ipp b/libs/config/test/boost_has_log1p.ipp
new file mode 100644
index 0000000000..9454d00be3
--- /dev/null
+++ b/libs/config/test/boost_has_log1p.ipp
@@ -0,0 +1,24 @@
+// (C) Copyright John Maddock 2005.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_HAS_LOG1P
+// TITLE: log1p
+// DESCRIPTION: The std lib has a C99-conforming log1p function.
+
+#include <math.h>
+
+namespace boost_has_log1p{
+
+int test()
+{
+ double x = 0.5;
+ x = ::log1p(x);
+ (void)x;
+ return 0;
+}
+
+}
diff --git a/libs/config/test/boost_has_long_long.ipp b/libs/config/test/boost_has_long_long.ipp
new file mode 100644
index 0000000000..651021b495
--- /dev/null
+++ b/libs/config/test/boost_has_long_long.ipp
@@ -0,0 +1,36 @@
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_HAS_LONG_LONG
+// TITLE: long long
+// DESCRIPTION: The platform supports long long.
+
+#include <cstdlib>
+
+
+namespace boost_has_long_long{
+
+int test()
+{
+#ifdef __GNUC__
+ __extension__ long long lli = 0LL;
+ __extension__ unsigned long long ulli = 0uLL;
+#else
+ long long lli = 0LL;
+ unsigned long long ulli = 0uLL;
+#endif
+ (void)&lli;
+ (void)&ulli;
+ return 0;
+}
+
+}
+
+
+
+
+
diff --git a/libs/config/test/boost_has_macro_use_facet.ipp b/libs/config/test/boost_has_macro_use_facet.ipp
new file mode 100644
index 0000000000..0e0726df43
--- /dev/null
+++ b/libs/config/test/boost_has_macro_use_facet.ipp
@@ -0,0 +1,35 @@
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_HAS_MACRO_USE_FACET
+// TITLE: macro version of use_facet: _USE
+// DESCRIPTION: The standard library lacks a conforming std::use_facet,
+// but has a macro _USE(loc, Type) that does the job.
+// This is primarily for the Dinkumware std lib.
+
+#include <locale>
+
+#ifndef _USE
+#error "macro _USE not defined"
+#endif
+
+namespace boost_has_macro_use_facet{
+
+int test()
+{
+ std::locale l;
+ const std::ctype<char>& ct = std::_USE(l, std::ctype<char>);
+ return 0;
+}
+
+}
+
+
+
+
+
+
diff --git a/libs/config/test/boost_has_ms_int64.ipp b/libs/config/test/boost_has_ms_int64.ipp
new file mode 100644
index 0000000000..c8b47826b9
--- /dev/null
+++ b/libs/config/test/boost_has_ms_int64.ipp
@@ -0,0 +1,32 @@
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_HAS_MS_INT64
+// TITLE: __int64
+// DESCRIPTION: The platform supports Microsoft style __int64.
+
+#include <cstdlib>
+
+
+namespace boost_has_ms_int64{
+
+int test()
+{
+ __int64 lli = 0i64;
+ unsigned __int64 ulli = 0ui64;
+ (void)lli;
+ (void)ulli;
+ return 0;
+}
+
+}
+
+
+
+
+
+
diff --git a/libs/config/test/boost_has_nanosleep.ipp b/libs/config/test/boost_has_nanosleep.ipp
new file mode 100644
index 0000000000..9262c8cf5b
--- /dev/null
+++ b/libs/config/test/boost_has_nanosleep.ipp
@@ -0,0 +1,36 @@
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_HAS_NANOSLEEP
+// TITLE: nanosleep
+// DESCRIPTION: The platform supports POSIX API nanosleep.
+
+#include <time.h>
+
+
+namespace boost_has_nanosleep{
+
+void f()
+{
+ // this is never called, it just has to compile:
+ timespec ts = {0, 0};
+ timespec rm;
+ int res = nanosleep(&ts, &rm);
+ (void) &res;
+}
+
+int test()
+{
+ return 0;
+}
+
+}
+
+
+
+
+
diff --git a/libs/config/test/boost_has_nl_types_h.ipp b/libs/config/test/boost_has_nl_types_h.ipp
new file mode 100644
index 0000000000..9126adbf8f
--- /dev/null
+++ b/libs/config/test/boost_has_nl_types_h.ipp
@@ -0,0 +1,29 @@
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_HAS_NL_TYPES_H
+// TITLE: <nl_types.h>
+// DESCRIPTION: The platform has an <nl_types.h>.
+
+#include <nl_types.h>
+
+
+namespace boost_has_nl_types_h{
+
+int test()
+{
+ nl_catd cat = catopen("foo", 0);
+ if(cat >= 0) catclose(cat);
+ return 0;
+}
+
+}
+
+
+
+
+
diff --git a/libs/config/test/boost_has_nrvo.ipp b/libs/config/test/boost_has_nrvo.ipp
new file mode 100644
index 0000000000..2611b4ec0f
--- /dev/null
+++ b/libs/config/test/boost_has_nrvo.ipp
@@ -0,0 +1,57 @@
+// (C) Copyright Terje Slettebo 2001.
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_HAS_NRVO
+// TITLE: Named return value optimisation.
+// DESCRIPTION: Named return value optimisation.
+
+
+namespace boost_has_nrvo
+{
+
+class test_class
+{
+public:
+ test_class() {}
+ test_class(const test_class &other)
+ {
+ ++copy_count;
+ }
+
+ static int copy_count;
+};
+
+int test_class::copy_count;
+
+test_class f()
+{
+ test_class nrv;
+
+ return nrv;
+}
+
+int test()
+{
+ test_class::copy_count=0;
+
+ f();
+
+ return test_class::copy_count;
+}
+
+} // namespace boost_has_nrvo
+
+
+
+
+
+
+
+
+
+
diff --git a/libs/config/test/boost_has_part_alloc.ipp b/libs/config/test/boost_has_part_alloc.ipp
new file mode 100644
index 0000000000..dcef14cbe6
--- /dev/null
+++ b/libs/config/test/boost_has_part_alloc.ipp
@@ -0,0 +1,62 @@
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_HAS_PARTIAL_STD_ALLOCATOR
+// TITLE: limited std::allocator support
+// DESCRIPTION: The std lib has at least some kind of stanfard allocator
+// with allocate/deallocate members and probably not much more.
+
+#include <memory>
+
+namespace boost_has_partial_std_allocator{
+
+//
+// test everything except rebind template members:
+//
+
+template <class T>
+int test_allocator(const T& i)
+{
+ typedef std::allocator<int> alloc1_t;
+ typedef typename alloc1_t::size_type size_type;
+ typedef typename alloc1_t::difference_type difference_type;
+ typedef typename alloc1_t::pointer pointer;
+ typedef typename alloc1_t::const_pointer const_pointer;
+ typedef typename alloc1_t::reference reference;
+ typedef typename alloc1_t::const_reference const_reference;
+ typedef typename alloc1_t::value_type value_type;
+
+ alloc1_t a1;
+
+ pointer p = a1.allocate(1);
+ const_pointer cp = p;
+ a1.construct(p,i);
+ size_type s = a1.max_size();
+ (void)s;
+ reference r = *p;
+ const_reference cr = *cp;
+ if(p != a1.address(r)) return -1;
+ if(cp != a1.address(cr)) return -1;
+ a1.destroy(p);
+ a1.deallocate(p,1);
+
+ return 0;
+}
+
+
+int test()
+{
+ return test_allocator(0);
+}
+
+}
+
+
+
+
+
+
diff --git a/libs/config/test/boost_has_pthread_delay_np.ipp b/libs/config/test/boost_has_pthread_delay_np.ipp
new file mode 100644
index 0000000000..294d3db5b2
--- /dev/null
+++ b/libs/config/test/boost_has_pthread_delay_np.ipp
@@ -0,0 +1,35 @@
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_HAS_PTHREAD_DELAY_NP
+// TITLE: pthread_delay_np
+// DESCRIPTION: The platform supports non-standard pthread_delay_np API.
+
+#include <pthread.h>
+#include <time.h>
+
+
+namespace boost_has_pthread_delay_np{
+
+void f()
+{
+ // this is never called, it just has to compile:
+ timespec ts;
+ int res = pthread_delay_np(&ts);
+}
+
+int test()
+{
+ return 0;
+}
+
+}
+
+
+
+
+
diff --git a/libs/config/test/boost_has_pthread_ma_st.ipp b/libs/config/test/boost_has_pthread_ma_st.ipp
new file mode 100644
index 0000000000..0e985f2d8a
--- /dev/null
+++ b/libs/config/test/boost_has_pthread_ma_st.ipp
@@ -0,0 +1,37 @@
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
+// TITLE: pthread_mutexattr_settype
+// DESCRIPTION: The platform supports POSIX API pthread_mutexattr_settype.
+
+#include <pthread.h>
+
+
+namespace boost_has_pthread_mutexattr_settype{
+
+void f()
+{
+ // this is never called, it just has to compile:
+ pthread_mutexattr_t attr;
+ pthread_mutexattr_init(&attr);
+ int type = 0;
+ pthread_mutexattr_settype(&attr, type);
+}
+
+int test()
+{
+ return 0;
+}
+
+}
+
+
+
+
+
+
diff --git a/libs/config/test/boost_has_pthread_yield.ipp b/libs/config/test/boost_has_pthread_yield.ipp
new file mode 100644
index 0000000000..625117a0ae
--- /dev/null
+++ b/libs/config/test/boost_has_pthread_yield.ipp
@@ -0,0 +1,33 @@
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_HAS_PTHREAD_YIELD
+// TITLE: pthread_yield
+// DESCRIPTION: The platform supports non standard API pthread_yield.
+
+#include <pthread.h>
+
+
+namespace boost_has_pthread_yield{
+
+void f()
+{
+ // this is never called, it just has to compile:
+ int res = pthread_yield();
+}
+
+int test()
+{
+ return 0;
+}
+
+}
+
+
+
+
+
diff --git a/libs/config/test/boost_has_pthreads.ipp b/libs/config/test/boost_has_pthreads.ipp
new file mode 100644
index 0000000000..eeeff65feb
--- /dev/null
+++ b/libs/config/test/boost_has_pthreads.ipp
@@ -0,0 +1,64 @@
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_HAS_PTHREADS
+// TITLE: POSIX Threads
+// DESCRIPTION: The platform supports POSIX style threads.
+
+#include <pthread.h>
+
+
+namespace boost_has_pthreads{
+
+extern "C" void* thread_proc(void* arg)
+{
+ return arg;
+}
+
+int test()
+{
+ pthread_mutex_t mut;
+ int result = pthread_mutex_init(&mut, 0);
+ if(0 == result)
+ {
+ //
+ // Failure to be able to create and use a mutex
+ // is always a failure, even if the pthread
+ // library is just a non-functioning stub.
+ //
+ result |= pthread_mutex_lock(&mut);
+ result |= pthread_mutex_unlock(&mut);
+ result |= pthread_mutex_trylock(&mut);
+ result |= pthread_mutex_unlock(&mut);
+ result |= pthread_mutex_destroy(&mut);
+ //
+ // Try and create a thread, this is allowed
+ // to fail, in case we are linking to a pthread
+ // "stub" library.
+ //
+ pthread_t t;
+ int r = pthread_create(&t, 0, &thread_proc, 0);
+ // result |= r;
+ if(r == 0)
+ {
+ //
+ // If we can create a thread, then we must be able to join to it:
+ //
+ void* arg;
+ r = pthread_join(t, &arg);
+ result |= r;
+ }
+ }
+ return result;
+}
+
+}
+
+
+
+
+
diff --git a/libs/config/test/boost_has_rvalue_refs.ipp b/libs/config/test/boost_has_rvalue_refs.ipp
new file mode 100644
index 0000000000..f0ce174d72
--- /dev/null
+++ b/libs/config/test/boost_has_rvalue_refs.ipp
@@ -0,0 +1,26 @@
+// Copyright (C) 2007 Douglas Gregor
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_HAS_RVALUE_REFS
+// TITLE: rvalue references
+// DESCRIPTION: The compiler supports C++0x rvalue references
+
+namespace boost_has_rvalue_refs {
+
+void g(int&) {}
+
+template<typename F, typename T>
+void forward(F f, T&& t) { f(static_cast<T&&>(t)); }
+
+int test()
+{
+ int x;
+ forward(g, x);
+ return 0;
+}
+
+}
diff --git a/libs/config/test/boost_has_sched_yield.ipp b/libs/config/test/boost_has_sched_yield.ipp
new file mode 100644
index 0000000000..1302fbff27
--- /dev/null
+++ b/libs/config/test/boost_has_sched_yield.ipp
@@ -0,0 +1,34 @@
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_HAS_SCHED_YIELD
+// TITLE: sched_yield
+// DESCRIPTION: The platform supports POSIX standard API sched_yield.
+
+#include <pthread.h>
+
+
+namespace boost_has_sched_yield{
+
+void f()
+{
+ // this is never called, it just has to compile:
+ int res = sched_yield();
+ (void) &res;
+}
+
+int test()
+{
+ return 0;
+}
+
+}
+
+
+
+
+
diff --git a/libs/config/test/boost_has_sgi_type_traits.ipp b/libs/config/test/boost_has_sgi_type_traits.ipp
new file mode 100644
index 0000000000..5848b68f5d
--- /dev/null
+++ b/libs/config/test/boost_has_sgi_type_traits.ipp
@@ -0,0 +1,40 @@
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_HAS_SGI_TYPE_TRAITS
+// TITLE: SGI style <type_traits.h>
+// DESCRIPTION: The standard library has it's own type_traits implementation.
+
+#include <type_traits.h>
+
+
+namespace boost_has_sgi_type_traits{
+
+struct foo_type{};
+
+int test()
+{
+ ::__true_type t;
+ ::__false_type f;
+ typedef ::__type_traits<int>::has_trivial_destructor td;
+ typedef ::__type_traits<double>::has_trivial_assignment_operator ta;
+ typedef ::__type_traits<float>::has_trivial_copy_constructor tc;
+ typedef ::__type_traits<char>::has_trivial_default_constructor tdc;
+ typedef ::__type_traits<foo_type>::is_POD_type isp;
+
+ (void) &t; // avoid "unused variable" warnings
+ (void) &f;
+
+ return 0;
+}
+
+}
+
+
+
+
+
diff --git a/libs/config/test/boost_has_sigaction.ipp b/libs/config/test/boost_has_sigaction.ipp
new file mode 100644
index 0000000000..12170c1da7
--- /dev/null
+++ b/libs/config/test/boost_has_sigaction.ipp
@@ -0,0 +1,36 @@
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_HAS_SIGACTION
+// TITLE: sigaction
+// DESCRIPTION: The platform supports POSIX standard API sigaction.
+
+#include <signal.h>
+
+
+namespace boost_has_sigaction{
+
+void f()
+{
+ // this is never called, it just has to compile:
+ struct sigaction* sa1 = 0 ;
+ struct sigaction* sa2 = 0 ;
+ int res = sigaction(0, sa1, sa2);
+ (void) &res;
+}
+
+int test()
+{
+ return 0;
+}
+
+}
+
+
+
+
+
diff --git a/libs/config/test/boost_has_slist.ipp b/libs/config/test/boost_has_slist.ipp
new file mode 100644
index 0000000000..f3c37d4c20
--- /dev/null
+++ b/libs/config/test/boost_has_slist.ipp
@@ -0,0 +1,44 @@
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_HAS_SLIST
+// TITLE: <slist>
+// DESCRIPTION: The C++ implementation provides the (SGI) slist class.
+
+#if defined(__GLIBCXX__) || (defined(__GLIBCPP__) && __GLIBCPP__>=20020514) // GCC >= 3.1.0
+# define BOOST_STD_EXTENSION_NAMESPACE __gnu_cxx
+#include <ext/slist>
+#else
+#include <slist>
+#endif
+
+#ifndef BOOST_STD_EXTENSION_NAMESPACE
+#define BOOST_STD_EXTENSION_NAMESPACE std
+#endif
+
+namespace boost_has_slist{
+
+template <class T, class Alloc>
+void foo(const BOOST_STD_EXTENSION_NAMESPACE::slist<T,Alloc>& )
+{
+}
+
+
+int test()
+{
+ BOOST_STD_EXTENSION_NAMESPACE::slist<int> l;
+ foo(l);
+ return 0;
+}
+
+}
+
+
+
+
+
+
diff --git a/libs/config/test/boost_has_static_assert.ipp b/libs/config/test/boost_has_static_assert.ipp
new file mode 100644
index 0000000000..545938a0ec
--- /dev/null
+++ b/libs/config/test/boost_has_static_assert.ipp
@@ -0,0 +1,20 @@
+// Copyright (C) 2007 Douglas Gregor
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_HAS_STATIC_ASSERT
+// TITLE: static assertions
+// DESCRIPTION: The compiler supports C++0x static assertions
+
+namespace boost_has_static_assert {
+
+int test()
+{
+ static_assert(true, "OK");
+ return 0;
+}
+
+}
diff --git a/libs/config/test/boost_has_stdint_h.ipp b/libs/config/test/boost_has_stdint_h.ipp
new file mode 100644
index 0000000000..c731f503f4
--- /dev/null
+++ b/libs/config/test/boost_has_stdint_h.ipp
@@ -0,0 +1,48 @@
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_HAS_STDINT_H
+// TITLE: stdint.h
+// DESCRIPTION: There are no 1998 C++ Standard headers <stdint.h>
+// or <cstdint>, although the 1999 C Standard does
+// include <stdint.h>.
+// If <stdint.h> is present, <boost/stdint.h> can make
+// good use of it, so a flag is supplied (signalling
+// presence; thus the default is not present, conforming
+// to the current C++ standard).
+
+# if defined(__hpux) || defined(__FreeBSD__) || defined(__IBMCPP__)
+# include <inttypes.h>
+# else
+# include <stdint.h>
+# endif
+
+namespace boost_has_stdint_h{
+
+int test()
+{
+ int8_t i = 0;
+#ifndef __QNX__
+ // QNX has these under non-standard names, our cstdint.hpp will find them however:
+ int_fast8_t j = 0;
+ int_least8_t k = 0;
+ (void)j;
+ (void)k;
+#endif
+ (void)i;
+
+ return 0;
+}
+
+}
+
+
+
+
+
+
+
diff --git a/libs/config/test/boost_has_stlp_use_facet.ipp b/libs/config/test/boost_has_stlp_use_facet.ipp
new file mode 100644
index 0000000000..5b61b74129
--- /dev/null
+++ b/libs/config/test/boost_has_stlp_use_facet.ipp
@@ -0,0 +1,31 @@
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_HAS_STLP_USE_FACET
+// TITLE: STLport version of use_facet
+// DESCRIPTION: The standard library lacks a conforming std::use_facet,
+// but has a workaound class-version that does the job.
+// This is primarily for the STLport std lib.
+
+#include <locale>
+
+
+namespace boost_has_stlp_use_facet{
+
+int test()
+{
+ std::locale l;
+ const std::ctype<char>& ct = *std::_Use_facet<std::ctype<char> >(l);
+ return 0;
+}
+
+}
+
+
+
+
+
diff --git a/libs/config/test/boost_has_tr1_array.ipp b/libs/config/test/boost_has_tr1_array.ipp
new file mode 100644
index 0000000000..5293dd8fe1
--- /dev/null
+++ b/libs/config/test/boost_has_tr1_array.ipp
@@ -0,0 +1,23 @@
+// (C) Copyright John Maddock 2005.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_HAS_TR1_ARRAY
+// TITLE: std::tr1::array
+// DESCRIPTION: The std lib has a tr1-conforming array library.
+
+#include <array>
+
+namespace boost_has_tr1_array{
+
+using std::tr1::array;
+
+int test()
+{
+ return 0;
+}
+
+}
diff --git a/libs/config/test/boost_has_tr1_bind.ipp b/libs/config/test/boost_has_tr1_bind.ipp
new file mode 100644
index 0000000000..b3a6d181c7
--- /dev/null
+++ b/libs/config/test/boost_has_tr1_bind.ipp
@@ -0,0 +1,23 @@
+// (C) Copyright John Maddock 2005.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_HAS_TR1_BIND
+// TITLE: std::tr1::bind
+// DESCRIPTION: The std lib has a tr1-conforming bind template function.
+
+#include <functional>
+
+namespace boost_has_tr1_bind{
+
+using std::tr1::bind;
+
+int test()
+{
+ return 0;
+}
+
+}
diff --git a/libs/config/test/boost_has_tr1_complex_over.ipp b/libs/config/test/boost_has_tr1_complex_over.ipp
new file mode 100644
index 0000000000..d7b880d7cb
--- /dev/null
+++ b/libs/config/test/boost_has_tr1_complex_over.ipp
@@ -0,0 +1,24 @@
+// (C) Copyright John Maddock 2005.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_HAS_TR1_COMPLEX_OVERLOADS
+// TITLE: std::complex overloads
+// DESCRIPTION: The std lib has a tr1-conforming set of std::complex overloads.
+
+#include <complex>
+
+namespace boost_has_tr1_complex_overloads{
+
+
+int test()
+{
+ std::arg(0);
+ std::conj(0.0);
+ return 0;
+}
+
+}
diff --git a/libs/config/test/boost_has_tr1_complex_trig.ipp b/libs/config/test/boost_has_tr1_complex_trig.ipp
new file mode 100644
index 0000000000..bbd9f8cf50
--- /dev/null
+++ b/libs/config/test/boost_has_tr1_complex_trig.ipp
@@ -0,0 +1,30 @@
+// (C) Copyright John Maddock 2005.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_HAS_TR1_COMPLEX_INVERSE_TRIG
+// TITLE: std::complex inverse trig functions
+// DESCRIPTION: The std lib has a tr1-conforming set of std::complex inverse trig functions.
+
+#include <complex>
+
+namespace boost_has_tr1_complex_inverse_trig{
+
+
+int test()
+{
+ std::complex<double> cd;
+ std::asin(cd);
+ std::acos(cd);
+ std::atan(cd);
+ std::asinh(cd);
+ std::acosh(cd);
+ std::atanh(cd);
+ std::fabs(cd);
+ return 0;
+}
+
+}
diff --git a/libs/config/test/boost_has_tr1_function.ipp b/libs/config/test/boost_has_tr1_function.ipp
new file mode 100644
index 0000000000..ae4af295ca
--- /dev/null
+++ b/libs/config/test/boost_has_tr1_function.ipp
@@ -0,0 +1,23 @@
+// (C) Copyright John Maddock 2005.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_HAS_TR1_FUNCTION
+// TITLE: std::tr1::function
+// DESCRIPTION: The std lib has a tr1-conforming function template class.
+
+#include <functional>
+
+namespace boost_has_tr1_function{
+
+using std::tr1::function;
+
+int test()
+{
+ return 0;
+}
+
+}
diff --git a/libs/config/test/boost_has_tr1_hash.ipp b/libs/config/test/boost_has_tr1_hash.ipp
new file mode 100644
index 0000000000..3adc2ab18a
--- /dev/null
+++ b/libs/config/test/boost_has_tr1_hash.ipp
@@ -0,0 +1,23 @@
+// (C) Copyright John Maddock 2005.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_HAS_TR1_HASH
+// TITLE: std::tr1::hash
+// DESCRIPTION: The std lib has a tr1-conforming hash function library.
+
+#include <functional>
+
+namespace boost_has_tr1_hash{
+
+using std::tr1::hash;
+
+int test()
+{
+ return 0;
+}
+
+}
diff --git a/libs/config/test/boost_has_tr1_mem_fn.ipp b/libs/config/test/boost_has_tr1_mem_fn.ipp
new file mode 100644
index 0000000000..d5da8937fd
--- /dev/null
+++ b/libs/config/test/boost_has_tr1_mem_fn.ipp
@@ -0,0 +1,23 @@
+// (C) Copyright John Maddock 2005.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_HAS_TR1_MEM_FN
+// TITLE: std::tr1::mem_fn
+// DESCRIPTION: The std lib has a tr1-conforming mem_fn template function.
+
+#include <functional>
+
+namespace boost_has_tr1_mem_fn{
+
+using std::tr1::mem_fn;
+
+int test()
+{
+ return 0;
+}
+
+}
diff --git a/libs/config/test/boost_has_tr1_random.ipp b/libs/config/test/boost_has_tr1_random.ipp
new file mode 100644
index 0000000000..ddd88e7dcf
--- /dev/null
+++ b/libs/config/test/boost_has_tr1_random.ipp
@@ -0,0 +1,23 @@
+// (C) Copyright John Maddock 2005.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_HAS_TR1_RANDOM
+// TITLE: std::tr1::random
+// DESCRIPTION: The std lib has a tr1-conforming random numer library.
+
+#include <random>
+
+namespace boost_has_tr1_random{
+
+using std::tr1::variate_generator;
+
+int test()
+{
+ return 0;
+}
+
+}
diff --git a/libs/config/test/boost_has_tr1_ref_wrap.ipp b/libs/config/test/boost_has_tr1_ref_wrap.ipp
new file mode 100644
index 0000000000..76c002ccdf
--- /dev/null
+++ b/libs/config/test/boost_has_tr1_ref_wrap.ipp
@@ -0,0 +1,24 @@
+// (C) Copyright John Maddock 2005.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_HAS_TR1_REFERENCE_WRAPPER
+// TITLE: std::tr1::reference_wrapper
+// DESCRIPTION: The std lib has a tr1-conforming reference_wrapper.
+
+#include <functional>
+
+namespace boost_has_tr1_reference_wrapper{
+
+int test()
+{
+ int i;
+ std::tr1::reference_wrapper<int> r = std::tr1::ref(i);
+ (void)r;
+ return 0;
+}
+
+}
diff --git a/libs/config/test/boost_has_tr1_regex.ipp b/libs/config/test/boost_has_tr1_regex.ipp
new file mode 100644
index 0000000000..4f11c1e97c
--- /dev/null
+++ b/libs/config/test/boost_has_tr1_regex.ipp
@@ -0,0 +1,24 @@
+// (C) Copyright John Maddock 2005.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_HAS_TR1_REGEX
+// TITLE: std::tr1::regex
+// DESCRIPTION: The std lib has a tr1-conforming regex library.
+
+#include <regex>
+
+namespace boost_has_tr1_regex{
+
+using std::tr1::regex;
+
+int test()
+{
+ return 0;
+}
+
+}
+
diff --git a/libs/config/test/boost_has_tr1_result_of.ipp b/libs/config/test/boost_has_tr1_result_of.ipp
new file mode 100644
index 0000000000..d578e9f94b
--- /dev/null
+++ b/libs/config/test/boost_has_tr1_result_of.ipp
@@ -0,0 +1,24 @@
+// (C) Copyright John Maddock 2005.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_HAS_TR1_RESULT_OF
+// TITLE: std::tr1::result_of
+// DESCRIPTION: The std lib has a tr1-conforming result_of template.
+
+#include <functional>
+
+namespace boost_has_tr1_result_of{
+
+typedef std::tr1::result_of<int*(int)> r;
+typedef r::type rr;
+
+int test()
+{
+ return 0;
+}
+
+}
diff --git a/libs/config/test/boost_has_tr1_shared_ptr.ipp b/libs/config/test/boost_has_tr1_shared_ptr.ipp
new file mode 100644
index 0000000000..aea65dc14d
--- /dev/null
+++ b/libs/config/test/boost_has_tr1_shared_ptr.ipp
@@ -0,0 +1,24 @@
+// (C) Copyright John Maddock 2005.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_HAS_TR1_SHARED_PTR
+// TITLE: std::tr1::shared_ptr
+// DESCRIPTION: The std lib has a tr1-conforming shrared_ptr.
+
+#include <memory>
+
+namespace boost_has_tr1_shared_ptr{
+
+int test()
+{
+ int i;
+ std::tr1::shared_ptr<int> r(new int());
+ (void)r;
+ return 0;
+}
+
+}
diff --git a/libs/config/test/boost_has_tr1_tuple.ipp b/libs/config/test/boost_has_tr1_tuple.ipp
new file mode 100644
index 0000000000..20c72dbdb6
--- /dev/null
+++ b/libs/config/test/boost_has_tr1_tuple.ipp
@@ -0,0 +1,23 @@
+// (C) Copyright John Maddock 2005.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_HAS_TR1_TUPLE
+// TITLE: std::tr1::tuple
+// DESCRIPTION: The std lib has a tr1-conforming tuple library.
+
+#include <tuple>
+
+namespace boost_has_tr1_tuple{
+
+using std::tr1::tuple;
+
+int test()
+{
+ return 0;
+}
+
+}
diff --git a/libs/config/test/boost_has_tr1_type_traits.ipp b/libs/config/test/boost_has_tr1_type_traits.ipp
new file mode 100644
index 0000000000..6bbcd5e40f
--- /dev/null
+++ b/libs/config/test/boost_has_tr1_type_traits.ipp
@@ -0,0 +1,23 @@
+// (C) Copyright John Maddock 2005.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_HAS_TR1_TYPE_TRAITS
+// TITLE: std::tr1::type_traits
+// DESCRIPTION: The std lib has a tr1-conforming type traits library.
+
+#include <type_traits>
+
+namespace boost_has_tr1_type_traits{
+
+using std::tr1::is_void;
+
+int test()
+{
+ return 0;
+}
+
+}
diff --git a/libs/config/test/boost_has_tr1_unordered_map.ipp b/libs/config/test/boost_has_tr1_unordered_map.ipp
new file mode 100644
index 0000000000..8336cc7166
--- /dev/null
+++ b/libs/config/test/boost_has_tr1_unordered_map.ipp
@@ -0,0 +1,24 @@
+// (C) Copyright John Maddock 2005.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_HAS_TR1_UNORDERED_MAP
+// TITLE: std::tr1::unordered_map
+// DESCRIPTION: The std lib has a tr1-conforming unordered map library.
+
+#include <unordered_map>
+
+namespace boost_has_tr1_unordered_map{
+
+using std::tr1::unordered_map;
+using std::tr1::unordered_multimap;
+
+int test()
+{
+ return 0;
+}
+
+}
diff --git a/libs/config/test/boost_has_tr1_unordered_set.ipp b/libs/config/test/boost_has_tr1_unordered_set.ipp
new file mode 100644
index 0000000000..dcc33e5ec8
--- /dev/null
+++ b/libs/config/test/boost_has_tr1_unordered_set.ipp
@@ -0,0 +1,24 @@
+// (C) Copyright John Maddock 2005.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_HAS_TR1_UNORDERED_SET
+// TITLE: std::tr1::unordered_set
+// DESCRIPTION: The std lib has a tr1-conforming unordered set library.
+
+#include <unordered_set>
+
+namespace boost_has_tr1_unordered_set{
+
+using std::tr1::unordered_set;
+using std::tr1::unordered_multiset;
+
+int test()
+{
+ return 0;
+}
+
+}
diff --git a/libs/config/test/boost_has_tr1_utility.ipp b/libs/config/test/boost_has_tr1_utility.ipp
new file mode 100644
index 0000000000..bf97dece5f
--- /dev/null
+++ b/libs/config/test/boost_has_tr1_utility.ipp
@@ -0,0 +1,25 @@
+// (C) Copyright John Maddock 2005.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_HAS_TR1_UTILITY
+// TITLE: std::tr1::utility
+// DESCRIPTION: The std lib has a tr1-conforming utility header.
+
+#include <utility>
+
+namespace boost_has_tr1_utility{
+
+using std::tr1::get;
+using std::tr1::tuple_size;
+using std::tr1::tuple_element;
+
+int test()
+{
+ return 0;
+}
+
+}
diff --git a/libs/config/test/boost_has_unistd_h.ipp b/libs/config/test/boost_has_unistd_h.ipp
new file mode 100644
index 0000000000..b082c4fee5
--- /dev/null
+++ b/libs/config/test/boost_has_unistd_h.ipp
@@ -0,0 +1,26 @@
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_HAS_UNISTD_H
+// TITLE: <unistd.h>
+// DESCRIPTION: The Platform provides <unistd.h>.
+
+#include <unistd.h>
+
+namespace boost_has_unistd_h{
+
+int test()
+{
+ return 0;
+}
+
+}
+
+
+
+
+
diff --git a/libs/config/test/boost_has_variadic_tmpl.ipp b/libs/config/test/boost_has_variadic_tmpl.ipp
new file mode 100644
index 0000000000..539c512a90
--- /dev/null
+++ b/libs/config/test/boost_has_variadic_tmpl.ipp
@@ -0,0 +1,21 @@
+// Copyright (C) 2007 Douglas Gregor
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_HAS_VARIADIC_TMPL
+// TITLE: variadic templates
+// DESCRIPTION: The compiler supports C++0x variadic templates
+
+namespace boost_has_variadic_tmpl {
+
+template<typename... Elements> struct tuple {};
+
+int test()
+{
+ return 0;
+}
+
+}
diff --git a/libs/config/test/boost_has_vc6_mem_templ.ipp b/libs/config/test/boost_has_vc6_mem_templ.ipp
new file mode 100644
index 0000000000..fbce170947
--- /dev/null
+++ b/libs/config/test/boost_has_vc6_mem_templ.ipp
@@ -0,0 +1,58 @@
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_MSVC6_MEMBER_TEMPLATES
+// TITLE: microsoft member templates
+// DESCRIPTION: Microsoft Visual C++ 6.0 has enough member
+// template idiosyncrasies (being polite) that
+// BOOST_NO_MEMBER_TEMPLATES is defined for this compiler.
+// BOOST_MSVC6_MEMBER_TEMPLATES is defined to allow
+// compiler specific workarounds.
+#ifndef BOOST_NESTED_TEMPLATE
+#define BOOST_NESTED_TEMPLATE template
+#endif
+
+namespace boost_msvc6_member_templates{
+
+template <class T>
+struct foo
+{
+ template <class U>
+ struct nested
+ {
+ typedef foo<U> other;
+ };
+ template <class U>
+ void mfoo(const U&)
+ {
+ }
+};
+
+template <class T>
+void vc6_mem_test(T i)
+{
+ foo<double> f1;
+ typedef foo<T> ifoo;
+ f1.mfoo(i);
+ typedef typename ifoo::BOOST_NESTED_TEMPLATE nested<double> bound_t;
+ typedef typename bound_t::other other;
+ other o;
+ (void)o;
+}
+
+int test()
+{
+ int i = 0;
+ vc6_mem_test(i);
+ return 0;
+}
+
+}
+
+
+
+
diff --git a/libs/config/test/boost_has_vc_iterator.ipp b/libs/config/test/boost_has_vc_iterator.ipp
new file mode 100644
index 0000000000..e2fd5a6b46
--- /dev/null
+++ b/libs/config/test/boost_has_vc_iterator.ipp
@@ -0,0 +1,40 @@
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_MSVC_STD_ITERATOR
+// TITLE: microsoft's version of std::iterator
+// DESCRIPTION: Microsoft's broken version of std::iterator
+// is being used.
+
+#include <iterator>
+
+namespace boost_msvc_std_iterator{
+
+int test()
+{
+ typedef std::iterator<
+ std::random_access_iterator_tag,
+ int
+ > iterator_type_2;
+ typedef std::reverse_iterator<const char*, const char> r_it;
+
+ iterator_type_2::value_type v2 = 0;
+ iterator_type_2::iterator_category cat2;
+ //
+ // suppress some warnings:
+ //
+ (void)v2;
+ (void)cat2;
+
+ return 0;
+}
+
+}
+
+
+
+
diff --git a/libs/config/test/boost_has_winthreads.ipp b/libs/config/test/boost_has_winthreads.ipp
new file mode 100644
index 0000000000..28ebff0c06
--- /dev/null
+++ b/libs/config/test/boost_has_winthreads.ipp
@@ -0,0 +1,34 @@
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_HAS_WINTHREADS
+// TITLE: MS Windows threads
+// DESCRIPTION: The platform supports MS Windows style threads.
+
+#include <windows.h>
+
+
+namespace boost_has_winthreads{
+
+int test()
+{
+ HANDLE h = CreateMutex(0, 0, 0);
+ if(h != NULL)
+ {
+ WaitForSingleObject(h, INFINITE);
+ ReleaseMutex(h);
+ CloseHandle(h);
+ }
+ return 0;
+}
+
+}
+
+
+
+
+
diff --git a/libs/config/test/boost_no_0x_hdr_array.ipp b/libs/config/test/boost_no_0x_hdr_array.ipp
new file mode 100644
index 0000000000..86609c8bf6
--- /dev/null
+++ b/libs/config/test/boost_no_0x_hdr_array.ipp
@@ -0,0 +1,23 @@
+// (C) Copyright Beman Dawes 2009
+
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for more information.
+
+// MACRO: BOOST_NO_0X_HDR_ARRAY
+// TITLE: C++0x header <array> unavailable
+// DESCRIPTION: The standard library does not supply C++0x header <array>
+
+#include <array>
+
+namespace boost_no_0x_hdr_array {
+
+int test()
+{
+ std::array<int, 3> a = { 1, 2, 3 };
+ return a.size() == 3 ? 0 : 1;
+}
+
+}
diff --git a/libs/config/test/boost_no_0x_hdr_chrono.ipp b/libs/config/test/boost_no_0x_hdr_chrono.ipp
new file mode 100644
index 0000000000..dad066923a
--- /dev/null
+++ b/libs/config/test/boost_no_0x_hdr_chrono.ipp
@@ -0,0 +1,31 @@
+// (C) Copyright Beman Dawes 2009
+
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for more information.
+
+// MACRO: BOOST_NO_0X_HDR_CHRONO
+// TITLE: C++0x header <chrono> unavailable
+// DESCRIPTION: The standard library does not supply C++0x header <chrono>
+
+#include <chrono>
+
+namespace boost_no_0x_hdr_chrono {
+
+int test()
+{
+ using std::chrono::nanoseconds;
+ using std::chrono::microseconds;
+ using std::chrono::milliseconds;
+ using std::chrono::seconds;
+ using std::chrono::minutes;
+ using std::chrono::hours;
+ using std::chrono::system_clock;
+ using std::chrono::monotonic_clock;
+ using std::chrono::high_resolution_clock;
+ return 0;
+}
+
+}
diff --git a/libs/config/test/boost_no_0x_hdr_codecvt.ipp b/libs/config/test/boost_no_0x_hdr_codecvt.ipp
new file mode 100644
index 0000000000..96d1ee1745
--- /dev/null
+++ b/libs/config/test/boost_no_0x_hdr_codecvt.ipp
@@ -0,0 +1,25 @@
+// (C) Copyright Beman Dawes 2009
+
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for more information.
+
+// MACRO: BOOST_NO_0X_HDR_CODECVT
+// TITLE: C++0x header <codecvt> unavailable
+// DESCRIPTION: The standard library does not supply C++0x header <codecvt>
+
+#include <codecvt>
+
+namespace boost_no_0x_hdr_codecvt {
+
+int test()
+{
+ using std::codecvt_utf8;
+ using std::codecvt_utf16;
+ using std::codecvt_utf8_utf16;
+ return 0;
+}
+
+}
diff --git a/libs/config/test/boost_no_0x_hdr_condition_variable.ipp b/libs/config/test/boost_no_0x_hdr_condition_variable.ipp
new file mode 100644
index 0000000000..fc06a356ea
--- /dev/null
+++ b/libs/config/test/boost_no_0x_hdr_condition_variable.ipp
@@ -0,0 +1,24 @@
+// (C) Copyright Beman Dawes 2009
+
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for more information.
+
+// MACRO: BOOST_NO_0X_HDR_CONDITION_VARIABLE
+// TITLE: C++0x header <condition_variable> unavailable
+// DESCRIPTION: The standard library does not supply C++0x header <condition_variable>
+
+#include <condition_variable>
+
+namespace boost_no_0x_hdr_condition_variable {
+
+int test()
+{
+ using std::condition_variable;
+ using std::condition_variable_any;
+ return 0;
+}
+
+}
diff --git a/libs/config/test/boost_no_0x_hdr_forward_list.ipp b/libs/config/test/boost_no_0x_hdr_forward_list.ipp
new file mode 100644
index 0000000000..59d16afb56
--- /dev/null
+++ b/libs/config/test/boost_no_0x_hdr_forward_list.ipp
@@ -0,0 +1,23 @@
+// (C) Copyright Beman Dawes 2009
+
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for more information.
+
+// MACRO: BOOST_NO_0X_HDR_FORWARD_LIST
+// TITLE: C++0x header <forward_list> unavailable
+// DESCRIPTION: The standard library does not supply C++0x header <forward_list>
+
+#include <forward_list>
+
+namespace boost_no_0x_hdr_forward_list {
+
+int test()
+{
+ std::forward_list<int> l(2u, 2);
+ return *l.begin() == 2 ? 0 : 1;
+}
+
+}
diff --git a/libs/config/test/boost_no_0x_hdr_future.ipp b/libs/config/test/boost_no_0x_hdr_future.ipp
new file mode 100644
index 0000000000..42fd55e662
--- /dev/null
+++ b/libs/config/test/boost_no_0x_hdr_future.ipp
@@ -0,0 +1,35 @@
+// (C) Copyright Beman Dawes 2009
+
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for more information.
+
+// MACRO: BOOST_NO_0X_HDR_FUTURE
+// TITLE: C++0x header <future> unavailable
+// DESCRIPTION: The standard library does not supply C++0x header <future>
+
+#include <future>
+
+namespace boost_no_0x_hdr_future {
+
+int test()
+{
+ using std::is_error_code_enum;
+ using std::make_error_code;
+ using std::make_error_condition;
+ using std::future_category;
+ using std::future_error;
+ using std::promise;
+ using std::promise;
+ using std::promise;
+ using std::future;
+ using std::shared_future;
+ using std::atomic_future;
+ using std::packaged_task; // undefined
+ using std::async;
+ return 0;
+}
+
+}
diff --git a/libs/config/test/boost_no_0x_hdr_initializer_list.ipp b/libs/config/test/boost_no_0x_hdr_initializer_list.ipp
new file mode 100644
index 0000000000..c026ecbb2f
--- /dev/null
+++ b/libs/config/test/boost_no_0x_hdr_initializer_list.ipp
@@ -0,0 +1,27 @@
+// (C) Copyright Beman Dawes 2009
+
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for more information.
+
+// MACRO: BOOST_NO_0X_HDR_INITIALIZER_LIST
+// TITLE: C++0x header <initializer_list> unavailable
+// DESCRIPTION: The standard library does not supply C++0x header <initializer_list>
+
+#include <initializer_list>
+
+namespace boost_no_0x_hdr_initializer_list {
+
+void foo(const std::initializer_list<const char*>& l)
+{
+}
+
+int test()
+{
+ foo( { "a", "b", "c" } );
+ return 0;
+}
+
+}
diff --git a/libs/config/test/boost_no_0x_hdr_mutex.ipp b/libs/config/test/boost_no_0x_hdr_mutex.ipp
new file mode 100644
index 0000000000..d3a9d25b30
--- /dev/null
+++ b/libs/config/test/boost_no_0x_hdr_mutex.ipp
@@ -0,0 +1,26 @@
+// (C) Copyright Beman Dawes 2009
+
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for more information.
+
+// MACRO: BOOST_NO_0X_HDR_MUTEX
+// TITLE: C++0x header <mutex> unavailable
+// DESCRIPTION: The standard library does not supply C++0x header <mutex>
+
+#include <mutex>
+
+namespace boost_no_0x_hdr_mutex {
+
+int test()
+{
+ using std::mutex;
+ using std::recursive_mutex;
+ using std::timed_mutex;
+ using std::recursive_timed_mutex;
+ return 0;
+}
+
+}
diff --git a/libs/config/test/boost_no_0x_hdr_random.ipp b/libs/config/test/boost_no_0x_hdr_random.ipp
new file mode 100644
index 0000000000..07d58b5e90
--- /dev/null
+++ b/libs/config/test/boost_no_0x_hdr_random.ipp
@@ -0,0 +1,31 @@
+// (C) Copyright Beman Dawes 2009
+
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for more information.
+
+// MACRO: BOOST_NO_0X_HDR_RANDOM
+// TITLE: C++0x header <random> unavailable
+// DESCRIPTION: The standard library does not supply C++0x header <random>
+
+#include <random>
+
+namespace boost_no_0x_hdr_random {
+
+int test()
+{
+ using std::minstd_rand0;
+ using std::mt19937;
+ using std::mt19937_64;
+ using std::ranlux24_base;
+ using std::ranlux48_base;
+ using std::ranlux24;
+ using std::ranlux48;
+ using std::knuth_b;
+ using std::default_random_engine;
+ return 0;
+}
+
+}
diff --git a/libs/config/test/boost_no_0x_hdr_ratio.ipp b/libs/config/test/boost_no_0x_hdr_ratio.ipp
new file mode 100644
index 0000000000..beeab5b76e
--- /dev/null
+++ b/libs/config/test/boost_no_0x_hdr_ratio.ipp
@@ -0,0 +1,37 @@
+// (C) Copyright Beman Dawes 2009
+
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for more information.
+
+// MACRO: BOOST_NO_0X_HDR_RATIO
+// TITLE: C++0x header <ratio> unavailable
+// DESCRIPTION: The standard library does not supply C++0x header <ratio>
+
+#include <ratio>
+
+namespace boost_no_0x_hdr_ratio {
+
+int test()
+{
+ using std::atto;
+ using std::femto;
+ using std::pico;
+ using std::nano;
+ using std::micro;
+ using std::milli;
+ using std::centi;
+ using std::deci;
+ using std::deca;
+ using std::hecto;
+ using std::kilo;
+ using std::mega;
+ using std::tera;
+ using std::peta;
+ using std::exa;
+ return 0;
+}
+
+}
diff --git a/libs/config/test/boost_no_0x_hdr_regex.ipp b/libs/config/test/boost_no_0x_hdr_regex.ipp
new file mode 100644
index 0000000000..f82693e328
--- /dev/null
+++ b/libs/config/test/boost_no_0x_hdr_regex.ipp
@@ -0,0 +1,24 @@
+// (C) Copyright Beman Dawes 2009
+
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for more information.
+
+// MACRO: BOOST_NO_0X_HDR_REGEX
+// TITLE: C++0x header <regex> unavailable
+// DESCRIPTION: The standard library does not supply C++0x header <regex>
+
+#include <regex>
+
+namespace boost_no_0x_hdr_regex {
+
+int test()
+{
+ using std::regex;
+ using std::wregex;
+ return 0;
+}
+
+}
diff --git a/libs/config/test/boost_no_0x_hdr_system_error.ipp b/libs/config/test/boost_no_0x_hdr_system_error.ipp
new file mode 100644
index 0000000000..158f7c1e06
--- /dev/null
+++ b/libs/config/test/boost_no_0x_hdr_system_error.ipp
@@ -0,0 +1,26 @@
+// (C) Copyright Beman Dawes 2009
+
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for more information.
+
+// MACRO: BOOST_NO_0X_HDR_SYSTEM_ERROR
+// TITLE: C++0x header <system_error> unavailable
+// DESCRIPTION: The standard library does not supply C++0x header <system_error>
+
+#include <system_error>
+
+namespace boost_no_0x_hdr_system_error {
+
+int test()
+{
+ using std::error_category;
+ using std::error_code;
+ using std::error_condition;
+ using std::system_error;
+ return 0;
+}
+
+}
diff --git a/libs/config/test/boost_no_0x_hdr_thread.ipp b/libs/config/test/boost_no_0x_hdr_thread.ipp
new file mode 100644
index 0000000000..c07b03e495
--- /dev/null
+++ b/libs/config/test/boost_no_0x_hdr_thread.ipp
@@ -0,0 +1,27 @@
+// (C) Copyright Beman Dawes 2009
+
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for more information.
+
+// MACRO: BOOST_NO_0X_HDR_THREAD
+// TITLE: C++0x header <thread> unavailable
+// DESCRIPTION: The standard library does not supply C++0x header <thread>
+
+#include <thread>
+
+namespace boost_no_0x_hdr_thread {
+
+int test()
+{
+ using std::thread;
+ using std::this_thread::get_id;
+ using std::this_thread::yield;
+ using std::this_thread::sleep_until;
+ using std::this_thread::sleep_for;
+ return 0;
+}
+
+}
diff --git a/libs/config/test/boost_no_0x_hdr_tuple.ipp b/libs/config/test/boost_no_0x_hdr_tuple.ipp
new file mode 100644
index 0000000000..1a3ff4560c
--- /dev/null
+++ b/libs/config/test/boost_no_0x_hdr_tuple.ipp
@@ -0,0 +1,23 @@
+// (C) Copyright Beman Dawes 2009
+
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for more information.
+
+// MACRO: BOOST_NO_0X_HDR_TUPLE
+// TITLE: C++0x header <tuple> unavailable
+// DESCRIPTION: The standard library does not supply C++0x header <tuple>
+
+#include <tuple>
+
+namespace boost_no_0x_hdr_tuple {
+
+int test()
+{
+ std::tuple<int, int, long> t(0, 1, 2);
+ return 0;
+}
+
+}
diff --git a/libs/config/test/boost_no_0x_hdr_type_traits.ipp b/libs/config/test/boost_no_0x_hdr_type_traits.ipp
new file mode 100644
index 0000000000..44dc6a6fb1
--- /dev/null
+++ b/libs/config/test/boost_no_0x_hdr_type_traits.ipp
@@ -0,0 +1,106 @@
+// (C) Copyright Beman Dawes 2009
+
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for more information.
+
+// MACRO: BOOST_NO_0X_HDR_TYPE_TRAITS
+// TITLE: C++0x header <type_traits> unavailable
+// DESCRIPTION: The standard library does not supply C++0x header <type_traits>
+
+#include <type_traits>
+
+namespace boost_no_0x_hdr_type_traits {
+
+int test()
+{
+ using std::integral_constant;
+ using std::true_type;
+ using std::false_type;
+ using std::is_void;
+ using std::is_integral;
+ using std::is_floating_point;
+ using std::is_array;
+ using std::is_pointer;
+ using std::is_lvalue_reference;
+ using std::is_rvalue_reference;
+ using std::is_member_object_pointer;
+ using std::is_member_function_pointer;
+ using std::is_enum;
+ using std::is_union;
+ using std::is_class;
+ using std::is_function;
+ using std::is_reference;
+ using std::is_arithmetic;
+ using std::is_fundamental;
+ using std::is_object;
+ using std::is_scalar;
+ using std::is_compound;
+ using std::is_member_pointer;
+ using std::is_const;
+ using std::is_volatile;
+ using std::is_trivial;
+ using std::is_trivially_copyable;
+ using std::is_standard_layout;
+ using std::is_pod;
+ using std::is_literal_type;
+ using std::is_empty;
+ using std::is_polymorphic;
+ using std::is_abstract;
+ using std::is_constructible;
+ using std::is_nothrow_constructible;
+ using std::has_default_constructor;
+ using std::has_copy_constructor;
+ using std::has_copy_assign;
+ using std::has_move_constructor;
+ using std::has_move_assign;
+ using std::has_trivial_default_constructor;
+ using std::has_trivial_copy_constructor;
+ using std::has_trivial_move_constructor;
+ using std::has_trivial_copy_assign;
+ using std::has_trivial_move_assign;
+ using std::has_trivial_destructor;
+ using std::has_nothrow_default_constructor;
+ using std::has_nothrow_copy_constructor;
+ using std::has_nothrow_move_constructor;
+ using std::has_nothrow_copy_assign;
+ using std::has_nothrow_move_assign;
+ using std::has_virtual_destructor;
+ using std::is_signed;
+ using std::is_unsigned;
+ using std::alignment_of;
+ using std::rank;
+ using std::extent;
+ using std::is_same;
+ using std::is_base_of;
+ using std::is_convertible;
+ using std::is_explicitly_convertible;
+ using std::remove_const;
+ using std::remove_volatile;
+ using std::remove_cv;
+ using std::add_const;
+ using std::add_volatile;
+ using std::add_cv;
+ using std::remove_reference;
+ using std::add_lvalue_reference;
+ using std::add_rvalue_reference;
+ using std::make_signed;
+ using std::make_unsigned;
+ using std::remove_extent;
+ using std::remove_all_extents;
+ using std::remove_pointer;
+ using std::add_pointer;
+ using std::aligned_storage;
+ using std::aligned_union;
+ using std::decay;
+ using std::enable_if;
+ using std::conditional;
+ using std::common_type;
+ using std::underlying_type;
+ using std::result_of;
+ return 0;
+}
+
+}
diff --git a/libs/config/test/boost_no_0x_hdr_typeindex.ipp b/libs/config/test/boost_no_0x_hdr_typeindex.ipp
new file mode 100644
index 0000000000..b0555e7b11
--- /dev/null
+++ b/libs/config/test/boost_no_0x_hdr_typeindex.ipp
@@ -0,0 +1,25 @@
+// (C) Copyright Beman Dawes 2009
+
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for more information.
+
+// MACRO: BOOST_NO_0X_HDR_TYPEINDEX
+// TITLE: C++0x header <typeindex> unavailable
+// DESCRIPTION: The standard library does not supply C++0x header <typeindex>
+
+#include <typeindex>
+
+namespace boost_no_0x_hdr_typeindex {
+
+int test()
+{
+ std::type_index t1 = typeid(int);
+ std::type_index t2 = typeid(double);
+ std::hash<std::type_index> h;
+ return (t1 != t2) && (h(t1) != h(t2)) ? 0 : 1;
+}
+
+}
diff --git a/libs/config/test/boost_no_0x_hdr_unordered_map.ipp b/libs/config/test/boost_no_0x_hdr_unordered_map.ipp
new file mode 100644
index 0000000000..3d44a1c58a
--- /dev/null
+++ b/libs/config/test/boost_no_0x_hdr_unordered_map.ipp
@@ -0,0 +1,24 @@
+// (C) Copyright Beman Dawes 2009
+
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for more information.
+
+// MACRO: BOOST_NO_0X_HDR_UNORDERED_MAP
+// TITLE: C++0x header <unordered_map> unavailable
+// DESCRIPTION: The standard library does not supply C++0x header <unordered_map>
+
+#include <unordered_map>
+
+namespace boost_no_0x_hdr_unordered_map {
+
+int test()
+{
+ std::unordered_map<int, long> s1;
+ std::unordered_multimap<int, long> s2;
+ return s1.empty() && s2.empty() ? 0 : 1;
+}
+
+}
diff --git a/libs/config/test/boost_no_0x_hdr_unordered_set.ipp b/libs/config/test/boost_no_0x_hdr_unordered_set.ipp
new file mode 100644
index 0000000000..f72f1b6aca
--- /dev/null
+++ b/libs/config/test/boost_no_0x_hdr_unordered_set.ipp
@@ -0,0 +1,24 @@
+// (C) Copyright Beman Dawes 2009
+
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for more information.
+
+// MACRO: BOOST_NO_0X_HDR_UNORDERED_SET
+// TITLE: C++0x header <unordered_set> unavailable
+// DESCRIPTION: The standard library does not supply C++0x header <unordered_set>
+
+#include <unordered_set>
+
+namespace boost_no_0x_hdr_unordered_set {
+
+int test()
+{
+ std::unordered_set<int> s1;
+ std::unordered_multiset<int> s2;
+ return s1.empty() && s2.empty() ? 0 : 1;
+}
+
+}
diff --git a/libs/config/test/boost_no_adl_barrier.ipp b/libs/config/test/boost_no_adl_barrier.ipp
new file mode 100644
index 0000000000..4065df096e
--- /dev/null
+++ b/libs/config/test/boost_no_adl_barrier.ipp
@@ -0,0 +1,38 @@
+// (C) Copyright John Maddock 2008.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_NO_ADL_BARRIER
+// TITLE: Working ADL barriers.
+// DESCRIPTION: If the compiler correctly handles ADL.
+
+namespace boost_no_adl_barrier{
+
+namespace xxx {
+ namespace nested {
+ struct aaa {};
+ }
+ void begin(nested::aaa) {}
+}
+
+namespace nnn {
+ void begin(xxx::nested::aaa) {}
+}
+
+int test()
+{
+ using namespace nnn;
+ xxx::nested::aaa a;
+ begin(a); // ambiguous error in msvc-9.0
+
+ return 0;
+}
+
+}
+
+
+
+
diff --git a/libs/config/test/boost_no_arg_dep_lookup.ipp b/libs/config/test/boost_no_arg_dep_lookup.ipp
new file mode 100644
index 0000000000..d934d44aa7
--- /dev/null
+++ b/libs/config/test/boost_no_arg_dep_lookup.ipp
@@ -0,0 +1,37 @@
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
+// TITLE: Koenig lookup
+// DESCRIPTION: Compiler does not implement
+// argument-dependent lookup (also named Koenig lookup);
+// see std::3.4.2 [basic.koenig.lookup]
+
+
+namespace boost_no_argument_dependent_lookup{
+
+namespace foobar{
+
+struct test{};
+
+void call_test(const test&)
+{}
+
+}
+
+int test()
+{
+ foobar::test t;
+ call_test(t);
+ return 0;
+}
+
+
+}
+
+
+
diff --git a/libs/config/test/boost_no_array_type_spec.ipp b/libs/config/test/boost_no_array_type_spec.ipp
new file mode 100644
index 0000000000..3048669a50
--- /dev/null
+++ b/libs/config/test/boost_no_array_type_spec.ipp
@@ -0,0 +1,30 @@
+// (C) Copyright John Maddock 2001.
+// (C) Copyright Aleksey Gurtovoy 2003.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS
+// TITLE: template specialisations of array types
+// DESCRIPTION: If the compiler cannot handle template specialisations
+// for array types
+
+
+namespace boost_no_array_type_specializations{
+
+template< typename T > struct is_array
+{
+};
+
+template< typename T, int N > struct is_array< T[N] >
+{
+};
+
+int test()
+{
+ return 0;
+}
+
+}
diff --git a/libs/config/test/boost_no_auto_declarations.ipp b/libs/config/test/boost_no_auto_declarations.ipp
new file mode 100644
index 0000000000..65410827c2
--- /dev/null
+++ b/libs/config/test/boost_no_auto_declarations.ipp
@@ -0,0 +1,25 @@
+// Copyright (C) 2009 Andrey Semashev
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_NO_AUTO_DECLARATIONS
+// TITLE: C++0x auto declarators unavailable
+// DESCRIPTION: The compiler does not support C++0x declarations of variables with automatically deduced type
+
+namespace boost_no_auto_declarations {
+
+void check_f(int& x)
+{
+}
+
+int test()
+{
+ auto x = 10;
+ check_f(x);
+ return 0;
+}
+
+}
diff --git a/libs/config/test/boost_no_auto_multidecl.ipp b/libs/config/test/boost_no_auto_multidecl.ipp
new file mode 100644
index 0000000000..ea976612fb
--- /dev/null
+++ b/libs/config/test/boost_no_auto_multidecl.ipp
@@ -0,0 +1,25 @@
+// Copyright (C) 2009 Andrey Semashev
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_NO_AUTO_MULTIDECLARATIONS
+// TITLE: C++0x auto multideclarators unavailable
+// DESCRIPTION: The compiler does not support C++0x declarations of series of variables with automatically deduced type
+
+namespace boost_no_auto_multideclarations {
+
+void check_f(int& x, int*& y)
+{
+}
+
+int test()
+{
+ auto x = 10, *y = &x;
+ check_f(x, y);
+ return 0;
+}
+
+}
diff --git a/libs/config/test/boost_no_auto_ptr.ipp b/libs/config/test/boost_no_auto_ptr.ipp
new file mode 100644
index 0000000000..c86669cd6e
--- /dev/null
+++ b/libs/config/test/boost_no_auto_ptr.ipp
@@ -0,0 +1,53 @@
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_NO_AUTO_PTR
+// TITLE: std::auto_ptr
+// DESCRIPTION: If the compiler / library supplies non-standard or broken
+// std::auto_ptr.
+
+#include <memory>
+
+namespace boost_no_auto_ptr{
+
+template <class T>
+class my_ptr
+{
+ T* p;
+public:
+ my_ptr(std::auto_ptr<T>& r)
+ {
+ p = r.release();
+ }
+ my_ptr& operator=(std::auto_ptr<T>& r)
+ {
+ delete p;
+ p = r.release();
+ return *this;
+ }
+ ~my_ptr()
+ {
+ delete p;
+ }
+};
+
+
+int test()
+{
+ std::auto_ptr<int> ap1(new int);
+ my_ptr<int> mp(ap1);
+ std::auto_ptr<int> ap2(new int);
+ mp = ap2;
+
+ return 0;
+}
+
+}
+
+
+
+
diff --git a/libs/config/test/boost_no_bcb_partial_spec.ipp b/libs/config/test/boost_no_bcb_partial_spec.ipp
new file mode 100644
index 0000000000..e78877c8e9
--- /dev/null
+++ b/libs/config/test/boost_no_bcb_partial_spec.ipp
@@ -0,0 +1,53 @@
+// (C) Copyright Terje Slettebo 2002.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+
+// MACRO: BOOST_BCB_PARTIAL_SPECIALIZATION_BUG
+// TITLE: Full partial specialization support.
+// DESCRIPTION: Borland C++ Builder has some rather specific partial
+// specialisation bugs which this code tests for.
+
+
+#include <vector>
+
+namespace boost_bcb_partial_specialization_bug{
+
+
+template<class T1,class T2>
+class Test
+{
+};
+
+template<class T1,class T2>
+class Test<std::vector<T1>,T2>
+{
+};
+
+template<class T>
+class Test<std::vector<int>,T>
+{
+};
+
+template <class T>
+struct is_const{};
+template <class T>
+struct is_const<T const>{};
+
+int test()
+{
+ Test<std::vector<int>,double> v;
+ is_const<const int> ci;
+ (void)v; // warning suppression
+ (void)ci;
+ return 0;
+}
+
+
+}
+
+
+
+
+
diff --git a/libs/config/test/boost_no_char16_t.ipp b/libs/config/test/boost_no_char16_t.ipp
new file mode 100644
index 0000000000..27d49c62a9
--- /dev/null
+++ b/libs/config/test/boost_no_char16_t.ipp
@@ -0,0 +1,32 @@
+
+// (C) Copyright Beman Dawes 2008
+
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for more information.
+
+// MACRO: BOOST_NO_CHAR16_T
+// TITLE: C++0x char16_t unavailable
+// DESCRIPTION: The compiler does not support C++0x char16_t
+
+namespace boost_no_char16_t {
+
+// Microsoft VC++ 2010, and possibly other compilers, provides
+// a typedef for char16_t rather than a new type. We want that
+// to be an error, so provide an overloaded function that will
+// be ambiguous if char16_t is just a typedef.
+void f(const char16_t*){}
+void f(const unsigned short*){}
+void f(const unsigned int*){}
+void f(const unsigned long*){}
+
+int test()
+{
+ const char16_t* p;
+ f(p);
+ return 0;
+}
+
+}
diff --git a/libs/config/test/boost_no_char32_t.ipp b/libs/config/test/boost_no_char32_t.ipp
new file mode 100644
index 0000000000..5dfcd15ddb
--- /dev/null
+++ b/libs/config/test/boost_no_char32_t.ipp
@@ -0,0 +1,31 @@
+// (C) Copyright Beman Dawes 2008
+
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for more information.
+
+// MACRO: BOOST_NO_CHAR32_T
+// TITLE: C++0x char32_t unavailable
+// DESCRIPTION: The compiler does not support C++0x char32_t
+
+namespace boost_no_char32_t {
+
+// Microsoft VC++ 2010, and possibly other compilers, provides
+// a typedef for char32_t rather than a new type. We want that
+// to be an error, so provide an overloaded function that will
+// be ambiguous if char16_t is just a typedef.
+void f(const char32_t*){}
+void f(const unsigned short*){}
+void f(const unsigned int*){}
+void f(const unsigned long*){}
+
+int test()
+{
+ const char32_t* p;
+ f(p);
+ return 0;
+}
+
+}
diff --git a/libs/config/test/boost_no_com_value_init.ipp b/libs/config/test/boost_no_com_value_init.ipp
new file mode 100644
index 0000000000..47e9ff52a4
--- /dev/null
+++ b/libs/config/test/boost_no_com_value_init.ipp
@@ -0,0 +1,1016 @@
+// (C) Copyright Niels Dekker 2010.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_NO_COMPLETE_VALUE_INITIALIZATION
+// TITLE: No complete value-initialization
+// DESCRIPTION: The C++ compiler does not to have implemented value-initialization completely.
+// See also boost/libs/utility/value_init.htm#compiler_issues
+
+#include <iostream>
+
+// This test checks various forms of value-initialization:
+// - doing subobject initialization inside a constructor
+// - creating a temporary object by T()
+// - creating a heap object by doing new T()
+// It checks various DefaultConstructible types, including fundamental types,
+// enum, union, pointer types, array types, POD and non-POD class types. For
+// each type of object, a helper function is_value_initialized(const T&) tells
+// whether the object is value-initialized.
+//
+// Note: It appeared insufficient to just check a single POD and a single
+// non-POD class type, because some compilers correctly value-initialize some
+// POD and some non-POD objects, while failing to value-initialize others.
+//
+// The test returns the number of encountered value-initialization failures.
+
+namespace boost_no_complete_value_initialization
+{
+ enum enum_type { negative_number = -1, magic_number = 42 };
+
+ class incomplete_class;
+
+ typedef int (*function_ptr_type)(int);
+ typedef int (incomplete_class::*member_function_ptr_type)(int);
+
+ // A POD struct.
+ struct pod_struct
+ {
+ enum_type e;
+ bool b;
+ char c;
+ unsigned char uc;
+ short s;
+ int i;
+ unsigned u;
+ long l;
+ float f;
+ double d;
+ long double ld;
+ void* p;
+ };
+
+ bool is_value_initialized(const pod_struct& arg)
+ {
+ return
+ arg.b == 0 &&
+ arg.e == 0 &&
+ arg.c == 0 &&
+ arg.uc == 0 &&
+ arg.s == 0 &&
+ arg.i == 0 &&
+ arg.u == 0 &&
+ arg.l == 0 &&
+ arg.f == 0 &&
+ arg.d == 0 &&
+ arg.p == 0;
+ }
+
+ // A POD struct derived from another POD struct.
+ struct derived_pod_struct: pod_struct
+ {
+ int derived_data;
+ };
+
+ bool is_value_initialized(const derived_pod_struct& arg)
+ {
+ const pod_struct& base_subobject = arg;
+ return arg.derived_data == 0 && is_value_initialized(base_subobject);
+ }
+
+
+ struct empty_struct
+ {
+ };
+
+
+ // A POD aggregate struct derived from an empty struct.
+ // Similar to struct Foo1 from Microsoft Visual C++ bug report 484295,
+ // "VC++ does not value-initialize members of derived classes without
+ // user-declared constructor", reported in 2009 by Sylvester Hesp:
+ // https://connect.microsoft.com/VisualStudio/feedback/details/484295
+ struct derived_struct: empty_struct
+ {
+ int data;
+ };
+
+ bool is_value_initialized(const derived_struct& arg)
+ {
+ return arg.data == 0;
+ }
+
+
+ // A struct, having a bit-field.
+ struct bit_field_struct
+ {
+ bool b : 1;
+ char c : 7;
+ unsigned u: 8 * sizeof(unsigned) - 1;
+ };
+
+ bool is_value_initialized(const bit_field_struct& arg)
+ {
+ return arg.b == false && arg.c == '\0'&& arg.u == 0U;
+ }
+
+ // A struct, having a function pointer.
+ struct function_ptr_struct
+ {
+ function_ptr_type data;
+ };
+
+ bool is_value_initialized(const function_ptr_struct& arg)
+ {
+ return arg.data == 0;
+ }
+
+ // A struct, having a member function pointer.
+ struct member_function_ptr_struct
+ {
+ member_function_ptr_type data;
+ };
+
+ bool is_value_initialized(const member_function_ptr_struct& arg)
+ {
+ return arg.data == 0;
+ }
+
+ struct int_pair_struct
+ {
+ int first;
+ int second;
+ };
+
+ typedef int int_pair_struct::*ptr_to_member_type;
+
+ struct ptr_to_member_struct
+ {
+ ptr_to_member_type data;
+ };
+
+ bool is_value_initialized(const ptr_to_member_struct& arg)
+ {
+ return arg.data == 0;
+ }
+
+ // A struct, having an int. Equivalent to the struct TData, from CodeGear bug
+ // report 51854, "Value-initialization: POD struct should be zero-initialized",
+ // reported by me (Niels Dekker, LKEB) in 2007:
+ // http://qc.embarcadero.com/wc/qcmain.aspx?d=51854
+ struct int_struct
+ {
+ int data;
+ };
+
+ bool is_value_initialized(const int_struct& arg)
+ {
+ return arg.data == 0;
+ }
+
+
+ // A struct, having an int_struct.
+ struct int_struct_holder
+ {
+ int_struct data;
+ };
+
+ bool is_value_initialized(const int_struct_holder& arg)
+ {
+ return is_value_initialized(arg.data);
+ }
+
+
+ // A struct derived from int_struct.
+ struct derived_int_struct: int_struct
+ {
+ };
+
+ bool is_value_initialized(const derived_int_struct& arg)
+ {
+ return arg.data == 0;
+ }
+
+
+ struct char_array_struct
+ {
+ char data[42];
+ };
+
+ bool is_value_initialized(const char_array_struct& arg)
+ {
+ for ( unsigned i = 0; i < sizeof(arg.data); ++i)
+ {
+ if ( arg.data[i] != 0 )
+ {
+ return false;
+ }
+ }
+ return true;
+ }
+
+
+ class private_int_holder
+ {
+ private:
+ int m_data;
+
+ friend bool is_value_initialized(const private_int_holder& arg)
+ {
+ return arg.m_data == 0;
+ }
+ };
+
+
+ // Equivalent to the Stats class from GCC Bug 33916,
+ // "Default constructor fails to initialize array members", reported in 2007 by
+ // Michael Elizabeth Chastain: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33916
+ class private_int_array_pair
+ {
+ friend bool is_value_initialized(const private_int_array_pair& arg);
+ private:
+ int first[12];
+ int second[12];
+ };
+
+ bool is_value_initialized(const private_int_array_pair& arg)
+ {
+ for ( unsigned i = 0; i < 12; ++i)
+ {
+ if ( (arg.first[i] != 0) || (arg.second[i] != 0) )
+ {
+ return false;
+ }
+ }
+ return true;
+ }
+
+
+ union pod_struct_and_int_union
+ {
+ pod_struct first;
+ int second;
+ };
+
+ bool is_value_initialized(const pod_struct_and_int_union& arg)
+ {
+ // When a union is zero-initialized, its first non-static
+ // named data member is zero-initialized ([dcl.init]).
+ return is_value_initialized(arg.first);
+ }
+
+
+ union int_and_pod_struct_union
+ {
+ int first;
+ pod_struct second;
+ };
+
+ bool is_value_initialized(const int_and_pod_struct_union& arg)
+ {
+ return arg.first == 0;
+ }
+
+
+ // A class that holds a "magic" enum value.
+ // Note: This is not a POD class, because it has a user-defined
+ // default constructor.
+ class enum_holder
+ {
+ enum_type m_enum;
+ public:
+
+ enum_holder()
+ :
+ m_enum(magic_number)
+ {
+ }
+
+ bool is_value_initialized() const
+ {
+ return m_enum == magic_number;
+ }
+ };
+
+ bool is_value_initialized(const enum_holder& arg)
+ {
+ return arg.is_value_initialized();
+ }
+
+
+ // An aggregate struct of a non-POD class and an int.
+ // Similar to struct A from Microsoft Visual C++ bug report 100744,
+ // "Value-initialization in new-expression", reported in 2005 by
+ // Pavel Kuznetsov (MetaCommunications Engineering):
+ // https://connect.microsoft.com/VisualStudio/feedback/details/100744
+ struct enum_holder_and_int
+ {
+ enum_holder e;
+ int i;
+ };
+
+ bool is_value_initialized(const enum_holder_and_int& arg)
+ {
+ return arg.e.is_value_initialized() && arg.i == 0;
+ }
+
+ class user_defined_copy_constructor_holder
+ {
+ public:
+ int data;
+
+ user_defined_copy_constructor_holder()
+ :
+ data(0)
+ {
+ }
+
+ user_defined_copy_constructor_holder(const user_defined_copy_constructor_holder& arg)
+ :
+ data(arg.data)
+ {
+ }
+ };
+
+ // An aggregate struct that has a data member which has a user-defined
+ // copy constructor and a data member of a scalar type.
+ // Similar to struct B from Microsoft Visual C++ bug report 499606,
+ // "Presence of copy constructor breaks member class initialization",
+ // reported in 2009 by Alex Vakulenko:
+ // https://connect.microsoft.com/VisualStudio/feedback/details/499606
+ struct user_defined_copy_constructor_holder_and_int
+ {
+ user_defined_copy_constructor_holder first;
+ int second;
+ };
+
+ bool is_value_initialized(const user_defined_copy_constructor_holder_and_int& arg)
+ {
+ return arg.first.data == 0 && arg.second == 0;
+ }
+
+
+ // An class that has a private and a protected int data member.
+ class private_and_protected_int
+ {
+ private:
+ int private_int;
+ protected:
+ int protected_int;
+ public:
+ friend bool is_value_initialized(const private_and_protected_int& arg)
+ {
+ return arg.private_int == 0 && arg.protected_int == 0;
+ }
+ };
+
+
+ class user_defined_destructor_holder
+ {
+ public:
+ int i;
+ ~user_defined_destructor_holder()
+ {
+ }
+ };
+
+ bool is_value_initialized(const user_defined_destructor_holder& arg)
+ {
+ return arg.i == 0;
+ }
+
+
+ class virtual_destructor_holder
+ {
+ public:
+ int i;
+ virtual ~virtual_destructor_holder()
+ {
+ }
+ };
+
+ bool is_value_initialized(const virtual_destructor_holder& arg)
+ {
+ return arg.i == 0;
+ }
+
+
+ // A class that is not a POD type.
+ class non_pod_class
+ {
+ private:
+ enum_holder m_enum_holder;
+
+ public:
+ int i;
+
+ virtual bool is_value_initialized() const
+ {
+ return m_enum_holder.is_value_initialized() && i == 0;
+ }
+
+ virtual ~non_pod_class() {}
+ };
+
+ bool is_value_initialized(const non_pod_class& arg)
+ {
+ return arg.is_value_initialized();
+ }
+
+
+ typedef char _2d_char_array_type[3][4];
+
+ bool is_value_initialized(const _2d_char_array_type& arg)
+ {
+ for(unsigned i = 0; i < sizeof(_2d_char_array_type); ++i)
+ {
+ if ((*arg)[i] != 0)
+ {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ typedef char _3d_char_array_type[5][6][7];
+
+ bool is_value_initialized(const _3d_char_array_type& arg)
+ {
+ for(unsigned i = 0; i < sizeof(_3d_char_array_type); ++i)
+ {
+ if ((**arg)[i] != 0)
+ {
+ return false;
+ }
+ }
+ return true;
+ }
+
+
+
+ // Tells whether an object of a scalar type T is value-initialized.
+ template <class T>
+ bool is_value_initialized(const T& arg)
+ {
+ return arg == 0;
+ }
+
+
+ // Wraps a heap object that it has allocated by doing new T().
+ template <class T>
+ class heap_object_wrapper
+ {
+ private:
+ T* const m_ptr;
+
+ // The following function is intentionally left unimplemented
+ // (as if deleted, "= delete", in C++0x):
+ void operator=(heap_object_wrapper);
+
+ public:
+ heap_object_wrapper()
+ :
+ m_ptr(new T())
+ {
+ }
+
+ ~heap_object_wrapper()
+ {
+ delete m_ptr;
+ }
+
+ // The copy-constructor is intentionally left unimplemented.
+ heap_object_wrapper(const heap_object_wrapper&);
+
+ bool is_wrapped_object_value_initialized() const
+ {
+ return (m_ptr != 0) && is_value_initialized(*m_ptr);
+ }
+ };
+
+ template <class T>
+ bool is_value_initialized(const heap_object_wrapper<T>& arg)
+ {
+ return arg.is_wrapped_object_value_initialized();
+ }
+
+
+ // Returns zero when the specified object is value-initializated, and one otherwise.
+ // Prints a message to standard output if the value-initialization has failed.
+ template <class T>
+ unsigned failed_to_value_initialized(const T& object, const char *const object_name)
+ {
+ if ( is_value_initialized(object) )
+ {
+ return 0u;
+ }
+ else
+ {
+ std::cout << "Note: Failed to value-initialize " << object_name << '.' << std::endl;
+ return 1u;
+ }
+ }
+
+// A macro that passed both the name and the value of the specified object to
+// the function above here.
+#define FAILED_TO_VALUE_INITIALIZE(value) failed_to_value_initialized(value, #value)
+
+
+ // value_initializer initializes each of its data members by means
+ // of an empty set of parentheses, and allows checking whether
+ // each of them is indeed value-initialized, as specified by
+ // the C++ Standard ([dcl.init]).
+ //
+ // Note: its base class, int_struct, is there to try to reproduce GCC Bug 30111,
+ // "Value-initialization of POD base class doesn't initialize members", reported
+ // by Jonathan Wakely in 2006: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30111
+ class value_initializer: private int_struct
+ {
+ private:
+ enum_holder m_enum_holder;
+ enum_holder m_enum_holder_array[2];
+ enum_type m_enum;
+ enum_type m_enum_array[2];
+ bool m_bool;
+ bool m_bool_array[2];
+ char m_char;
+ char m_char_array[2];
+ _2d_char_array_type m_2d_char_array;
+ _3d_char_array_type m_3d_char_array;
+ unsigned char m_unsigned_char;
+ unsigned char m_unsigned_char_array[2];
+ short m_short;
+ short m_short_array[2];
+ int m_int;
+ int m_int_array[2];
+ unsigned m_unsigned;
+ unsigned m_unsigned_array[2];
+ long m_long;
+ long m_long_array[2];
+ float m_float;
+ float m_float_array[2];
+ double m_double;
+ double m_double_array[2];
+ long double m_long_double;
+ long double m_long_double_array[2];
+ void* m_void_ptr;
+ void* m_void_ptr_array[2];
+ function_ptr_type m_function_ptr;
+ function_ptr_type m_function_ptr_array[2];
+ function_ptr_struct m_function_ptr_struct;
+ function_ptr_struct m_function_ptr_struct_array[2];
+ member_function_ptr_type m_member_function_ptr;
+ member_function_ptr_type m_member_function_ptr_array[2];
+ member_function_ptr_struct m_member_function_ptr_struct;
+ member_function_ptr_struct m_member_function_ptr_struct_array[2];
+ ptr_to_member_type m_ptr_to_member;
+ ptr_to_member_type m_ptr_to_member_array[2];
+ ptr_to_member_struct m_ptr_to_member_struct;
+ ptr_to_member_struct m_ptr_to_member_struct_array[2];
+ bit_field_struct m_bit_field_struct;
+ bit_field_struct m_bit_field_struct_array[2];
+ int_struct m_int_struct;
+ int_struct m_int_struct_array[2];
+ int_struct m_int_struct_holder;
+ int_struct m_int_struct_holder_array[2];
+ pod_struct m_pod_struct;
+ pod_struct m_pod_struct_array[2];
+ derived_pod_struct m_derived_pod_struct;
+ derived_pod_struct m_derived_pod_struct_array[2];
+ derived_struct m_derived_struct;
+ derived_struct m_derived_struct_array[2];
+ derived_int_struct m_derived_int_struct;
+ derived_int_struct m_derived_int_struct_array[2];
+ private_int_holder m_private_int_holder;
+ private_int_holder m_private_int_holder_array[2];
+ char_array_struct m_char_array_struct;
+ char_array_struct m_char_array_struct_array[2];
+ private_int_array_pair m_private_int_array_pair;
+ private_int_array_pair m_private_int_array_pair_array[2];
+ enum_holder_and_int m_enum_holder_and_int;
+ enum_holder_and_int m_enum_holder_and_int_array[2];
+ private_and_protected_int m_private_and_protected_int;
+ private_and_protected_int m_private_and_protected_int_array[2];
+ user_defined_copy_constructor_holder_and_int m_user_defined_copy_constructor_holder_and_int;
+ user_defined_copy_constructor_holder_and_int m_user_defined_copy_constructor_holder_and_int_array[2];
+ user_defined_destructor_holder m_user_defined_destructor_holder;
+ user_defined_destructor_holder m_user_defined_destructor_holder_array[2];
+ virtual_destructor_holder m_virtual_destructor_holder;
+ virtual_destructor_holder m_virtual_destructor_holder_array[2];
+ non_pod_class m_non_pod;
+ non_pod_class m_non_pod_array[2];
+ pod_struct_and_int_union m_pod_struct_and_int_union;
+ pod_struct_and_int_union m_pod_struct_and_int_union_array[2];
+ int_and_pod_struct_union m_int_and_pod_struct_union;
+ int_and_pod_struct_union m_int_and_pod_struct_union_array[2];
+
+ public:
+ // Default constructor. Tries to value-initialize its base subobject and all
+ // of its data.members.
+ value_initializer()
+ :
+ // Note: CodeGear/Borland may produce a warning, W8039, for each data member
+ // whose type is an array type, saying "Constructor initializer list ignored".
+ // If it does, it probably won't value-initialize those arrays, as reported
+ // by me (Niels Dekker, LKEB) in 2010, report 83751, "Value-initialization:
+ // arrays should have each element value-initialized",
+ // http://qc.embarcadero.com/wc/qcmain.aspx?d=83751
+ // On the other hand, Microsoft Visual C++ may produce warnings of type C4351,
+ // saying "new behavior: elements of array '...' will be default initialized",
+ // which is actually the right behavior!
+ int_struct(),
+ m_enum_holder(),
+ m_enum_holder_array(),
+ m_enum(),
+ m_enum_array(),
+ m_bool(),
+ m_bool_array(),
+ m_char(),
+ m_char_array(),
+ m_2d_char_array(),
+ m_3d_char_array(),
+ m_unsigned_char(),
+ m_unsigned_char_array(),
+ m_short(),
+ m_short_array(),
+ m_int(),
+ m_int_array(),
+ m_unsigned(),
+ m_unsigned_array(),
+ m_long(),
+ m_long_array(),
+ m_float(),
+ m_float_array(),
+ m_double(),
+ m_double_array(),
+ m_long_double(),
+ m_long_double_array(),
+ m_void_ptr(),
+ m_void_ptr_array(),
+ m_function_ptr(),
+ m_function_ptr_array(),
+ m_function_ptr_struct(),
+ m_function_ptr_struct_array(),
+ m_member_function_ptr(),
+ m_member_function_ptr_array(),
+ m_member_function_ptr_struct(),
+ m_member_function_ptr_struct_array(),
+ m_ptr_to_member(),
+ m_ptr_to_member_array(),
+ m_ptr_to_member_struct(),
+ m_ptr_to_member_struct_array(),
+ m_bit_field_struct(),
+ m_bit_field_struct_array(),
+ m_int_struct(),
+ m_int_struct_array(),
+ m_int_struct_holder(),
+ m_int_struct_holder_array(),
+ m_pod_struct(),
+ m_pod_struct_array(),
+ m_derived_pod_struct(),
+ m_derived_pod_struct_array(),
+ m_derived_struct(),
+ m_derived_struct_array(),
+ m_derived_int_struct(),
+ m_derived_int_struct_array(),
+ m_private_int_holder(),
+ m_private_int_holder_array(),
+ m_char_array_struct(),
+ m_char_array_struct_array(),
+ m_private_int_array_pair(),
+ m_private_int_array_pair_array(),
+ m_enum_holder_and_int(),
+ m_enum_holder_and_int_array(),
+ m_private_and_protected_int(),
+ m_private_and_protected_int_array(),
+ m_user_defined_copy_constructor_holder_and_int(),
+ m_user_defined_copy_constructor_holder_and_int_array(),
+ m_user_defined_destructor_holder(),
+ m_user_defined_destructor_holder_array(),
+ m_virtual_destructor_holder(),
+ m_virtual_destructor_holder_array(),
+ m_non_pod(),
+ m_non_pod_array(),
+ m_pod_struct_and_int_union(),
+ m_pod_struct_and_int_union_array(),
+ m_int_and_pod_struct_union(),
+ m_int_and_pod_struct_union_array()
+ {
+ }
+
+ // Returns the number of failures.
+ unsigned check_value_initialization_of_subobjects() const
+ {
+ const unsigned num_failures =
+ FAILED_TO_VALUE_INITIALIZE(int_struct::data) +
+ FAILED_TO_VALUE_INITIALIZE(m_enum_holder) +
+ FAILED_TO_VALUE_INITIALIZE(m_enum_holder_array[0]) +
+ FAILED_TO_VALUE_INITIALIZE(m_enum_holder_array[1]) +
+ FAILED_TO_VALUE_INITIALIZE(m_enum) +
+ FAILED_TO_VALUE_INITIALIZE(m_enum_array[0]) +
+ FAILED_TO_VALUE_INITIALIZE(m_enum_array[1]) +
+ FAILED_TO_VALUE_INITIALIZE(m_bool) +
+ FAILED_TO_VALUE_INITIALIZE(m_bool_array[0]) +
+ FAILED_TO_VALUE_INITIALIZE(m_bool_array[1]) +
+ FAILED_TO_VALUE_INITIALIZE(m_char) +
+ FAILED_TO_VALUE_INITIALIZE(m_char_array[0]) +
+ FAILED_TO_VALUE_INITIALIZE(m_char_array[1]) +
+ FAILED_TO_VALUE_INITIALIZE(m_2d_char_array) +
+ FAILED_TO_VALUE_INITIALIZE(m_3d_char_array) +
+ FAILED_TO_VALUE_INITIALIZE(m_unsigned_char) +
+ FAILED_TO_VALUE_INITIALIZE(m_unsigned_char_array[0]) +
+ FAILED_TO_VALUE_INITIALIZE(m_unsigned_char_array[1]) +
+ FAILED_TO_VALUE_INITIALIZE(m_short) +
+ FAILED_TO_VALUE_INITIALIZE(m_short_array[0]) +
+ FAILED_TO_VALUE_INITIALIZE(m_short_array[1]) +
+ FAILED_TO_VALUE_INITIALIZE(m_int) +
+ FAILED_TO_VALUE_INITIALIZE(m_int_array[0]) +
+ FAILED_TO_VALUE_INITIALIZE(m_int_array[1]) +
+ FAILED_TO_VALUE_INITIALIZE(m_unsigned) +
+ FAILED_TO_VALUE_INITIALIZE(m_unsigned_array[0]) +
+ FAILED_TO_VALUE_INITIALIZE(m_unsigned_array[1]) +
+ FAILED_TO_VALUE_INITIALIZE(m_long) +
+ FAILED_TO_VALUE_INITIALIZE(m_long_array[0]) +
+ FAILED_TO_VALUE_INITIALIZE(m_long_array[1]) +
+ FAILED_TO_VALUE_INITIALIZE(m_float) +
+ FAILED_TO_VALUE_INITIALIZE(m_float_array[0]) +
+ FAILED_TO_VALUE_INITIALIZE(m_float_array[1]) +
+ FAILED_TO_VALUE_INITIALIZE(m_double) +
+ FAILED_TO_VALUE_INITIALIZE(m_double_array[0]) +
+ FAILED_TO_VALUE_INITIALIZE(m_double_array[1]) +
+ FAILED_TO_VALUE_INITIALIZE(m_long_double) +
+ FAILED_TO_VALUE_INITIALIZE(m_long_double_array[0]) +
+ FAILED_TO_VALUE_INITIALIZE(m_long_double_array[1]) +
+ FAILED_TO_VALUE_INITIALIZE(m_void_ptr) +
+ FAILED_TO_VALUE_INITIALIZE(m_void_ptr_array[0]) +
+ FAILED_TO_VALUE_INITIALIZE(m_void_ptr_array[1]) +
+ FAILED_TO_VALUE_INITIALIZE(m_function_ptr) +
+ FAILED_TO_VALUE_INITIALIZE(m_function_ptr_array[0]) +
+ FAILED_TO_VALUE_INITIALIZE(m_function_ptr_array[1]) +
+ FAILED_TO_VALUE_INITIALIZE(m_function_ptr_struct) +
+ FAILED_TO_VALUE_INITIALIZE(m_function_ptr_struct_array[0]) +
+ FAILED_TO_VALUE_INITIALIZE(m_function_ptr_struct_array[1]) +
+ FAILED_TO_VALUE_INITIALIZE(m_member_function_ptr) +
+ FAILED_TO_VALUE_INITIALIZE(m_member_function_ptr_array[0]) +
+ FAILED_TO_VALUE_INITIALIZE(m_member_function_ptr_array[1]) +
+ FAILED_TO_VALUE_INITIALIZE(m_member_function_ptr_struct) +
+ FAILED_TO_VALUE_INITIALIZE(m_member_function_ptr_struct_array[0]) +
+ FAILED_TO_VALUE_INITIALIZE(m_member_function_ptr_struct_array[1]) +
+ FAILED_TO_VALUE_INITIALIZE(m_ptr_to_member) +
+ FAILED_TO_VALUE_INITIALIZE(m_ptr_to_member_array[0]) +
+ FAILED_TO_VALUE_INITIALIZE(m_ptr_to_member_array[1]) +
+ FAILED_TO_VALUE_INITIALIZE(m_ptr_to_member_struct) +
+ FAILED_TO_VALUE_INITIALIZE(m_ptr_to_member_struct_array[0]) +
+ FAILED_TO_VALUE_INITIALIZE(m_ptr_to_member_struct_array[1]) +
+ FAILED_TO_VALUE_INITIALIZE(m_bit_field_struct) +
+ FAILED_TO_VALUE_INITIALIZE(m_bit_field_struct_array[0]) +
+ FAILED_TO_VALUE_INITIALIZE(m_bit_field_struct_array[1]) +
+ FAILED_TO_VALUE_INITIALIZE(m_int_struct) +
+ FAILED_TO_VALUE_INITIALIZE(m_int_struct_array[0]) +
+ FAILED_TO_VALUE_INITIALIZE(m_int_struct_array[1]) +
+ FAILED_TO_VALUE_INITIALIZE(m_int_struct_holder) +
+ FAILED_TO_VALUE_INITIALIZE(m_int_struct_holder_array[0]) +
+ FAILED_TO_VALUE_INITIALIZE(m_int_struct_holder_array[1]) +
+ FAILED_TO_VALUE_INITIALIZE(m_pod_struct) +
+ FAILED_TO_VALUE_INITIALIZE(m_pod_struct_array[0]) +
+ FAILED_TO_VALUE_INITIALIZE(m_pod_struct_array[1]) +
+ FAILED_TO_VALUE_INITIALIZE(m_derived_pod_struct) +
+ FAILED_TO_VALUE_INITIALIZE(m_derived_pod_struct_array[0]) +
+ FAILED_TO_VALUE_INITIALIZE(m_derived_pod_struct_array[1]) +
+ FAILED_TO_VALUE_INITIALIZE(m_derived_struct) +
+ FAILED_TO_VALUE_INITIALIZE(m_derived_struct_array[0]) +
+ FAILED_TO_VALUE_INITIALIZE(m_derived_struct_array[1]) +
+ FAILED_TO_VALUE_INITIALIZE(m_derived_int_struct) +
+ FAILED_TO_VALUE_INITIALIZE(m_derived_int_struct_array[0]) +
+ FAILED_TO_VALUE_INITIALIZE(m_derived_int_struct_array[1]) +
+ FAILED_TO_VALUE_INITIALIZE(m_private_int_holder) +
+ FAILED_TO_VALUE_INITIALIZE(m_private_int_holder_array[0]) +
+ FAILED_TO_VALUE_INITIALIZE(m_private_int_holder_array[1]) +
+ FAILED_TO_VALUE_INITIALIZE(m_char_array_struct) +
+ FAILED_TO_VALUE_INITIALIZE(m_char_array_struct_array[0]) +
+ FAILED_TO_VALUE_INITIALIZE(m_char_array_struct_array[1]) +
+ FAILED_TO_VALUE_INITIALIZE(m_private_int_array_pair) +
+ FAILED_TO_VALUE_INITIALIZE(m_private_int_array_pair_array[0]) +
+ FAILED_TO_VALUE_INITIALIZE(m_private_int_array_pair_array[1]) +
+ FAILED_TO_VALUE_INITIALIZE(m_enum_holder_and_int) +
+ FAILED_TO_VALUE_INITIALIZE(m_enum_holder_and_int_array[0]) +
+ FAILED_TO_VALUE_INITIALIZE(m_enum_holder_and_int_array[1]) +
+ FAILED_TO_VALUE_INITIALIZE(m_private_and_protected_int) +
+ FAILED_TO_VALUE_INITIALIZE(m_private_and_protected_int_array[0]) +
+ FAILED_TO_VALUE_INITIALIZE(m_private_and_protected_int_array[1]) +
+ FAILED_TO_VALUE_INITIALIZE(m_user_defined_copy_constructor_holder_and_int) +
+ FAILED_TO_VALUE_INITIALIZE(m_user_defined_copy_constructor_holder_and_int_array[0]) +
+ FAILED_TO_VALUE_INITIALIZE(m_user_defined_copy_constructor_holder_and_int_array[1]) +
+ FAILED_TO_VALUE_INITIALIZE(m_user_defined_destructor_holder) +
+ FAILED_TO_VALUE_INITIALIZE(m_user_defined_destructor_holder_array[0]) +
+ FAILED_TO_VALUE_INITIALIZE(m_user_defined_destructor_holder_array[1]) +
+ FAILED_TO_VALUE_INITIALIZE(m_virtual_destructor_holder) +
+ FAILED_TO_VALUE_INITIALIZE(m_virtual_destructor_holder_array[0]) +
+ FAILED_TO_VALUE_INITIALIZE(m_virtual_destructor_holder_array[1]) +
+ FAILED_TO_VALUE_INITIALIZE(m_non_pod) +
+ FAILED_TO_VALUE_INITIALIZE(m_non_pod_array[0]) +
+ FAILED_TO_VALUE_INITIALIZE(m_non_pod_array[1]) +
+ FAILED_TO_VALUE_INITIALIZE(m_pod_struct_and_int_union) +
+ FAILED_TO_VALUE_INITIALIZE(m_pod_struct_and_int_union_array[0]) +
+ FAILED_TO_VALUE_INITIALIZE(m_pod_struct_and_int_union_array[1]) +
+ FAILED_TO_VALUE_INITIALIZE(m_int_and_pod_struct_union) +
+ FAILED_TO_VALUE_INITIALIZE(m_int_and_pod_struct_union_array[0]) +
+ FAILED_TO_VALUE_INITIALIZE(m_int_and_pod_struct_union_array[1]);
+ return num_failures;
+ }
+ };
+
+ // Checks value-initialization of a number of small temporary objects.
+ // Returns the number of failures.
+ unsigned check_value_initialization_of_temporaries()
+ {
+ typedef long double long_double_type;
+ typedef unsigned char unsigned_char_type;
+ typedef void* void_ptr_type;
+
+ const unsigned num_failures =
+ FAILED_TO_VALUE_INITIALIZE(enum_holder()) +
+ FAILED_TO_VALUE_INITIALIZE(enum_type()) +
+ FAILED_TO_VALUE_INITIALIZE(bool()) +
+ FAILED_TO_VALUE_INITIALIZE(char()) +
+ FAILED_TO_VALUE_INITIALIZE(unsigned_char_type()) +
+ FAILED_TO_VALUE_INITIALIZE(short()) +
+ FAILED_TO_VALUE_INITIALIZE(int()) +
+ FAILED_TO_VALUE_INITIALIZE(unsigned()) +
+ FAILED_TO_VALUE_INITIALIZE(long()) +
+ FAILED_TO_VALUE_INITIALIZE(float()) +
+ FAILED_TO_VALUE_INITIALIZE(double()) +
+ FAILED_TO_VALUE_INITIALIZE(long_double_type()) +
+ FAILED_TO_VALUE_INITIALIZE(void_ptr_type()) +
+ FAILED_TO_VALUE_INITIALIZE(bit_field_struct()) +
+ FAILED_TO_VALUE_INITIALIZE(function_ptr_type()) +
+ FAILED_TO_VALUE_INITIALIZE(function_ptr_struct()) +
+ FAILED_TO_VALUE_INITIALIZE(member_function_ptr_type()) +
+ FAILED_TO_VALUE_INITIALIZE(member_function_ptr_struct()) +
+ FAILED_TO_VALUE_INITIALIZE(ptr_to_member_type()) +
+ FAILED_TO_VALUE_INITIALIZE(ptr_to_member_struct()) +
+ FAILED_TO_VALUE_INITIALIZE(int_struct()) +
+ FAILED_TO_VALUE_INITIALIZE(int_struct_holder()) +
+ FAILED_TO_VALUE_INITIALIZE(pod_struct()) +
+ FAILED_TO_VALUE_INITIALIZE(derived_pod_struct()) +
+ FAILED_TO_VALUE_INITIALIZE(derived_struct()) +
+ FAILED_TO_VALUE_INITIALIZE(derived_int_struct()) +
+ FAILED_TO_VALUE_INITIALIZE(private_int_holder()) +
+ FAILED_TO_VALUE_INITIALIZE(char_array_struct()) +
+ FAILED_TO_VALUE_INITIALIZE(private_int_array_pair()) +
+ // IBM's XL V10.1.0.0 may fail to value-initialize a temporary of a non-POD
+ // type like enum_holder_and_int, virtual_destructor_holder, or non_pod_class,
+ // as appeared at the Boost Config/trunk regression page in April 2010.
+ // Michael Wong (IBM Canada Ltd) confirmed the issue to me (Niels Dekker, LKEB),
+ // and gave it high priority.
+ FAILED_TO_VALUE_INITIALIZE(enum_holder_and_int()) +
+ FAILED_TO_VALUE_INITIALIZE(private_and_protected_int()) +
+ FAILED_TO_VALUE_INITIALIZE(user_defined_copy_constructor_holder_and_int()) +
+ // The following line, doing user_defined_destructor_holder(), causes
+ // a compilation error on Embarcadero 2010 (Borland/CodeGear 6.21),
+ // as reported by me (Niels Dekker, LKEB) in 2010, bug report 83851,
+ // "Value-initialized temporary triggers internal backend error C1798",
+ // http://qc.embarcadero.com/wc/qcmain.aspx?d=83851
+ FAILED_TO_VALUE_INITIALIZE(user_defined_destructor_holder()) +
+ FAILED_TO_VALUE_INITIALIZE(virtual_destructor_holder()) +
+ FAILED_TO_VALUE_INITIALIZE(non_pod_class()) +
+ FAILED_TO_VALUE_INITIALIZE(pod_struct_and_int_union()) +
+ FAILED_TO_VALUE_INITIALIZE(int_and_pod_struct_union());
+ return num_failures;
+ }
+
+ // Checks value-initialization of small heap objects.
+ // Returns the number of failures.
+ unsigned check_value_initialization_of_heap_objects()
+ {
+ const unsigned num_failures =
+ FAILED_TO_VALUE_INITIALIZE( heap_object_wrapper<enum_holder>() ) +
+ FAILED_TO_VALUE_INITIALIZE( heap_object_wrapper<enum_type>() ) +
+ FAILED_TO_VALUE_INITIALIZE( heap_object_wrapper<bool>() ) +
+ FAILED_TO_VALUE_INITIALIZE( heap_object_wrapper<char>() ) +
+ FAILED_TO_VALUE_INITIALIZE( heap_object_wrapper<unsigned char>() ) +
+ FAILED_TO_VALUE_INITIALIZE( heap_object_wrapper<short>() ) +
+ FAILED_TO_VALUE_INITIALIZE( heap_object_wrapper<int>() ) +
+ FAILED_TO_VALUE_INITIALIZE( heap_object_wrapper<unsigned>() ) +
+ FAILED_TO_VALUE_INITIALIZE( heap_object_wrapper<long>() ) +
+ FAILED_TO_VALUE_INITIALIZE( heap_object_wrapper<float>() ) +
+ FAILED_TO_VALUE_INITIALIZE( heap_object_wrapper<double>() ) +
+ FAILED_TO_VALUE_INITIALIZE( heap_object_wrapper<long double>() ) +
+ FAILED_TO_VALUE_INITIALIZE( heap_object_wrapper<void*>() ) +
+ FAILED_TO_VALUE_INITIALIZE( heap_object_wrapper<function_ptr_type>() ) +
+ FAILED_TO_VALUE_INITIALIZE( heap_object_wrapper<function_ptr_struct>() ) +
+ FAILED_TO_VALUE_INITIALIZE( heap_object_wrapper<member_function_ptr_type>() ) +
+ FAILED_TO_VALUE_INITIALIZE( heap_object_wrapper<member_function_ptr_struct>() ) +
+ FAILED_TO_VALUE_INITIALIZE( heap_object_wrapper<ptr_to_member_type>() ) +
+ FAILED_TO_VALUE_INITIALIZE( heap_object_wrapper<ptr_to_member_struct>() ) +
+ FAILED_TO_VALUE_INITIALIZE( heap_object_wrapper<bit_field_struct>() ) +
+ FAILED_TO_VALUE_INITIALIZE( heap_object_wrapper<int_struct>() ) +
+ FAILED_TO_VALUE_INITIALIZE( heap_object_wrapper<int_struct>() ) +
+ FAILED_TO_VALUE_INITIALIZE( heap_object_wrapper<pod_struct>() ) +
+ FAILED_TO_VALUE_INITIALIZE( heap_object_wrapper<derived_pod_struct>() ) +
+ FAILED_TO_VALUE_INITIALIZE( heap_object_wrapper<derived_struct>() ) +
+ FAILED_TO_VALUE_INITIALIZE( heap_object_wrapper<derived_int_struct>() ) +
+ FAILED_TO_VALUE_INITIALIZE( heap_object_wrapper<char_array_struct>() ) +
+ FAILED_TO_VALUE_INITIALIZE( heap_object_wrapper<private_int_holder>() ) +
+ FAILED_TO_VALUE_INITIALIZE( heap_object_wrapper<private_int_array_pair>() ) +
+ FAILED_TO_VALUE_INITIALIZE( heap_object_wrapper<enum_holder_and_int>() ) +
+ FAILED_TO_VALUE_INITIALIZE( heap_object_wrapper<private_and_protected_int>() ) +
+ FAILED_TO_VALUE_INITIALIZE( heap_object_wrapper<user_defined_copy_constructor_holder_and_int>() ) +
+ FAILED_TO_VALUE_INITIALIZE( heap_object_wrapper<user_defined_destructor_holder>() ) +
+ FAILED_TO_VALUE_INITIALIZE( heap_object_wrapper<virtual_destructor_holder>() ) +
+ FAILED_TO_VALUE_INITIALIZE( heap_object_wrapper<non_pod_class>() ) +
+ FAILED_TO_VALUE_INITIALIZE( heap_object_wrapper<pod_struct_and_int_union>() ) +
+ FAILED_TO_VALUE_INITIALIZE( heap_object_wrapper<int_and_pod_struct_union>() );
+ return num_failures;
+ }
+
+ // Equivalent to the dirty_stack() function from GCC Bug 33916,
+ // "Default constructor fails to initialize array members", reported in 2007 by
+ // Michael Elizabeth Chastain: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33916
+ void dirty_stack()
+ {
+ unsigned char array_on_stack[sizeof(value_initializer) + 256];
+ for (unsigned i = 0; i < sizeof(array_on_stack); ++i)
+ {
+ array_on_stack[i] = 0x11;
+ }
+ }
+
+
+ // Checks value-initialization of the subobjects of a temporary object,
+ // an object on the stack, an object on the heap; furthermore it checks
+ // value-initialization of a number of smaller temporary objects and
+ // heap objects.
+ int test()
+ {
+ unsigned total_num_failures = 0;
+
+ dirty_stack();
+ const unsigned num_failures_of_subobjects_of_a_temporary =
+ value_initializer().check_value_initialization_of_subobjects();
+
+ total_num_failures += num_failures_of_subobjects_of_a_temporary;
+ if ( total_num_failures > 0 )
+ {
+ std::cout << "- Number of subobject initialization failures of a temporary: "
+ << num_failures_of_subobjects_of_a_temporary << std::endl;
+ }
+ dirty_stack();
+ value_initializer object_on_stack;
+ const unsigned num_failures_of_subobjects_on_stack =
+ object_on_stack.check_value_initialization_of_subobjects();
+
+ total_num_failures += num_failures_of_subobjects_on_stack;
+ if ( total_num_failures > 0 )
+ {
+ std::cout << "- Number of subobject initialization failures on the stack: "
+ << num_failures_of_subobjects_on_stack << std::endl;
+ }
+ const value_initializer* const ptr = new value_initializer();
+ const unsigned num_failures_of_subobjects_on_heap = ptr->check_value_initialization_of_subobjects();
+ delete ptr;
+
+ total_num_failures += num_failures_of_subobjects_on_heap;
+ if ( total_num_failures > 0 )
+ {
+ std::cout << "- Number of subobject initialization failures on the heap: "
+ << num_failures_of_subobjects_on_heap << std::endl;
+ }
+
+ dirty_stack();
+ const unsigned num_failures_of_temporaries = check_value_initialization_of_temporaries();
+
+ total_num_failures += num_failures_of_temporaries;
+ if ( total_num_failures > 0 )
+ {
+ std::cout << "- Number of initialization failures of temporary objects: "
+ << num_failures_of_temporaries << std::endl;
+ }
+
+ const unsigned num_failures_of_heap_objects = check_value_initialization_of_heap_objects();
+
+ total_num_failures += num_failures_of_heap_objects;
+ if ( total_num_failures > 0 )
+ {
+ std::cout << "- Number of failures of heap objects: "
+ << num_failures_of_heap_objects << std::endl;
+ }
+
+ if ( total_num_failures > 0 )
+ {
+ std::cout << "-- Total number of initialization failures ("
+ << num_failures_of_subobjects_of_a_temporary << '+'
+ << num_failures_of_subobjects_on_stack << '+'
+ << num_failures_of_subobjects_on_heap << '+'
+ << num_failures_of_temporaries << '+'
+ << num_failures_of_heap_objects << "): "
+ << total_num_failures
+ << "\nDetected by boost_no_complete_value_initialization::test() revision 32."
+ << std::endl;
+ }
+ return static_cast<int>(total_num_failures);
+ }
+
+} // End of namespace.
diff --git a/libs/config/test/boost_no_constexpr.ipp b/libs/config/test/boost_no_constexpr.ipp
new file mode 100644
index 0000000000..bc0ad7cc6a
--- /dev/null
+++ b/libs/config/test/boost_no_constexpr.ipp
@@ -0,0 +1,46 @@
+// (C) Copyright Beman Dawes 2008
+
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for more information.
+
+// MACRO: BOOST_NO_CONSTEXPR
+// TITLE: C++0x constexpr unavailable
+// DESCRIPTION: The compiler does not support C++0x constexpr
+
+namespace boost_no_constexpr {
+
+void quiet_warning(int){}
+
+constexpr int square(int x) { return x * x; } // from N2235
+
+// from 5.19:
+constexpr const int* addr(const int& ir) { return &ir; }
+static const int x = 5;
+constexpr const int* xp = addr(x);
+
+struct A
+{
+ constexpr A(int i) : val(i) { }
+ constexpr operator int() { return val; }
+ constexpr operator long() { return 43; }
+private:
+ int val;
+};
+
+template<int> struct X { };
+
+constexpr A a = 42;
+
+X<a> xx; // OK: unique conversion to int
+
+int test()
+{
+ int i = square(5);
+ quiet_warning(i);
+ return 0;
+}
+
+}
diff --git a/libs/config/test/boost_no_ctype_functions.ipp b/libs/config/test/boost_no_ctype_functions.ipp
new file mode 100644
index 0000000000..ec23d594a1
--- /dev/null
+++ b/libs/config/test/boost_no_ctype_functions.ipp
@@ -0,0 +1,44 @@
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_NO_CTYPE_FUNCTIONS
+// TITLE: functions in <ctype.h>
+// DESCRIPTION: The Platform does not provide functions for the character-
+// classifying operations in <ctype.h>. Some platforms provide
+// macros and don't provide functions. Under C++ it's an error
+// to provide the macros at all, but that's a separate issue.
+
+#include <ctype.h>
+
+namespace boost_no_ctype_functions {
+
+extern "C" {
+ typedef int (* character_classify_function)(int);
+}
+
+void pass_function(character_classify_function)
+{
+}
+
+int test()
+{
+ pass_function(isalpha);
+ pass_function(isalnum);
+ pass_function(iscntrl);
+ pass_function(isdigit);
+ pass_function(isgraph);
+ pass_function(islower);
+ pass_function(isprint);
+ pass_function(ispunct);
+ pass_function(isspace);
+ pass_function(isupper);
+ pass_function(isxdigit);
+ return 0;
+}
+
+}
+
diff --git a/libs/config/test/boost_no_cv_spec.ipp b/libs/config/test/boost_no_cv_spec.ipp
new file mode 100644
index 0000000000..d2fc6311bf
--- /dev/null
+++ b/libs/config/test/boost_no_cv_spec.ipp
@@ -0,0 +1,47 @@
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_NO_CV_SPECIALIZATIONS
+// TITLE: template specialisations of cv-qualified types
+// DESCRIPTION: If template specialisations for cv-qualified types
+// conflict with a specialisation for a cv-unqualififed type.
+
+
+namespace boost_no_cv_specializations{
+
+template <class T>
+struct is_int
+{
+};
+
+template <>
+struct is_int<int>
+{};
+
+template <>
+struct is_int<const int>
+{};
+
+template <>
+struct is_int<volatile int>
+{};
+
+template <>
+struct is_int<const volatile int>
+{};
+
+int test()
+{
+ return 0;
+}
+
+
+}
+
+
+
+
diff --git a/libs/config/test/boost_no_cv_void_spec.ipp b/libs/config/test/boost_no_cv_void_spec.ipp
new file mode 100644
index 0000000000..c3bc254812
--- /dev/null
+++ b/libs/config/test/boost_no_cv_void_spec.ipp
@@ -0,0 +1,45 @@
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_NO_CV_VOID_SPECIALIZATIONS
+// TITLE: template specialisations of cv-qualified void
+// DESCRIPTION: If template specialisations for cv-void types
+// conflict with a specialisation for void.
+
+
+namespace boost_no_cv_void_specializations{
+
+template <class T>
+struct is_void
+{
+};
+
+template <>
+struct is_void<void>
+{};
+
+template <>
+struct is_void<const void>
+{};
+
+template <>
+struct is_void<volatile void>
+{};
+
+template <>
+struct is_void<const volatile void>
+{};
+
+int test()
+{
+ return 0;
+}
+
+}
+
+
+
diff --git a/libs/config/test/boost_no_cwchar.ipp b/libs/config/test/boost_no_cwchar.ipp
new file mode 100644
index 0000000000..d1117018d9
--- /dev/null
+++ b/libs/config/test/boost_no_cwchar.ipp
@@ -0,0 +1,33 @@
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_NO_CWCHAR
+// TITLE: <wchar.h> and <cwchar>
+// DESCRIPTION: The Platform does not provide <wchar.h> and <cwchar>.
+
+#include <cwchar>
+#include <wchar.h>
+
+namespace boost_no_cwchar{
+
+int test()
+{
+ wchar_t c1[2] = { 0 };
+ wchar_t c2[2] = { 0 };
+ if(wcscmp(c1,c2) || wcslen(c1)) return -1;
+ wcscpy(c1,c2);
+ wcsxfrm(c1,c2,0);
+ return 0;
+}
+
+}
+
+
+
+
+
+
diff --git a/libs/config/test/boost_no_cwctype.ipp b/libs/config/test/boost_no_cwctype.ipp
new file mode 100644
index 0000000000..d6a7355a27
--- /dev/null
+++ b/libs/config/test/boost_no_cwctype.ipp
@@ -0,0 +1,47 @@
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_NO_CWCTYPE
+// TITLE: <wctype.h> and <cwctype>
+// DESCRIPTION: The Platform does not provide <wctype.h> and <cwctype>.
+
+//
+// Note that some platforms put these prototypes in the wrong headers,
+// we have to include pretty well all the string headers on the chance that
+// one of them will contain what we want!
+//
+#include <cwctype>
+#include <wctype.h>
+#include <cwchar>
+#include <wchar.h>
+#include <cctype>
+#include <ctype.h>
+
+namespace boost_no_cwctype{
+
+int test()
+{
+ if(!(iswalpha(L'a') &&
+ iswcntrl(L'\r') &&
+ iswdigit(L'2') &&
+ iswlower(L'a') &&
+ iswpunct(L',') &&
+ iswspace(L' ') &&
+ iswupper(L'A') &&
+ iswxdigit(L'A')
+ )) return -1;
+ if(L'a' != towlower(L'A')) return -1;
+ return 0;
+}
+
+}
+
+
+
+
+
+
diff --git a/libs/config/test/boost_no_decltype.ipp b/libs/config/test/boost_no_decltype.ipp
new file mode 100644
index 0000000000..e67f55afd6
--- /dev/null
+++ b/libs/config/test/boost_no_decltype.ipp
@@ -0,0 +1,54 @@
+
+// (C) Copyright Beman Dawes 2008
+
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for more information.
+
+// MACRO: BOOST_NO_DECLTYPE
+// TITLE: C++0x decltype unavailable
+// DESCRIPTION: The compiler does not support C++0x decltype
+
+namespace boost_no_decltype {
+
+void quiet_warning(int){}
+
+struct test_class
+{
+ test_class() {}
+};
+
+test_class get_test_class()
+{
+ return test_class();
+}
+
+template<typename F>
+void baz(F f)
+{
+ //
+ // Strangely VC-10 deduces the return type of F
+ // to be "test_class&". Remove the constructor
+ // from test_class and then decltype does work OK!!
+ //
+ typedef decltype(f()) res;
+ res r;
+}
+
+int test()
+{
+ int i;
+ decltype(i) j;
+// quiet_warning(j);
+ decltype(get_test_class()) k;
+ #ifndef _MSC_VER
+ // Although the VC++ decltype is buggy, we none the less enable support,
+ // so don't test the bugs for now!
+ baz(get_test_class);
+ #endif
+ return 0;
+}
+
+}
diff --git a/libs/config/test/boost_no_decltype_n3276.ipp b/libs/config/test/boost_no_decltype_n3276.ipp
new file mode 100644
index 0000000000..f0c3688b3e
--- /dev/null
+++ b/libs/config/test/boost_no_decltype_n3276.ipp
@@ -0,0 +1,137 @@
+
+// (C) Copyright Eric Niebler 2011
+
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for more information.
+
+// MACRO: BOOST_NO_DECLTYPE_N3276
+// TITLE: C++0x decltype v1.1 unavailable
+// DESCRIPTION: The compiler does not support extensions to C++0x
+// decltype as described in N3276 and accepted in Madrid,
+// March 2011:
+// <http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3276.pdf>
+
+namespace boost_no_decltype_n3276 {
+
+// A simplified result_of implementation.
+// that uses decltype.
+template<typename Sig>
+struct result_of;
+
+template<typename T>
+T& declvar();
+
+// use decltype
+template<typename Fun, typename T>
+struct result_of<Fun(T)>
+{
+ typedef decltype(declvar<Fun>()(declvar<T>())) type;
+};
+
+template<typename Fun, typename T, typename U>
+struct result_of<Fun(T, U)>
+{
+ typedef decltype(declvar<Fun>()(declvar<T>(), declvar<U>())) type;
+};
+
+// simple tuple type
+template<typename A0 = void, typename A1 = void, typename A2 = void>
+struct tuple;
+
+template<typename A0>
+struct tuple<A0, void, void>
+{
+ A0 a0_;
+
+ tuple(A0 const &a0)
+ : a0_(a0)
+ {}
+};
+
+template<typename A0, typename A1>
+struct tuple<A0, A1>
+{
+ A0 a0_;
+ A1 a1_;
+
+ tuple(A0 const &a0, A1 const & a1)
+ : a0_(a0)
+ , a1_(a1)
+ {}
+};
+
+// A node in an expression tree
+template<class Tag, class Args> // Args is a tuple.
+struct Expr;
+
+// A function object that builds expression nodes
+template<class Tag>
+struct MakeExpr
+{
+ template<class T>
+ Expr<Tag, tuple<T> > operator()(T const & t) const
+ {
+ return Expr<Tag, tuple<T> >(tuple<T>(t));
+ }
+
+ template<class T, typename U>
+ Expr<Tag, tuple<T, U> > operator()(T const & t, U const & u) const
+ {
+ return Expr<Tag, tuple<T, U> >(tuple<T, U>(t, u));
+ }
+};
+
+// Here are tag types that encode in an expression node
+// what operation created the node.
+struct Terminal;
+struct BinaryPlus;
+struct FunctionCall;
+
+typedef MakeExpr<Terminal> MakeTerminal;
+typedef MakeExpr<BinaryPlus> MakeBinaryPlus;
+typedef MakeExpr<FunctionCall> MakeFunctionCall;
+
+template<class Tag, class Args>
+struct Expr
+{
+ Args args_;
+
+ explicit Expr(Args const & t) : args_(t) {}
+
+ // An overloaded operator+ that creates a binary plus node
+ template<typename RTag, typename RArgs>
+ typename result_of<MakeBinaryPlus(Expr, Expr<RTag, RArgs>)>::type
+ operator+(Expr<RTag, RArgs> const &right) const
+ {
+ return MakeBinaryPlus()(*this, right);
+ }
+
+ // An overloaded function call operator that creates a unary
+ // function call node
+ typename result_of<MakeFunctionCall(Expr)>::type
+ operator()() const
+ {
+ return MakeFunctionCall()(*this);
+ }
+};
+
+int test()
+{
+ // This is a terminal in an expression tree
+ Expr<Terminal, tuple<int> > i = MakeTerminal()(42);
+
+ i + i; // OK, this creates a binary plus node.
+
+ i(); // OK, this creates a unary function-call node.
+ // NOTE: If N3276 has not been implemented, this
+ // line will set off an infinite cascade of template
+ // instantiations that will run the compiler out of
+ // memory.
+
+ return 0;
+}
+
+}
diff --git a/libs/config/test/boost_no_ded_typename.ipp b/libs/config/test/boost_no_ded_typename.ipp
new file mode 100644
index 0000000000..ef58d272a1
--- /dev/null
+++ b/libs/config/test/boost_no_ded_typename.ipp
@@ -0,0 +1,40 @@
+// (C) Copyright John Maddock and Dave Abrahams 2002.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_DEDUCED_TYPENAME
+// TITLE: deduced typenames
+// DESCRIPTION: Some compilers can't use the typename keyword in deduced contexts.
+
+#ifndef BOOST_DEDUCED_TYPENAME
+#define BOOST_DEDUCED_TYPENAME typename
+#endif
+
+
+namespace boost_deduced_typename{
+
+template <class T>
+int f(T const volatile*, BOOST_DEDUCED_TYPENAME T::type* = 0)
+{
+ return 0;
+}
+
+struct X { typedef int type; };
+
+int test()
+{
+ return f((X*)0);
+}
+
+}
+
+
+
+
+
+
+
+
diff --git a/libs/config/test/boost_no_defaulted_functions.ipp b/libs/config/test/boost_no_defaulted_functions.ipp
new file mode 100644
index 0000000000..fcf02fd076
--- /dev/null
+++ b/libs/config/test/boost_no_defaulted_functions.ipp
@@ -0,0 +1,28 @@
+// (C) Copyright Beman Dawes 2008
+
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for more information.
+
+// MACRO: BOOST_NO_DEFAULTED_FUNCTIONS
+// TITLE: C++0x defaulted functions unavailable
+// DESCRIPTION: The compiler does not support C++0x defaulted functions
+
+#if defined(__GNUC__) && !defined(__GXX_EXPERIMENTAL_CXX0X__) && !defined(BOOST_INTEL_STDCXX0X)
+# error Defaulted functions are not supported in non-C++0x mode
+#endif
+
+namespace boost_no_defaulted_functions {
+
+ struct foo {
+ foo() = default;
+ };
+
+int test()
+{
+ return 0;
+}
+
+}
diff --git a/libs/config/test/boost_no_deleted_functions.ipp b/libs/config/test/boost_no_deleted_functions.ipp
new file mode 100644
index 0000000000..00397dffd8
--- /dev/null
+++ b/libs/config/test/boost_no_deleted_functions.ipp
@@ -0,0 +1,28 @@
+// (C) Copyright Beman Dawes 2008
+
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for more information.
+
+// MACRO: BOOST_NO_DELETED_FUNCTIONS
+// TITLE: C++0x =delete functions unavailable
+// DESCRIPTION: The compiler does not support C++0x =delete functions
+
+#if defined(__GNUC__) && !defined(__GXX_EXPERIMENTAL_CXX0X__) && !defined(BOOST_INTEL_STDCXX0X)
+# error Deleted functions are not supported in non-C++0x mode
+#endif
+
+namespace boost_no_deleted_functions {
+
+ struct foo {
+ foo() = delete;
+ };
+
+int test()
+{
+ return 0;
+}
+
+}
diff --git a/libs/config/test/boost_no_dep_nested_class.ipp b/libs/config/test/boost_no_dep_nested_class.ipp
new file mode 100644
index 0000000000..42c5750305
--- /dev/null
+++ b/libs/config/test/boost_no_dep_nested_class.ipp
@@ -0,0 +1,58 @@
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
+// TITLE: dependent nested template classes
+// DESCRIPTION: The compiler fails to compile
+// a nested class that has a dependent base class:
+// template<typename T>
+// struct foo : {
+// template<typename U>
+// struct bar : public U {};
+// };
+#ifndef BOOST_NESTED_TEMPLATE
+#define BOOST_NESTED_TEMPLATE template
+#endif
+
+
+namespace boost_no_dependent_nested_derivations{
+
+struct UDT1{};
+struct UDT2{};
+
+template<typename T>
+struct foo
+{
+ template<typename U>
+ struct bar : public foo<U>
+ {};
+};
+
+template <class T>
+void foo_test(T)
+{
+ typedef foo<T> foo_type;
+ typedef typename foo_type::BOOST_NESTED_TEMPLATE bar<UDT2> bar_type;
+ foo<T> ft;
+ bar_type bt;
+ (void) &bt;
+ (void) &ft;
+}
+
+int test()
+{
+ foo_test(UDT1());
+ return 0;
+}
+
+}
+
+
+
+
+
+
diff --git a/libs/config/test/boost_no_dep_val_param.ipp b/libs/config/test/boost_no_dep_val_param.ipp
new file mode 100644
index 0000000000..759bef0587
--- /dev/null
+++ b/libs/config/test/boost_no_dep_val_param.ipp
@@ -0,0 +1,37 @@
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
+// TITLE: dependent non-type template parameters
+// DESCRIPTION: Template value parameters cannot have a dependent
+// type, for example:
+// template<class T, typename T::type value>
+// class X { ... };
+
+
+namespace boost_no_dependent_types_in_template_value_parameters{
+
+template <class T, typename T::type value = 0>
+class X
+{};
+
+template <class T>
+struct typifier
+{
+ typedef T type;
+};
+
+int test()
+{
+ X<typifier<int> > x;
+ (void) &x; // avoid "unused variable" warning
+ return 0;
+}
+
+}
+
+
diff --git a/libs/config/test/boost_no_excep_std.ipp b/libs/config/test/boost_no_excep_std.ipp
new file mode 100644
index 0000000000..10d48f470f
--- /dev/null
+++ b/libs/config/test/boost_no_excep_std.ipp
@@ -0,0 +1,35 @@
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_NO_EXCEPTION_STD_NAMESPACE
+// TITLE: <exception> is in namespace std
+// DESCRIPTION: Some std libs don't put the contents of
+// <exception> in namespace std.
+
+#include <exception>
+
+namespace boost_no_exception_std_namespace{
+
+int t(int i)
+{
+ if(i)
+ std::terminate();
+ return 0;
+}
+
+int test()
+{
+ return t(0);
+}
+
+}
+
+
+
+
+
+
diff --git a/libs/config/test/boost_no_exceptions.ipp b/libs/config/test/boost_no_exceptions.ipp
new file mode 100644
index 0000000000..862088f5e9
--- /dev/null
+++ b/libs/config/test/boost_no_exceptions.ipp
@@ -0,0 +1,43 @@
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_NO_EXCEPTIONS
+// TITLE: exception handling support
+// DESCRIPTION: The compiler in its current translation mode supports
+// exception handling.
+
+
+namespace boost_no_exceptions{
+
+void throw_it(int i)
+{
+ throw i;
+}
+
+int test()
+{
+ try
+ {
+ throw_it(2);
+ }
+ catch(int i)
+ {
+ return (i == 2) ? 0 : -1;
+ }
+ catch(...)
+ {
+ return -1;
+ }
+ return -1;
+}
+
+}
+
+
+
+
+
diff --git a/libs/config/test/boost_no_exp_func_tem_arg.ipp b/libs/config/test/boost_no_exp_func_tem_arg.ipp
new file mode 100644
index 0000000000..3333b22b63
--- /dev/null
+++ b/libs/config/test/boost_no_exp_func_tem_arg.ipp
@@ -0,0 +1,55 @@
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
+// TITLE: non-deduced function template parameters
+// DESCRIPTION: Can only use deduced template arguments when
+// calling function template instantiations.
+
+#if defined(BOOST_MSVC) && (BOOST_MSVC <= 1200)
+#error "This is known to be buggy under VC6"
+#endif
+
+
+namespace boost_no_explicit_function_template_arguments{
+
+struct foo
+{
+ template<class T> int bar(){return 0;}
+ template<int I> int bar(){return 1;}
+};
+
+int test_0()
+{
+ return 0;
+}
+
+
+template <int i>
+bool foo_17041(int j)
+{
+ return (i == j);
+}
+
+int test()
+{
+ foo f;
+ int a = f.bar<char>();
+ int b = f.bar<2>();
+ if((a !=0) || (b != 1))return -1;
+
+ if(0 == foo_17041<8>(8)) return -1;
+ if(0 == foo_17041<4>(4)) return -1;
+ if(0 == foo_17041<5>(5)) return -1;
+ return 0;
+}
+
+}
+
+
+
+
diff --git a/libs/config/test/boost_no_explicit_cvt_ops.ipp b/libs/config/test/boost_no_explicit_cvt_ops.ipp
new file mode 100644
index 0000000000..c0d68c4522
--- /dev/null
+++ b/libs/config/test/boost_no_explicit_cvt_ops.ipp
@@ -0,0 +1,33 @@
+// (C) Copyright Beman Dawes 2008
+
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for more information.
+
+// MACRO: BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
+// TITLE: C++0x explicit conversion operators unavailable
+// DESCRIPTION: The compiler does not support C++0x explicit conversion operators
+
+#if defined(__GNUC__) && !defined(__GXX_EXPERIMENTAL_CXX0X__) && !defined(BOOST_INTEL_STDCXX0X)
+# error This feature is not available in non-C++0x mode
+#endif
+
+namespace boost_no_explicit_conversion_operators {
+
+void quiet_warning(int){}
+
+ struct foo {
+ explicit operator int() { return 1; }
+ };
+
+int test()
+{
+ foo f;
+ int i = int(f);
+ quiet_warning(i);
+ return 0;
+}
+
+}
diff --git a/libs/config/test/boost_no_extern_template.ipp b/libs/config/test/boost_no_extern_template.ipp
new file mode 100644
index 0000000000..0965470b5a
--- /dev/null
+++ b/libs/config/test/boost_no_extern_template.ipp
@@ -0,0 +1,41 @@
+// (C) Copyright Beman Dawes 2008
+
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for more information.
+
+// MACRO: BOOST_NO_EXTERN_TEMPLATE
+// TITLE: C++0x extern template unavailable
+// DESCRIPTION: The compiler does not support C++0x extern template
+
+namespace boost_no_extern_template {
+
+template<class T, class U> void f(T const* p, U const* q)
+{
+ p = q;
+}
+
+template <class T>
+class must_not_compile
+{
+public:
+ void f(T const* p, int const* q);
+};
+
+template <class T>
+void must_not_compile<T>::f(T const* p, int const* q)
+{
+ p = q;
+}
+
+extern template void f<>(int const*, float const*);
+extern template class must_not_compile<int>;
+
+int test()
+{
+ return 0;
+}
+
+}
diff --git a/libs/config/test/boost_no_fenv_h.ipp b/libs/config/test/boost_no_fenv_h.ipp
new file mode 100644
index 0000000000..1bb71160e3
--- /dev/null
+++ b/libs/config/test/boost_no_fenv_h.ipp
@@ -0,0 +1,58 @@
+// (C) Copyright John Maddock 2001.
+// (C) Copyright Bryce Lelbach 2010.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_NO_FENV_H
+// TITLE: fenv.h
+// DESCRIPTION: There is no standard <fenv.h> available. If <fenv.h> is
+// available, <boost/detail/fenv.hpp> should be included
+// instead of directly including <fenv.h>.
+
+#include <fenv.h>
+
+namespace boost_no_fenv_h {
+
+int test()
+{
+ /// C++0x required typedefs
+ typedef ::fenv_t has_fenv_t;
+ typedef ::fexcept_t has_fexcept_t;
+
+ /// C++0x required macros
+ #if !defined(FE_DIVBYZERO)
+ #error platform does not define FE_DIVBYZERO
+ #endif
+
+ #if !defined(FE_INEXACT)
+ #error platform does not define FE_INEXACT
+ #endif
+
+ #if !defined(FE_ALL_EXCEPT)
+ #error platform does not define FE_ALL_EXCEPT
+ #endif
+
+ int i;
+ fexcept_t fe;
+ fenv_t env;
+
+ i = feclearexcept(FE_ALL_EXCEPT);
+ i += fetestexcept(FE_ALL_EXCEPT); // All flags should be zero
+ i += fegetexceptflag(&fe, FE_ALL_EXCEPT);
+ i += fesetexceptflag(&fe, FE_ALL_EXCEPT);
+ i += feraiseexcept(0);
+ i += fesetround(fegetround());
+ i += fegetenv(&env);
+ i += fesetenv(&env);
+ i += feholdexcept(&env);
+ if(i)
+ i += feupdateenv(&env);
+
+ return i;
+}
+
+}
+
diff --git a/libs/config/test/boost_no_func_tmp_order.ipp b/libs/config/test/boost_no_func_tmp_order.ipp
new file mode 100644
index 0000000000..ab6986514b
--- /dev/null
+++ b/libs/config/test/boost_no_func_tmp_order.ipp
@@ -0,0 +1,49 @@
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_NO_FUNCTION_TEMPLATE_ORDERING
+// TITLE: no function template ordering
+// DESCRIPTION: The compiler does not perform
+// function template ordering or its function
+// template ordering is incorrect.
+//
+// template<typename T> void f(T); // #1
+// template<typename T, typename U> void f(T (*)(U)); // #2
+// void bar(int);
+// f(&bar); // should choose #2.
+
+
+namespace boost_no_function_template_ordering{
+
+template<typename T>
+bool f(T)
+{
+ return false;
+}
+
+template<typename T, typename U>
+bool f(T (*)(U))
+{
+ return true;
+}
+
+void bar(int)
+{
+}
+
+int test()
+{
+ int i = 0;
+ return f(i) || !f(&bar);
+}
+
+}
+
+
+
+
+
diff --git a/libs/config/test/boost_no_function_template_default_args.ipp b/libs/config/test/boost_no_function_template_default_args.ipp
new file mode 100644
index 0000000000..686d44ce7f
--- /dev/null
+++ b/libs/config/test/boost_no_function_template_default_args.ipp
@@ -0,0 +1,38 @@
+// (C) Copyright Mathias Gaunard 2009.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// MACRO: BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
+// TITLE: Default template arguments for function templates
+// DESCRIPTION: Default template arguments for function templates are not supported.
+
+namespace boost_no_function_template_default_args
+{
+
+template<typename T = int>
+T foo()
+{
+ return 0;
+}
+
+template<typename T, typename U>
+bool is_same(T, U)
+{
+ return false;
+}
+
+template<typename T>
+bool is_same(T, T)
+{
+ return true;
+}
+
+int test()
+{
+ return !is_same(foo<>(), 0) || is_same(foo<>(), 0L);
+}
+
+} // namespace boost_no_function_template_default_args
diff --git a/libs/config/test/boost_no_function_type_spec.ipp b/libs/config/test/boost_no_function_type_spec.ipp
new file mode 100644
index 0000000000..d91d0fb4e1
--- /dev/null
+++ b/libs/config/test/boost_no_function_type_spec.ipp
@@ -0,0 +1,44 @@
+// (C) Copyright John Maddock 2001.
+// (C) Copyright Aleksey Gurtovoy 2003.
+// (C) Copyright Alisdair Meredith 2006.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS
+// TITLE: template specialisations of function types
+// DESCRIPTION: If the compiler cannot handle template specialisations
+// for function types
+
+
+namespace boost_no_function_type_specializations{
+
+template< typename T > struct is_function
+{
+};
+
+struct X {};
+enum Y { value };
+
+// Tesst can declare specializations
+typedef is_function< int( int ) > scalar_types;
+typedef is_function< X( X ) > user_defined_type;
+typedef is_function< int( Y ) > check_enum;
+typedef is_function< X( X, int ) > multiple_arguments;
+
+// Partial specialization test
+// confirm const, volatile, pointers and references in args
+template< typename X, typename Y, typename Z >
+struct is_function< X( Y const &, volatile Z * ) >
+{
+};
+
+
+int test()
+{
+ return 0;
+}
+
+}
diff --git a/libs/config/test/boost_no_i64_limits.ipp b/libs/config/test/boost_no_i64_limits.ipp
new file mode 100644
index 0000000000..b82bf2f583
--- /dev/null
+++ b/libs/config/test/boost_no_i64_limits.ipp
@@ -0,0 +1,29 @@
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_NO_MS_INT64_NUMERIC_LIMITS
+// TITLE: std::numeric_limits<__int64>
+// DESCRIPTION: The C++ implementation does not provide the a specialisation
+// for std::numeric_limits<__int64>.
+
+#include <limits>
+
+namespace boost_no_ms_int64_numeric_limits{
+
+int test()
+{
+ if(0 == std::numeric_limits<__int64>::is_specialized) return -1;
+ if(0 == std::numeric_limits<unsigned __int64>::is_specialized) return -1;
+ return 0;
+}
+
+}
+
+
+
+
+
diff --git a/libs/config/test/boost_no_initializer_lists.ipp b/libs/config/test/boost_no_initializer_lists.ipp
new file mode 100644
index 0000000000..5bc58c22b7
--- /dev/null
+++ b/libs/config/test/boost_no_initializer_lists.ipp
@@ -0,0 +1,34 @@
+// (C) Copyright Daniel James 2008.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+
+// MACRO: BOOST_NO_INITIALIZER_LISTS
+// TITLE: Initializer Lists
+// DESCRIPTION: If the compiler does not support C++0x initializer lists
+
+#include <initializer_list>
+#include <vector>
+#include <string>
+
+namespace boost_no_initializer_lists {
+
+void quiet_warning(const std::initializer_list<int>&){}
+
+void f(std::initializer_list<int>)
+{
+}
+
+int test()
+{
+ std::vector<std::string> v{"once", "upon", "a", "time"}; // See C++ std 8.5.4
+ f( { 1, 2, 3, 4 } );
+ std::initializer_list<int> x = { 1, 2 };
+ quiet_warning(x);
+ return 0;
+}
+
+}
diff --git a/libs/config/test/boost_no_inline_memb_init.ipp b/libs/config/test/boost_no_inline_memb_init.ipp
new file mode 100644
index 0000000000..4f8c45d7c8
--- /dev/null
+++ b/libs/config/test/boost_no_inline_memb_init.ipp
@@ -0,0 +1,55 @@
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_NO_INCLASS_MEMBER_INITIALIZATION
+// TITLE: inline member constant initialisation
+// DESCRIPTION: Compiler violates std::9.4.2/4.
+
+
+namespace boost_no_inclass_member_initialization{
+
+struct UDT{};
+
+
+template <bool b1, bool b2, bool b3, bool b4, bool b5, bool b6, bool b7>
+struct ice_or_helper
+{
+ static const bool value = true;
+};
+template <>
+struct ice_or_helper<false, false, false, false, false, false, false>
+{
+ static const bool value = false;
+};
+
+template <bool b1, bool b2, bool b3 = false, bool b4 = false, bool b5 = false, bool b6 = false, bool b7 = false>
+struct ice_or
+{
+ static const bool value = ice_or_helper<b1, b2, b3, b4, b5, b6, b7>::value;
+};
+
+template <class T>
+struct is_int
+{
+ static const bool value = false;
+};
+
+template <>
+struct is_int<int>
+{
+ static const bool value = true;
+};
+
+int test()
+{
+ typedef int a1[ice_or< is_int<int>::value, is_int<UDT>::value>::value ? 1 : -1];
+ return 0;
+}
+
+}
+
+
diff --git a/libs/config/test/boost_no_integral_int64_t.ipp b/libs/config/test/boost_no_integral_int64_t.ipp
new file mode 100644
index 0000000000..eb11640a85
--- /dev/null
+++ b/libs/config/test/boost_no_integral_int64_t.ipp
@@ -0,0 +1,54 @@
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_NO_INTEGRAL_INT64_T
+// TITLE: long long and integral constant expressions
+// DESCRIPTION: The platform supports long long in integral constant expressions.
+
+#include <cstdlib>
+
+
+namespace boost_no_integral_int64_t{
+
+#ifdef BOOST_NO_INCLASS_MEMBER_INITIALIZATION
+enum{ mask = 1uLL << 50 };
+
+template <unsigned long long m>
+struct llt
+{
+ enum{ value = m };
+};
+#else
+#ifdef __GNUC__
+__extension__
+#endif
+static const unsigned long long mask = 1uLL << 50;
+
+#ifdef __GNUC__
+__extension__
+#endif
+template <unsigned long long m>
+struct llt
+{
+#ifdef __GNUC__
+__extension__
+#endif
+ static const unsigned long long value = m;
+};
+#endif
+
+int test()
+{
+ return llt<mask>::value != (1uLL << 50);
+}
+
+}
+
+
+
+
+
diff --git a/libs/config/test/boost_no_iosfwd.ipp b/libs/config/test/boost_no_iosfwd.ipp
new file mode 100644
index 0000000000..86ac42e62f
--- /dev/null
+++ b/libs/config/test/boost_no_iosfwd.ipp
@@ -0,0 +1,23 @@
+// (C) Copyright Peter Dimov 2007.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_NO_IOSFWD
+// TITLE: <iosfwd>
+// DESCRIPTION: The <iosfwd> header is missing
+
+#include <iosfwd>
+
+namespace boost_no_iosfwd
+{
+
+int test()
+{
+ return 0;
+}
+
+}
+
diff --git a/libs/config/test/boost_no_iostream.ipp b/libs/config/test/boost_no_iostream.ipp
new file mode 100644
index 0000000000..abaceac330
--- /dev/null
+++ b/libs/config/test/boost_no_iostream.ipp
@@ -0,0 +1,25 @@
+// (C) Copyright Peter Dimov 2007.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_NO_IOSTREAM
+// TITLE: No iostream support
+// DESCRIPTION: The <iostream>, <istream>, <ostream> headers are missing
+
+#include <iostream>
+#include <istream>
+#include <ostream>
+
+namespace boost_no_iostream
+{
+
+int test()
+{
+ return 0;
+}
+
+}
+
diff --git a/libs/config/test/boost_no_is_abstract.ipp b/libs/config/test/boost_no_is_abstract.ipp
new file mode 100644
index 0000000000..d44695c8d9
--- /dev/null
+++ b/libs/config/test/boost_no_is_abstract.ipp
@@ -0,0 +1,53 @@
+// (C) Copyright John Maddock and Dave Abrahams 2002.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_NO_IS_ABSTRACT
+// TITLE: is_abstract implementation technique
+// DESCRIPTION: Some compilers can't handle the code used for is_abstract even if they support SFINAE.
+
+
+namespace boost_no_is_abstract{
+
+#if defined(__CODEGEARC__)
+template<class T>
+struct is_abstract_test
+{
+ enum{ value = __is_abstract(T) };
+};
+#else
+template<class T>
+struct is_abstract_test
+{
+ // Deduction fails if T is void, function type,
+ // reference type (14.8.2/2)or an abstract class type
+ // according to review status issue #337
+ //
+ template<class U>
+ static double check_sig(U (*)[1]);
+ template<class U>
+ static char check_sig(...);
+
+#ifdef __GNUC__
+ enum{ s1 = sizeof(is_abstract_test<T>::template check_sig<T>(0)) };
+#else
+ enum{ s1 = sizeof(check_sig<T>(0)) };
+#endif
+
+ enum{ value = (s1 == sizeof(char)) };
+};
+#endif
+
+struct non_abstract{};
+struct abstract{ virtual void foo() = 0; };
+
+int test()
+{
+ return is_abstract_test<non_abstract>::value == is_abstract_test<abstract>::value;
+}
+
+}
+
diff --git a/libs/config/test/boost_no_iter_construct.ipp b/libs/config/test/boost_no_iter_construct.ipp
new file mode 100644
index 0000000000..e87a76fc44
--- /dev/null
+++ b/libs/config/test/boost_no_iter_construct.ipp
@@ -0,0 +1,38 @@
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
+// TITLE: template iterator-constructors
+// DESCRIPTION: The standard library does not provide
+// templated iterator constructors for its containers.
+
+#include <vector>
+#include <deque>
+#include <list>
+
+namespace boost_no_templated_iterator_constructors{
+
+int test()
+{
+ std::vector<int> v1;
+ std::deque<int> d1;
+ std::list<char> l1;
+
+ //
+ // now try constructors:
+ std::vector<long> v2(d1.begin(), d1.end());
+ std::deque<long> d2(v1.begin(), v1.end());
+ std::list<long> l2(d1.begin(), d1.end());
+
+ return 0;
+}
+
+}
+
+
+
+
diff --git a/libs/config/test/boost_no_lambdas.ipp b/libs/config/test/boost_no_lambdas.ipp
new file mode 100644
index 0000000000..3f6ae2b08f
--- /dev/null
+++ b/libs/config/test/boost_no_lambdas.ipp
@@ -0,0 +1,25 @@
+// (C) Copyright Beman Dawes 2009
+
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for more information.
+
+// MACRO: BOOST_NO_LAMBDAS
+// TITLE: C++0x lambda feature unavailable
+// DESCRIPTION: The compiler does not support the C++0x lambda feature
+
+#if defined(__GNUC__) && !defined(__GXX_EXPERIMENTAL_CXX0X__) && !defined(BOOST_INTEL_STDCXX0X)
+# error This feature is not available in non-C++0x mode
+#endif
+
+namespace boost_no_lambdas {
+
+int test()
+{
+ [](){};
+ return 0;
+}
+
+}
diff --git a/libs/config/test/boost_no_limits.ipp b/libs/config/test/boost_no_limits.ipp
new file mode 100644
index 0000000000..e7a011b88f
--- /dev/null
+++ b/libs/config/test/boost_no_limits.ipp
@@ -0,0 +1,34 @@
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_NO_LIMITS
+// TITLE: <limits>
+// DESCRIPTION: The C++ implementation does not provide the <limits> header.
+
+#include <limits>
+
+namespace boost_no_limits{
+
+int test()
+{
+ if(0 == std::numeric_limits<int>::is_specialized) return -1;
+ if(0 == std::numeric_limits<long>::is_specialized) return -1;
+ if(0 == std::numeric_limits<char>::is_specialized) return -1;
+ if(0 == std::numeric_limits<unsigned char>::is_specialized) return -1;
+ if(0 == std::numeric_limits<signed char>::is_specialized) return -1;
+ if(0 == std::numeric_limits<float>::is_specialized) return -1;
+ if(0 == std::numeric_limits<double>::is_specialized) return -1;
+ if(0 == std::numeric_limits<long double>::is_specialized) return -1;
+ return 0;
+}
+
+}
+
+
+
+
+
diff --git a/libs/config/test/boost_no_limits_const_exp.ipp b/libs/config/test/boost_no_limits_const_exp.ipp
new file mode 100644
index 0000000000..8438f7eae9
--- /dev/null
+++ b/libs/config/test/boost_no_limits_const_exp.ipp
@@ -0,0 +1,42 @@
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
+// TITLE: compile time constants in <limits>
+// DESCRIPTION: constants such as numeric_limits<T>::is_signed
+// are not available for use at compile-time.
+
+#include <limits>
+
+namespace boost_no_limits_compile_time_constants{
+
+struct UDT{};
+
+template <int i>
+struct assert_ice
+{
+ enum { value = i };
+};
+
+int test()
+{
+ assert_ice< ::std::numeric_limits<int>::is_signed > one;
+ assert_ice< ::std::numeric_limits<double>::is_specialized > two;
+ assert_ice< ::std::numeric_limits<UDT>::is_specialized > three;
+ assert_ice< ::std::numeric_limits<UDT>::is_signed > four;
+ (void)one;
+ (void)two;
+ (void)three;
+ (void)four;
+ return 0;
+}
+
+}
+
+
+
+
diff --git a/libs/config/test/boost_no_limits_lowest.ipp b/libs/config/test/boost_no_limits_lowest.ipp
new file mode 100644
index 0000000000..ae09aa724f
--- /dev/null
+++ b/libs/config/test/boost_no_limits_lowest.ipp
@@ -0,0 +1,31 @@
+// (C) Copyright Vicente J. Botet Escriba 2010.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_NO_NUMERIC_LIMITS_LOWEST
+// TITLE: static function lowest() in numeric_limits class <limits>
+// DESCRIPTION: static function numeric_limits<T>::lowest() are not available for use.
+
+#include <limits>
+
+namespace boost_no_numeric_limits_lowest{
+
+int f()
+{
+ // this is never called, it just has to compile:
+ return std::numeric_limits<int>::lowest();
+}
+
+int test()
+{
+ return 0;
+}
+
+}
+
+
+
+
diff --git a/libs/config/test/boost_no_ll_limits.ipp b/libs/config/test/boost_no_ll_limits.ipp
new file mode 100644
index 0000000000..8f7db7dca6
--- /dev/null
+++ b/libs/config/test/boost_no_ll_limits.ipp
@@ -0,0 +1,37 @@
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_NO_LONG_LONG_NUMERIC_LIMITS
+// TITLE: std::numeric_limits<long long>
+// DESCRIPTION: The C++ implementation does not provide the a specialisation
+// for std::numeric_limits<long long>.
+
+#include <limits>
+
+namespace boost_no_long_long_numeric_limits{
+
+int test()
+{
+#ifdef __GNUC__
+__extension__
+#endif
+ typedef long long llt;
+#ifdef __GNUC__
+__extension__
+#endif
+ typedef unsigned long long ullt;
+ if(0 == std::numeric_limits<llt>::is_specialized) return -1;
+ if(0 == std::numeric_limits<ullt>::is_specialized) return -1;
+ return 0;
+}
+
+}
+
+
+
+
+
diff --git a/libs/config/test/boost_no_long_long.ipp b/libs/config/test/boost_no_long_long.ipp
new file mode 100644
index 0000000000..52ee3edcf5
--- /dev/null
+++ b/libs/config/test/boost_no_long_long.ipp
@@ -0,0 +1,36 @@
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_NO_LONG_LONG
+// TITLE: C++0x long long unavailable
+// DESCRIPTION: The platform does not support C++0x long long.
+
+#include <cstdlib>
+
+
+namespace boost_no_long_long{
+
+int test()
+{
+#ifdef __GNUC__
+ __extension__ long long lli = 0LL;
+ __extension__ unsigned long long ulli = 0uLL;
+#else
+ long long lli = 0LL;
+ unsigned long long ulli = 0uLL;
+#endif
+ (void)&lli;
+ (void)&ulli;
+ return 0;
+}
+
+}
+
+
+
+
+
diff --git a/libs/config/test/boost_no_mem_func_spec.ipp b/libs/config/test/boost_no_mem_func_spec.ipp
new file mode 100644
index 0000000000..96cf92a278
--- /dev/null
+++ b/libs/config/test/boost_no_mem_func_spec.ipp
@@ -0,0 +1,62 @@
+// (C) Copyright John Maddock 2002.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
+// TITLE: Specialisation of individual member functions.
+// DESCRIPTION: Verify that specializations of individual members
+// of template classes work OK.
+
+
+namespace boost_no_member_function_specializations{
+
+
+template<class T>
+class foo
+{
+public:
+ foo();
+ foo(const T&);
+ ~foo();
+ int bar();
+};
+
+// declare specialisations:
+template<> foo<int>::foo();
+template<> foo<int>::foo(const int&);
+template<> foo<int>::~foo();
+template<> int foo<int>::bar();
+
+// provide defaults:
+template<class T> foo<T>::foo(){}
+template<class T> foo<T>::foo(const T&){}
+template<class T> foo<T>::~foo(){}
+template<class T> int foo<T>::bar(){ return 0; }
+
+// provide defs:
+template<> foo<int>::foo(){}
+template<> foo<int>::foo(const int&){}
+template<> foo<int>::~foo(){}
+template<> int foo<int>::bar(){ return 1; }
+
+
+int test()
+{
+ foo<double> f1;
+ foo<int> f2;
+ f1.bar();
+ f2.bar();
+ return 0;
+}
+
+
+}
+
+
+
+
+
+
diff --git a/libs/config/test/boost_no_mem_tem_keyword.ipp b/libs/config/test/boost_no_mem_tem_keyword.ipp
new file mode 100644
index 0000000000..4f0901fc55
--- /dev/null
+++ b/libs/config/test/boost_no_mem_tem_keyword.ipp
@@ -0,0 +1,69 @@
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_NO_MEMBER_TEMPLATE_KEYWORD
+// TITLE: member templates keyword
+// DESCRIPTION: Member template keyword not supported.
+
+namespace boost_no_member_template_keyword{
+
+#ifndef BOOST_NO_MEMBER_TEMPLATES
+
+template <class T>
+struct foo
+{
+ template <class U>
+ struct nested
+ {
+ typedef foo<U> other;
+ };
+ template <class U>
+ void mfoo(const U&);
+};
+
+template <class T>
+template <class U>
+void foo<T>::mfoo(const U&)
+{
+}
+
+template <class T>
+void test_proc(T i)
+{
+ foo<double> f1;
+ typedef foo<T> ifoo;
+ f1.mfoo(i);
+ f1.template mfoo<T>(i);
+ typedef typename ifoo::template nested<double> bound_t;
+ typedef typename bound_t::other other;
+ other o;
+ (void) &o; // avoid "unused variable" warning
+}
+
+#else
+template <class T>
+void test_proc(T)
+{
+}
+#endif
+
+int test()
+{
+ test_proc(0);
+ return 0;
+}
+
+
+}
+
+
+
+
+
+
+
+
diff --git a/libs/config/test/boost_no_mem_tem_pnts.ipp b/libs/config/test/boost_no_mem_tem_pnts.ipp
new file mode 100644
index 0000000000..ad96620273
--- /dev/null
+++ b/libs/config/test/boost_no_mem_tem_pnts.ipp
@@ -0,0 +1,50 @@
+// Copyright (C) Joaquin M Lopez Munoz 2004.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS
+// TITLE: pointers to members as template arguments
+// DESCRIPTION: Non-type template parameters which take pointers
+// to members, fail to work correctly.
+
+
+namespace boost_no_pointer_to_member_template_parameters{
+
+struct pair
+{
+ int x, y;
+
+ pair(int x_,int y_)
+ : x(x_), y(y_)
+ {}
+};
+
+template<int pair::* PtrToPairMember>
+struct foo
+{
+ int bar(pair& p)
+ {
+ return p.*PtrToPairMember;
+ }
+};
+
+int test()
+{
+ pair p(0,1);
+ foo<&pair::x> fx;
+ foo<&pair::y> fy;
+
+ if((fx.bar(p) != 0) || (fy.bar(p) != 1))
+ return 1;
+ return 0;
+}
+
+}
+
+
+
+
+
diff --git a/libs/config/test/boost_no_mem_templ_frnds.ipp b/libs/config/test/boost_no_mem_templ_frnds.ipp
new file mode 100644
index 0000000000..c1c1b63084
--- /dev/null
+++ b/libs/config/test/boost_no_mem_templ_frnds.ipp
@@ -0,0 +1,72 @@
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_NO_MEMBER_TEMPLATE_FRIENDS
+// TITLE: member template friends
+// DESCRIPTION: Member template friend syntax
+// ("template<class P> friend class frd;")
+// described in the C++ Standard,
+// 14.5.3, not supported.
+
+
+namespace boost_no_member_template_friends{
+
+template <class T>
+class foobar;
+
+template <class T>
+class foo;
+
+template <class T>
+bool must_be_friend_proc(const foo<T>& f);
+
+template <class T>
+class foo
+{
+private:
+ template<typename Y> friend class foobar;
+ template<typename Y> friend class foo;
+ template<typename Y> friend bool must_be_friend_proc(const foo<Y>& f);
+ int i;
+public:
+ foo(){ i = 0; }
+ template <class U>
+ foo(const foo<U>& f){ i = f.i; }
+};
+
+template <class T>
+bool must_be_friend_proc(const foo<T>& f)
+{ return f.i != 0; }
+
+template <class T>
+class foobar
+{
+ int i;
+public:
+ template <class U>
+ foobar(const foo<U>& f)
+ { i = f.i; }
+};
+
+
+int test()
+{
+ foo<int> fi;
+ foo<double> fd(fi);
+ must_be_friend_proc(fd);
+ foobar<long> fb(fi);
+ (void) &fb; // avoid "unused variable" warning
+ return 0;
+}
+
+}
+
+
+
+
+
+
diff --git a/libs/config/test/boost_no_mem_templates.ipp b/libs/config/test/boost_no_mem_templates.ipp
new file mode 100644
index 0000000000..873580f3c2
--- /dev/null
+++ b/libs/config/test/boost_no_mem_templates.ipp
@@ -0,0 +1,64 @@
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_NO_MEMBER_TEMPLATES
+// TITLE: member templates
+// DESCRIPTION: Member template functions not fully supported.
+
+#ifndef BOOST_NESTED_TEMPLATE
+#define BOOST_NESTED_TEMPLATE template
+#endif
+
+
+namespace boost_no_member_templates{
+
+template <class T>
+struct foo
+{
+ template <class U>
+ struct nested
+ {
+ typedef foo<U> other;
+ };
+ template <class U>
+ void mfoo(const U&);
+};
+
+template <class T>
+template <class U>
+void foo<T>::mfoo(const U&)
+{
+}
+
+template <class T>
+void test_proc(T i)
+{
+ foo<double> f1;
+ typedef foo<T> ifoo;
+ f1.mfoo(i);
+ //f1.template mfoo<T>(i);
+ typedef typename ifoo::BOOST_NESTED_TEMPLATE nested<double> bound_t;
+ typedef typename bound_t::other other;
+ other o;
+ (void) &o;
+}
+
+int test()
+{
+ test_proc(0);
+ return 0;
+}
+
+
+}
+
+
+
+
+
+
+
diff --git a/libs/config/test/boost_no_nested_friendship.ipp b/libs/config/test/boost_no_nested_friendship.ipp
new file mode 100644
index 0000000000..7ff9cc42fe
--- /dev/null
+++ b/libs/config/test/boost_no_nested_friendship.ipp
@@ -0,0 +1,44 @@
+// Copyright (C) 2008 N. Musatti
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_NO_NESTED_FRIENDSHIP
+// TITLE: Access to private members from nested classes
+// DESCRIPTION: If the compiler fails to support access to private members
+// from nested classes
+
+namespace boost_no_nested_friendship {
+
+class A {
+public:
+ A() {}
+ struct B {
+ int f(A& a)
+ {
+ a.f1();
+ a.f2(a);
+ return a.b;
+ }
+ };
+
+private:
+ static int b;
+ static void f1(){}
+ template <class T>
+ static void f2(const T&){}
+};
+
+int A::b = 0;
+
+int test()
+{
+ A a;
+ A::B b;
+ return b.f(a);
+}
+
+}
+
diff --git a/libs/config/test/boost_no_noexcept.ipp b/libs/config/test/boost_no_noexcept.ipp
new file mode 100644
index 0000000000..f041ef412f
--- /dev/null
+++ b/libs/config/test/boost_no_noexcept.ipp
@@ -0,0 +1,26 @@
+// Copyright (C) 2011 Takaya Saito
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_NO_NOEXCEPT
+// TITLE: C++0x noexcept unavailable
+// DESCRIPTION: The compiler does not support C++0x noexcept
+
+namespace boost_no_noexcept {
+
+void quiet_warning(bool){}
+
+int f() noexcept ;
+int g() noexcept( noexcept( f() ) ) ;
+
+int test()
+{
+ bool b = noexcept( g() );
+ quiet_warning(b);
+ return 0;
+}
+
+}
diff --git a/libs/config/test/boost_no_nullptr.ipp b/libs/config/test/boost_no_nullptr.ipp
new file mode 100644
index 0000000000..dd06f7fdd2
--- /dev/null
+++ b/libs/config/test/boost_no_nullptr.ipp
@@ -0,0 +1,24 @@
+// (C) Copyright Beman Dawes 2009
+
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for more information.
+
+// MACRO: BOOST_NO_NULLPTR
+// TITLE: C++0x nullptr feature unavailable
+// DESCRIPTION: The compiler does not support the C++0x nullptr feature
+
+namespace boost_no_nullptr {
+
+void quiet_warning(const int*){}
+
+int test()
+{
+ int * p = nullptr;
+ quiet_warning(p);
+ return 0;
+}
+
+}
diff --git a/libs/config/test/boost_no_ops_in_namespace.ipp b/libs/config/test/boost_no_ops_in_namespace.ipp
new file mode 100644
index 0000000000..895d9bae0e
--- /dev/null
+++ b/libs/config/test/boost_no_ops_in_namespace.ipp
@@ -0,0 +1,73 @@
+// (C) Copyright Jeremy Siek 1999.
+// (C) Copyright David Abrahams 1999.
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_NO_OPERATORS_IN_NAMESPACE
+// TITLE: friend operators in namespace
+// DESCRIPTION: Compiler requires inherited operator
+// friend functions to be defined at namespace scope,
+// then using'ed to boost.
+// Probably GCC specific. See boost/operators.hpp for example.
+
+namespace boost{
+
+//
+// the following is taken right out of <boost/operators.hpp>
+//
+template <class T>
+struct addable1
+{
+ friend T operator+(T x, const T& y) { return x += y; }
+ friend bool operator != (const T& a, const T& b) { return !(a == b); }
+};
+
+struct spoiler1
+{};
+
+spoiler1 operator+(const spoiler1&,const spoiler1&);
+bool operator !=(const spoiler1&, const spoiler1&);
+
+
+} // namespace boost
+
+namespace boost_no_operators_in_namespace{
+
+struct spoiler2
+{};
+
+spoiler2 operator+(const spoiler2&,const spoiler2&);
+bool operator !=(const spoiler2&, const spoiler2&);
+
+
+class add : public boost::addable1<add>
+{
+ int val;
+public:
+ add(int i) { val = i; }
+ add(const add& a){ val = a.val; }
+ add& operator+=(const add& a) { val += a.val; return *this; }
+ bool operator==(const add& a)const { return val == a.val; }
+};
+
+int test()
+{
+ add a1(2);
+ add a2(3);
+ add a3(0);
+ a3 = a1 + a2;
+ bool b1 = (a1 == a2);
+ b1 = (a1 != a2);
+ (void)b1;
+ return 0;
+}
+
+}
+
+
+
+
diff --git a/libs/config/test/boost_no_part_spec_def_args.ipp b/libs/config/test/boost_no_part_spec_def_args.ipp
new file mode 100644
index 0000000000..91ef53768c
--- /dev/null
+++ b/libs/config/test/boost_no_part_spec_def_args.ipp
@@ -0,0 +1,46 @@
+// (C) Copyright John Maddock 2008.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS
+// TITLE: Default arguments in partial specialization
+// DESCRIPTION: The compiler chokes if a partial specialization relies on default arguments in the primary template.
+
+namespace boost_no_partial_specialization_implicit_default_args{
+
+template <class T>
+struct one
+{
+};
+
+template <class T1, class T2 = void>
+struct tag
+{
+};
+
+template <class T1>
+struct tag<one<T1> >
+{
+};
+
+template <class T>
+void consume_variable(T const&){}
+
+int test()
+{
+ tag<int> t1;
+ consume_variable(t1);
+ tag<one<int> > t2;
+ consume_variable(t2);
+ tag<int, double> t3;
+ consume_variable(t3);
+ tag<one<int>, double> t4;
+ consume_variable(t4);
+ return 0;
+}
+
+}
+
diff --git a/libs/config/test/boost_no_partial_spec.ipp b/libs/config/test/boost_no_partial_spec.ipp
new file mode 100644
index 0000000000..036744eb5e
--- /dev/null
+++ b/libs/config/test/boost_no_partial_spec.ipp
@@ -0,0 +1,56 @@
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+// TITLE: partial specialisation
+// DESCRIPTION: Class template partial specialization
+// (14.5.4 [temp.class.spec]) not supported.
+
+
+namespace boost_no_template_partial_specialization{
+
+template <class T>
+struct partial1
+{
+ typedef T& type;
+};
+
+template <class T>
+struct partial1<T&>
+{
+ typedef T& type;
+};
+
+template <class T, bool b>
+struct partial2
+{
+ typedef T& type;
+};
+
+template <class T>
+struct partial2<T,true>
+{
+ typedef T type;
+};
+
+
+int test()
+{
+ int i = 0;
+ partial1<int&>::type p1 = i;
+ partial2<int&,true>::type p2 = i;
+ (void)p1;
+ (void)p2;
+ (void)i;
+ return 0;
+}
+
+}
+
+
+
+
diff --git a/libs/config/test/boost_no_priv_aggregate.ipp b/libs/config/test/boost_no_priv_aggregate.ipp
new file mode 100644
index 0000000000..ca1aee785a
--- /dev/null
+++ b/libs/config/test/boost_no_priv_aggregate.ipp
@@ -0,0 +1,39 @@
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_NO_PRIVATE_IN_AGGREGATE
+// TITLE: private in aggregate types
+// DESCRIPTION: The compiler misreads 8.5.1, treating classes
+// as non-aggregate if they contain private or
+// protected member functions.
+
+
+namespace boost_no_private_in_aggregate{
+
+struct t
+{
+private:
+ void foo(){ i = j; }
+public:
+ void uncallable(); // silences warning from GCC
+ int i;
+ int j;
+};
+
+
+int test()
+{
+ t inst = { 0, 0, };
+ (void) &inst; // avoid "unused variable" warning
+ return 0;
+}
+
+}
+
+
+
+
diff --git a/libs/config/test/boost_no_ptr_mem_const.ipp b/libs/config/test/boost_no_ptr_mem_const.ipp
new file mode 100644
index 0000000000..ef6dda5cb0
--- /dev/null
+++ b/libs/config/test/boost_no_ptr_mem_const.ipp
@@ -0,0 +1,86 @@
+// Copyright (c) 2000
+// Cadenza New Zealand Ltd
+//
+// (C) Copyright John Maddock 2001.
+//
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// MACRO: BOOST_NO_POINTER_TO_MEMBER_CONST
+// TITLE: pointers to const member functions
+// DESCRIPTION: The compiler does not correctly handle
+// pointers to const member functions, preventing use
+// of these in overloaded function templates.
+// See boost/functional.hpp for example.
+
+#include <functional>
+
+namespace boost_no_pointer_to_member_const{
+
+template <class S, class T>
+class const_mem_fun_t : public std::unary_function<const T*, S>
+{
+public:
+ explicit const_mem_fun_t(S (T::*p)() const)
+ :
+ ptr(p)
+ {}
+ S operator()(const T* p) const
+ {
+ return (p->*ptr)();
+ }
+private:
+ S (T::*ptr)() const;
+};
+
+template <class S, class T, class A>
+class const_mem_fun1_t : public std::binary_function<const T*, A, S>
+{
+public:
+ explicit const_mem_fun1_t(S (T::*p)(A) const)
+ :
+ ptr(p)
+ {}
+ S operator()(const T* p, const A& x) const
+ {
+ return (p->*ptr)(x);
+ }
+private:
+ S (T::*ptr)(A) const;
+};
+
+template<class S, class T>
+inline const_mem_fun_t<S,T> mem_fun(S (T::*f)() const)
+{
+ return const_mem_fun_t<S,T>(f);
+}
+
+template<class S, class T, class A>
+inline const_mem_fun1_t<S,T,A> mem_fun(S (T::*f)(A) const)
+{
+ return const_mem_fun1_t<S,T,A>(f);
+}
+
+class tester
+{
+public:
+ void foo1()const{}
+ int foo2(int i)const{ return i*2; }
+};
+
+
+int test()
+{
+ boost_no_pointer_to_member_const::mem_fun(&tester::foo1);
+ boost_no_pointer_to_member_const::mem_fun(&tester::foo2);
+ return 0;
+}
+
+}
+
+
+
+
diff --git a/libs/config/test/boost_no_raw_literals.ipp b/libs/config/test/boost_no_raw_literals.ipp
new file mode 100644
index 0000000000..3362db3059
--- /dev/null
+++ b/libs/config/test/boost_no_raw_literals.ipp
@@ -0,0 +1,27 @@
+// (C) Copyright Beman Dawes 2008
+
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for more information.
+
+// MACRO: BOOST_NO_RAW_LITERALS
+// TITLE: C++0x raw string literals unavailable
+// DESCRIPTION: The compiler does not support C++0x raw string literals
+
+namespace boost_no_raw_literals {
+
+void quiet_warning(const char*){}
+void quiet_warning(const wchar_t*){}
+
+int test()
+{
+ const char* s = R"(abc)";
+ quiet_warning(s);
+ const wchar_t* ws = LR"(abc)";
+ quiet_warning(ws);
+ return 0;
+}
+
+}
diff --git a/libs/config/test/boost_no_ret_det.ipp b/libs/config/test/boost_no_ret_det.ipp
new file mode 100644
index 0000000000..c2f08ac291
--- /dev/null
+++ b/libs/config/test/boost_no_ret_det.ipp
@@ -0,0 +1,36 @@
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// MACRO: BOOST_NO_UNREACHABLE_RETURN_DETECTION
+// TITLE: detection of unreachable returns
+// DESCRIPTION: If a return is unreachable, then no return
+// statement should be required, however some
+// compilers insist on it, while other issue a
+// bunch of warnings if it is in fact present.
+
+
+namespace boost_no_unreachable_return_detection{
+
+int checker()
+{
+ throw 0;
+ // no return statement: we don't ever get here...
+}
+
+int check = 0;
+
+int test()
+{
+ if(check)
+ return checker();
+ return 0;
+}
+
+}
+
+
+
diff --git a/libs/config/test/boost_no_rtti.ipp b/libs/config/test/boost_no_rtti.ipp
new file mode 100644
index 0000000000..dd8992bcea
--- /dev/null
+++ b/libs/config/test/boost_no_rtti.ipp
@@ -0,0 +1,57 @@
+// (C) Copyright John Maddock 2008.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_NO_RTTI
+// TITLE: RTTI unavailable
+// DESCRIPTION: The compiler does not support RTTI in this mode
+
+#include <typeinfo>
+
+class A
+{
+public:
+ A(){}
+ virtual void t();
+};
+
+void A::t()
+{
+}
+
+class B : public A
+{
+public:
+ B(){}
+ virtual void t();
+};
+
+void B::t()
+{
+}
+
+namespace boost_no_rtti
+{
+
+int check_f(const A& a)
+{
+ return typeid(a) == typeid(B) ? 0 : 1;
+}
+
+int test()
+{
+ try{
+ B b;
+ return check_f(b);
+ }
+ catch(...)
+ {
+ return 1;
+ }
+}
+
+}
+
diff --git a/libs/config/test/boost_no_rvalue_references.ipp b/libs/config/test/boost_no_rvalue_references.ipp
new file mode 100644
index 0000000000..4540bb640c
--- /dev/null
+++ b/libs/config/test/boost_no_rvalue_references.ipp
@@ -0,0 +1,26 @@
+// Copyright (C) 2007 Douglas Gregor
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_NO_RVALUE_REFERENCES
+// TITLE: C++0x rvalue references unavailable
+// DESCRIPTION: The compiler does not support C++0x rvalue references
+
+namespace boost_no_rvalue_references {
+
+void g(int&) {}
+
+template<typename F, typename T>
+void forward(F f, T&& t) { f(static_cast<T&&>(t)); }
+
+int test()
+{
+ int x;
+ forward(g, x);
+ return 0;
+}
+
+}
diff --git a/libs/config/test/boost_no_scoped_enums.ipp b/libs/config/test/boost_no_scoped_enums.ipp
new file mode 100644
index 0000000000..8b6a4a667c
--- /dev/null
+++ b/libs/config/test/boost_no_scoped_enums.ipp
@@ -0,0 +1,28 @@
+// (C) Copyright Beman Dawes 2008
+
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for more information.
+
+// MACRO: BOOST_NO_SCOPED_ENUMS
+// TITLE: C++0x scoped enum unavailable
+// DESCRIPTION: The compiler does not support C++0x scoped enum
+
+namespace boost_no_scoped_enums {
+
+int test()
+{
+ enum class scoped_enum { yes, no, maybe };
+ // This tests bug http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38064
+ bool b = (scoped_enum::yes == scoped_enum::yes)
+ && (scoped_enum::yes != scoped_enum::no)
+ && (scoped_enum::yes < scoped_enum::no)
+ && (scoped_enum::yes <= scoped_enum::no)
+ && (scoped_enum::no > scoped_enum::yes)
+ && (scoped_enum::no >= scoped_enum::yes);
+ return b ? 0 : 1;
+}
+
+}
diff --git a/libs/config/test/boost_no_sfinae.ipp b/libs/config/test/boost_no_sfinae.ipp
new file mode 100644
index 0000000000..57dad28250
--- /dev/null
+++ b/libs/config/test/boost_no_sfinae.ipp
@@ -0,0 +1,68 @@
+// (C) Copyright Eric Friedman 2003.
+// Some modifications by Jeremiah Willcock and Jaakko Jarvi.
+// Use, modification, and distribution is subject to the Boost Software
+// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+// MACRO: BOOST_NO_SFINAE
+// TITLE: SFINAE (substitution failure is not an error)
+// DESCRIPTION: SFINAE not supported.
+
+
+namespace boost_no_sfinae {
+
+namespace f1_a {
+template <typename T>
+int f1(T*, float)
+{
+ return 0;
+}
+} using f1_a::f1;
+
+namespace f1_b {
+template <typename T>
+int f1(T*, int, typename T::int_* = 0)
+{
+ return 1;
+}
+} using f1_b::f1;
+
+namespace f2_a {
+template <typename T>
+int f2(T*, float)
+{
+ return 2;
+}
+} using f2_a::f2;
+
+namespace f2_b {
+template <typename T>
+typename T::int_ f2(T*, int)
+{
+ return 3;
+}
+} using f2_b::f2;
+
+struct test_t
+{
+ typedef int int_;
+};
+
+struct test2_t {};
+
+int test()
+{
+ test_t* t = 0;
+ test2_t* t2 = 0;
+ bool correct =
+ (f1(t, 0) == 1) &&
+ (f1(t2, 0) == 0) &&
+ (f2(t, 0) == 3) &&
+ (f2(t2, 0) == 2);
+ return !correct;
+}
+
+}
+
+
+
diff --git a/libs/config/test/boost_no_sfinae_expr.ipp b/libs/config/test/boost_no_sfinae_expr.ipp
new file mode 100644
index 0000000000..c3ce89e817
--- /dev/null
+++ b/libs/config/test/boost_no_sfinae_expr.ipp
@@ -0,0 +1,37 @@
+// (C) Copyright Mathias Gaunard 2009.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// MACRO: BOOST_NO_SFINAE_EXPR
+// TITLE: SFINAE for expressions
+// DESCRIPTION: SFINAE for expressions not supported.
+
+namespace boost_no_sfinae_expr
+{
+
+template<typename T>
+struct has_foo
+{
+ typedef char NotFound;
+ struct Found { char x[2]; };
+
+ template<int> struct dummy {};
+
+ template<class X> static Found test(dummy< sizeof((*(X*)0).foo(), 0) >*);
+ template<class X> static NotFound test( ... );
+
+ static const bool value = (sizeof(Found) == sizeof(test<T>(0)));
+};
+
+struct test1 {};
+struct test2 { void foo(); };
+
+int test()
+{
+ return has_foo<test1>::value || !has_foo<test2>::value;
+}
+
+} // namespace boost_no_sfinae_expr
diff --git a/libs/config/test/boost_no_sstream.ipp b/libs/config/test/boost_no_sstream.ipp
new file mode 100644
index 0000000000..6d06b11a63
--- /dev/null
+++ b/libs/config/test/boost_no_sstream.ipp
@@ -0,0 +1,29 @@
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// MACRO: BOOST_NO_STRINGSTREAM
+// TITLE: <sstream>
+// DESCRIPTION: The C++ implementation does not provide the <sstream> header.
+
+#include <sstream>
+#include <string>
+
+namespace boost_no_stringstream{
+
+int test()
+{
+ std::stringstream ss;
+ ss << "abc";
+ std::string s = ss.str();
+ return (s != "abc");
+}
+
+}
+
+
+
+
diff --git a/libs/config/test/boost_no_static_assert.ipp b/libs/config/test/boost_no_static_assert.ipp
new file mode 100644
index 0000000000..858d91bc98
--- /dev/null
+++ b/libs/config/test/boost_no_static_assert.ipp
@@ -0,0 +1,20 @@
+// Copyright (C) 2007 Douglas Gregor
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_NO_STATIC_ASSERT
+// TITLE: C++0x static_assert unavailable
+// DESCRIPTION: The compiler does not support C++0x static assertions
+
+namespace boost_no_static_assert {
+
+int test()
+{
+ static_assert(true, "OK");
+ return 0;
+}
+
+}
diff --git a/libs/config/test/boost_no_std_allocator.ipp b/libs/config/test/boost_no_std_allocator.ipp
new file mode 100644
index 0000000000..da88386b7f
--- /dev/null
+++ b/libs/config/test/boost_no_std_allocator.ipp
@@ -0,0 +1,70 @@
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// MACRO: BOOST_NO_STD_ALLOCATOR
+// TITLE: std::allocator
+// DESCRIPTION: The C++ standard library does not provide
+// a standards conforming std::allocator.
+
+#ifndef BOOST_NESTED_TEMPLATE
+#define BOOST_NESTED_TEMPLATE template
+#endif
+
+#include <memory>
+
+namespace boost_no_std_allocator{
+
+template <class T>
+int test_allocator(const T& i)
+{
+ typedef std::allocator<int> alloc1_t;
+ typedef typename alloc1_t::size_type size_type;
+ typedef typename alloc1_t::difference_type difference_type;
+ typedef typename alloc1_t::pointer pointer;
+ typedef typename alloc1_t::const_pointer const_pointer;
+ typedef typename alloc1_t::reference reference;
+ typedef typename alloc1_t::const_reference const_reference;
+ typedef typename alloc1_t::value_type value_type;
+
+ typedef typename alloc1_t::BOOST_NESTED_TEMPLATE rebind<double> binder_t;
+ typedef typename binder_t::other alloc2_t;
+
+ alloc1_t a1;
+ alloc1_t a2(a1);
+
+ pointer p = a1.allocate(1);
+ const_pointer cp = p;
+ a1.construct(p,i);
+ size_type s = a1.max_size();
+ (void)s;
+ reference r = *p;
+ const_reference cr = *cp;
+ if(p != a1.address(r)) return -1;
+ if(cp != a1.address(cr)) return -1;
+ a1.destroy(p);
+ a1.deallocate(p,1);
+
+ alloc2_t a3(a1);
+ // this chokes early versions of the MSL library
+ // and isn't currently required by anything in boost
+ // so don't test for now...
+ // a3 = a2;
+ return 0;
+}
+
+
+int test()
+{
+ return test_allocator(0);
+}
+
+}
+
+
+
+
+
diff --git a/libs/config/test/boost_no_std_distance.ipp b/libs/config/test/boost_no_std_distance.ipp
new file mode 100644
index 0000000000..93affff7a2
--- /dev/null
+++ b/libs/config/test/boost_no_std_distance.ipp
@@ -0,0 +1,31 @@
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// MACRO: BOOST_NO_STD_DISTANCE
+// TITLE: std::distance
+// DESCRIPTION: The platform does not have a conforming version of std::distance.
+
+#include <algorithm>
+#include <iterator>
+
+
+namespace boost_no_std_distance{
+
+int test()
+{
+ const char* begin = 0;
+ const char* end = 0;
+ if(std::distance(begin, end)) return -1;
+ return 0;
+}
+
+}
+
+
+
+
+
diff --git a/libs/config/test/boost_no_std_iter_traits.ipp b/libs/config/test/boost_no_std_iter_traits.ipp
new file mode 100644
index 0000000000..31a9394d5f
--- /dev/null
+++ b/libs/config/test/boost_no_std_iter_traits.ipp
@@ -0,0 +1,80 @@
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// MACRO: BOOST_NO_STD_ITERATOR_TRAITS
+// TITLE: std::iterator_traits
+// DESCRIPTION: The compiler does not provide a standard
+// compliant implementation of std::iterator_traits.
+// Note that the compiler may still have a non-standard
+// implementation.
+
+#include <iterator>
+#include <stddef.h>
+
+namespace boost_no_std_iterator_traits{
+
+struct UDT_iterator
+{
+ typedef int value_type;
+ typedef ptrdiff_t difference_type;
+ typedef int* pointer;
+ typedef int& reference;
+ typedef std::input_iterator_tag iterator_category;
+};
+
+struct UDT{};
+
+
+int test()
+{
+ std::iterator_traits<UDT_iterator>::value_type v = 0;
+ std::iterator_traits<UDT_iterator>::difference_type d = 0;
+ std::iterator_traits<UDT_iterator>::pointer p = &v;
+ std::iterator_traits<UDT_iterator>::reference r = v;
+ std::iterator_traits<UDT_iterator>::iterator_category cat;
+
+ std::iterator_traits<UDT*>::value_type v2;
+ std::iterator_traits<UDT*>::difference_type d2 = 0;
+ std::iterator_traits<UDT*>::pointer p2 = &v2;
+ std::iterator_traits<UDT*>::reference r2 = v2;
+ std::iterator_traits<UDT*>::iterator_category cat2;
+
+ std::iterator_traits<const UDT*>::value_type v3;
+ std::iterator_traits<const UDT*>::difference_type d3 = 0;
+ std::iterator_traits<const UDT*>::pointer p3 = &v3;
+ std::iterator_traits<const UDT*>::reference r3 = v3;
+ std::iterator_traits<const UDT*>::iterator_category cat3;
+
+ //
+ // suppress some warnings:
+ //
+ (void) &v;
+ (void) &d;
+ (void) &p;
+ (void) &r;
+ (void) &cat;
+
+ (void) &v2;
+ (void) &d2;
+ (void) &p2;
+ (void) &r2;
+ (void) &cat2;
+
+ (void) &v3;
+ (void) &d3;
+ (void) &p3;
+ (void) &r3;
+ (void) &cat3;
+
+ return 0;
+}
+
+}
+
+
+
+
diff --git a/libs/config/test/boost_no_std_iterator.ipp b/libs/config/test/boost_no_std_iterator.ipp
new file mode 100644
index 0000000000..e5332ef359
--- /dev/null
+++ b/libs/config/test/boost_no_std_iterator.ipp
@@ -0,0 +1,67 @@
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// MACRO: BOOST_NO_STD_ITERATOR
+// TITLE: std::iterator
+// DESCRIPTION: The C++ implementation fails to provide the
+// std::iterator class.
+
+#include <iterator>
+#include <stddef.h>
+
+namespace boost_no_std_iterator{
+
+
+int test()
+{
+ typedef std::iterator<
+ std::random_access_iterator_tag,
+ int,
+ ptrdiff_t,
+ int*,
+ int&
+ > iterator_type;
+
+ iterator_type::value_type v = 0;
+ iterator_type::difference_type d = 0;
+ iterator_type::pointer p = &v;
+ iterator_type::reference r = v;
+ iterator_type::iterator_category cat;
+
+ typedef std::iterator<
+ std::random_access_iterator_tag,
+ int
+ > iterator_type_2;
+
+ iterator_type_2::value_type v2 = 0;
+ iterator_type_2::difference_type d2 = 0;
+ iterator_type_2::pointer p2 = &v2;
+ iterator_type_2::reference r2 = v2;
+ iterator_type_2::iterator_category cat2;
+ //
+ // suppress some warnings:
+ //
+ (void) &v;
+ (void) &d;
+ (void) &p;
+ (void) &r;
+ (void) &cat;
+
+ (void) &v2;
+ (void) &d2;
+ (void) &p2;
+ (void) &r2;
+ (void) &cat2;
+
+ return 0;
+}
+
+}
+
+
+
+
diff --git a/libs/config/test/boost_no_std_locale.ipp b/libs/config/test/boost_no_std_locale.ipp
new file mode 100644
index 0000000000..29d8e32324
--- /dev/null
+++ b/libs/config/test/boost_no_std_locale.ipp
@@ -0,0 +1,36 @@
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// MACRO: BOOST_NO_STD_LOCALE
+// TITLE: std::locale
+// DESCRIPTION: The standard library lacks std::locale.
+
+#include <locale>
+
+namespace boost_no_std_locale{
+
+int test()
+{
+ std::locale l1;
+ //
+ // ideally we would construct a locale from a facet,
+ // but that requires template member functions which
+ // may not be available, instead just check that we can
+ // construct a pointer to a facet:
+ //
+ const std::ctype<char>* pct = 0;
+ (void) &l1;
+ (void) &pct;
+ return 0;
+}
+
+}
+
+
+
+
+
diff --git a/libs/config/test/boost_no_std_messages.ipp b/libs/config/test/boost_no_std_messages.ipp
new file mode 100644
index 0000000000..3fbd6f07e8
--- /dev/null
+++ b/libs/config/test/boost_no_std_messages.ipp
@@ -0,0 +1,39 @@
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// MACRO: BOOST_NO_STD_MESSAGES
+// TITLE: std::messages<charT>
+// DESCRIPTION: The standard library lacks a conforming std::messages facet.
+
+#include <locale>
+
+
+namespace boost_no_std_messages{
+
+//
+// this just has to complile, not run:
+//
+void test_messages(const std::messages<char>& m)
+{
+ static const std::locale l;
+ static const std::string name("foobar");
+ m.close(m.open(name, l));
+}
+
+int test()
+{
+ const std::messages<char>* pmf = 0;
+ (void) &pmf;
+ return 0;
+}
+
+}
+
+
+
+
+
diff --git a/libs/config/test/boost_no_std_min_max.ipp b/libs/config/test/boost_no_std_min_max.ipp
new file mode 100644
index 0000000000..a8260062b7
--- /dev/null
+++ b/libs/config/test/boost_no_std_min_max.ipp
@@ -0,0 +1,33 @@
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// MACRO: BOOST_NO_STD_MIN_MAX
+// TITLE: std::min and std::max
+// DESCRIPTION: The C++ standard library does not provide
+// the (min)() and (max)() template functions that
+// should be in <algorithm>.
+
+#include <algorithm>
+
+namespace boost_no_std_min_max{
+
+
+int test()
+{
+ int i = 0;
+ int j = 2;
+ if((std::min)(i,j) != 0) return -1;
+ if((std::max)(i,j) != 2) return -1;
+
+ return 0;
+}
+
+}
+
+
+
+
diff --git a/libs/config/test/boost_no_std_oi_assign.ipp b/libs/config/test/boost_no_std_oi_assign.ipp
new file mode 100644
index 0000000000..9d5061442d
--- /dev/null
+++ b/libs/config/test/boost_no_std_oi_assign.ipp
@@ -0,0 +1,42 @@
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// MACRO: BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN
+// TITLE: That the std output iterators are assignable
+// DESCRIPTION: Some std lib output iterators are not assignable
+// even this is required by the standard.
+
+#include <iterator>
+#include <list>
+#include <iostream>
+
+
+namespace boost_no_std_output_iterator_assign {
+
+int test()
+{
+ std::list<int> l;
+ std::back_insert_iterator<std::list<int> > bi1(l);
+ std::back_insert_iterator<std::list<int> > bi2(l);
+ bi1 = bi2;
+
+ std::front_insert_iterator<std::list<int> > fi1(l);
+ std::front_insert_iterator<std::list<int> > fi2(l);
+ fi1 = fi2;
+
+ std::ostream_iterator<char> osi1(std::cout);
+ std::ostream_iterator<char> osi2(std::cout);
+ osi1 = osi2;
+
+ return 0;
+}
+
+}
+
+
+
+
diff --git a/libs/config/test/boost_no_std_typeinfo.ipp b/libs/config/test/boost_no_std_typeinfo.ipp
new file mode 100644
index 0000000000..a55a94d81f
--- /dev/null
+++ b/libs/config/test/boost_no_std_typeinfo.ipp
@@ -0,0 +1,26 @@
+// (C) Copyright Peter Dimov 2007.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_NO_STD_TYPEINFO
+// TITLE: type_info not in namespace std
+// DESCRIPTION: The <typeinfo> header declares type_info in the global namespace instead of std
+
+#include <typeinfo>
+
+namespace boost_no_std_typeinfo
+{
+void quiet_warning(const std::type_info*){}
+
+int test()
+{
+ std::type_info * p = 0;
+ quiet_warning(p);
+ return 0;
+}
+
+}
+
diff --git a/libs/config/test/boost_no_std_unordered.ipp b/libs/config/test/boost_no_std_unordered.ipp
new file mode 100644
index 0000000000..c7ad0869df
--- /dev/null
+++ b/libs/config/test/boost_no_std_unordered.ipp
@@ -0,0 +1,27 @@
+// (C) Copyright John Maddock and Dave Abrahams 2002.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_NO_STD_UNORDERED
+// TITLE: <unordered_map> and <unordered_set>
+// DESCRIPTION: Check for C++0x unordered container support
+
+#include <unordered_map>
+#include <unordered_set>
+
+namespace boost_no_std_unordered{
+
+int test()
+{
+ std::unordered_map<int, int> im;
+ std::unordered_set<int> is;
+ std::unordered_multimap<int, int> imm;
+ std::unordered_multiset<int> ims;
+ return im.size() + is.size() + imm.size() + ims.size(); // all zero
+}
+
+}
+
diff --git a/libs/config/test/boost_no_std_use_facet.ipp b/libs/config/test/boost_no_std_use_facet.ipp
new file mode 100644
index 0000000000..c207af7d37
--- /dev/null
+++ b/libs/config/test/boost_no_std_use_facet.ipp
@@ -0,0 +1,29 @@
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// MACRO: BOOST_NO_STD_USE_FACET
+// TITLE: std::use_facet
+// DESCRIPTION: The standard library lacks a conforming std::use_facet.
+
+#include <locale>
+
+namespace boost_no_std_use_facet{
+
+int test()
+{
+ std::locale l;
+ const std::ctype<char>& ct = std::use_facet<std::ctype<char> >(l);
+ (void)ct;
+ return 0;
+}
+
+}
+
+
+
+
+
diff --git a/libs/config/test/boost_no_std_wstreambuf.ipp b/libs/config/test/boost_no_std_wstreambuf.ipp
new file mode 100644
index 0000000000..1be252eed2
--- /dev/null
+++ b/libs/config/test/boost_no_std_wstreambuf.ipp
@@ -0,0 +1,108 @@
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_NO_STD_WSTREAMBUF
+// TITLE: std::basic_streambuf<wchar_t>
+// DESCRIPTION: The standard library lacks std::basic_streambuf<wchar_t>.
+
+#include <iostream>
+#include <streambuf>
+#include <string>
+
+namespace boost_no_std_wstreambuf{
+
+template <class charT,
+ class traits = ::std::char_traits<charT> >
+class parser_buf : public ::std::basic_streambuf<charT, traits>
+{
+ typedef ::std::basic_streambuf<charT, traits> base_type;
+ typedef typename base_type::int_type int_type;
+ typedef typename base_type::char_type char_type;
+ typedef typename base_type::pos_type pos_type;
+ typedef ::std::streamsize streamsize;
+ typedef typename base_type::off_type off_type;
+public:
+ parser_buf() : base_type() { setbuf(0, 0); }
+ const charT* getnext() { return this->gptr(); }
+protected:
+ std::basic_streambuf<charT, traits>* setbuf(char_type* s, streamsize n);
+ typename parser_buf<charT, traits>::pos_type seekpos(pos_type sp, ::std::ios_base::openmode which);
+ typename parser_buf<charT, traits>::pos_type seekoff(off_type off, ::std::ios_base::seekdir way, ::std::ios_base::openmode which);
+private:
+ parser_buf& operator=(const parser_buf&)
+ { return *this; };
+ parser_buf(const parser_buf&){};
+};
+
+template<class charT, class traits>
+std::basic_streambuf<charT, traits>*
+parser_buf<charT, traits>::setbuf(char_type* s, streamsize n)
+{
+ this->setg(s, s, s + n);
+ return this;
+}
+
+template<class charT, class traits>
+typename parser_buf<charT, traits>::pos_type
+parser_buf<charT, traits>::seekoff(off_type off, ::std::ios_base::seekdir way, ::std::ios_base::openmode which)
+{
+ typedef typename parser_buf<charT, traits>::pos_type pos_type;
+ if(which & ::std::ios_base::out)
+ return pos_type(off_type(-1));
+ int size = this->egptr() - this->eback();
+ int pos = this->gptr() - this->eback();
+ charT* g = this->eback();
+ switch(way)
+ {
+ case ::std::ios_base::beg:
+ if((off < 0) || (off > size))
+ return pos_type(off_type(-1));
+ else
+ this->setg(g, g + off, g + size);
+ case ::std::ios_base::end:
+ if((off < 0) || (off > size))
+ return pos_type(off_type(-1));
+ else
+ this->setg(g, g + size - off, g + size);
+ case ::std::ios_base::cur:
+ {
+ int newpos = pos + off;
+ if((newpos < 0) || (newpos > size))
+ return pos_type(off_type(-1));
+ else
+ this->setg(g, g + newpos, g + size);
+ }
+ }
+ return static_cast<pos_type>(this->gptr() - this->eback());
+}
+
+template<class charT, class traits>
+typename parser_buf<charT, traits>::pos_type
+parser_buf<charT, traits>::seekpos(pos_type sp, ::std::ios_base::openmode which)
+{
+ if(which & ::std::ios_base::out)
+ return pos_type(off_type(-1));
+ int size = this->egptr() - this->eback();
+ charT* g = this->eback();
+ if(off_type(sp) <= size)
+ {
+ this->setg(g, g + off_type(sp), g + size);
+ }
+ return pos_type(off_type(-1));
+}
+
+
+int test()
+{
+ return 0;
+}
+
+template class parser_buf<char>;
+template class parser_buf<wchar_t>;
+
+}
+
diff --git a/libs/config/test/boost_no_std_wstring.ipp b/libs/config/test/boost_no_std_wstring.ipp
new file mode 100644
index 0000000000..d79fd95faf
--- /dev/null
+++ b/libs/config/test/boost_no_std_wstring.ipp
@@ -0,0 +1,28 @@
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_NO_STD_WSTRING
+// TITLE: std::wstring
+// DESCRIPTION: The standard library lacks std::wstring.
+
+#include <string>
+
+namespace boost_no_std_wstring{
+
+int test()
+{
+ std::wstring s;
+ if(*s.c_str() || (s.begin() != s.end()) || s.size() || (sizeof(std::wstring::value_type) != sizeof(wchar_t))) return -1;
+ return 0;
+}
+
+}
+
+
+
+
+
diff --git a/libs/config/test/boost_no_stdc_namespace.ipp b/libs/config/test/boost_no_stdc_namespace.ipp
new file mode 100644
index 0000000000..993aec747f
--- /dev/null
+++ b/libs/config/test/boost_no_stdc_namespace.ipp
@@ -0,0 +1,43 @@
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_NO_STDC_NAMESPACE
+// TITLE: std:: namespace for C API's
+// DESCRIPTION: The contents of C++ standard headers for C library
+// functions (the <c...> headers) have not been placed
+// in namespace std. This test is difficult - some libraries
+// "fake" the std C functions by adding using declarations
+// to import them into namespace std, unfortunately they don't
+// necessarily catch all of them...
+
+#include <cstring>
+#include <cctype>
+#include <ctime>
+
+#undef isspace
+#undef isalpha
+#undef ispunct
+
+namespace boost_no_stdc_namespace{
+
+
+int test()
+{
+ char c = 0;
+#ifndef BOOST_NO_CTYPE_FUNCTIONS
+ std::isspace(c);
+ std::isalpha(c);
+ std::ispunct(c);
+#endif
+ (void)std::strlen(&c);
+ std::clock();
+
+ return 0;
+}
+
+}
+
diff --git a/libs/config/test/boost_no_swprintf.ipp b/libs/config/test/boost_no_swprintf.ipp
new file mode 100644
index 0000000000..4b3a460f83
--- /dev/null
+++ b/libs/config/test/boost_no_swprintf.ipp
@@ -0,0 +1,31 @@
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_NO_SWPRINTF
+// TITLE: swprintf
+// DESCRIPTION: The platform does not have a conforming version of swprintf.
+
+#include <wchar.h>
+#include <stdio.h>
+
+
+namespace boost_no_swprintf{
+
+int test()
+{
+ wchar_t buf[10];
+ swprintf(buf, 10, L"%d", 10);
+ return 0;
+}
+
+}
+
+
+
+
+
+
diff --git a/libs/config/test/boost_no_template_aliases.ipp b/libs/config/test/boost_no_template_aliases.ipp
new file mode 100644
index 0000000000..e420da78b6
--- /dev/null
+++ b/libs/config/test/boost_no_template_aliases.ipp
@@ -0,0 +1,22 @@
+// (C) Copyright Beman Dawes 2009
+
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for more information.
+
+// MACRO: BOOST_NO_TEMPLATE_ALIASES
+// TITLE: C++0x template_aliases feature unavailable
+// DESCRIPTION: The compiler does not support the C++0x template_aliases feature
+
+namespace boost_no_template_aliases {
+
+using PINT = void (*)(int); // using plus C-style type
+
+int test()
+{
+ return 0;
+}
+
+}
diff --git a/libs/config/test/boost_no_template_streams.ipp b/libs/config/test/boost_no_template_streams.ipp
new file mode 100644
index 0000000000..3379d590ba
--- /dev/null
+++ b/libs/config/test/boost_no_template_streams.ipp
@@ -0,0 +1,28 @@
+// (C) Copyright John Maddock 2008.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_NO_TEMPLATED_IOSTREAMS
+// TITLE: basic_iostream<>
+// DESCRIPTION: The platform supports "new style" templated iostreams.
+
+#include <iostream>
+
+
+namespace boost_no_templated_iostreams{
+
+int test()
+{
+ std::basic_ostream<char, std::char_traits<char> >& osr = std::cout;
+ return 0;
+}
+
+}
+
+
+
+
+
diff --git a/libs/config/test/boost_no_template_template.ipp b/libs/config/test/boost_no_template_template.ipp
new file mode 100644
index 0000000000..a079445246
--- /dev/null
+++ b/libs/config/test/boost_no_template_template.ipp
@@ -0,0 +1,50 @@
+// (C) Copyright John Maddock 2002.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_NO_TEMPLATE_TEMPLATES
+// TITLE: template template paramters.
+// DESCRIPTION: Verify that template template parameters both work
+// and can be deduced through a function call.
+
+
+namespace boost_no_template_templates{
+
+
+template<class T>
+class foo
+{
+public:
+ foo(){};
+ foo(const T&){};
+ const foo& bar()const{ return *this; }
+ foo& operator=(const foo&){ return *this; }
+};
+
+template<typename T, template<typename> class U>
+U<T> sinhc_pi(const U<T> x)
+{
+ return x.bar();
+}
+
+
+int test()
+{
+ foo<double> f1;
+ foo<int> f2;
+ f1 = sinhc_pi(f1);
+ f2 = sinhc_pi(f2);
+ return 0;
+}
+
+
+}
+
+
+
+
+
+
diff --git a/libs/config/test/boost_no_two_phase_lookup.ipp b/libs/config/test/boost_no_two_phase_lookup.ipp
new file mode 100644
index 0000000000..2c5419c8d9
--- /dev/null
+++ b/libs/config/test/boost_no_two_phase_lookup.ipp
@@ -0,0 +1,41 @@
+// (C) Copyright Alisdair Meredith 2006.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_NO_TWO_PHASE_NAME_LOOKUP
+// TITLE: Two phase name lookup
+// DESCRIPTION: If the compiler does not perform two phase name lookup
+
+namespace boost_no_two_phase_name_lookup {
+
+template< class T >
+struct base {
+ int call() {
+ return 1;
+ }
+};
+
+int call() {
+ return 0;
+}
+
+template< class T >
+struct derived : base< T > {
+ int call_test() {
+ return call();
+ }
+};
+
+int test()
+{
+ derived< int > d;
+ return d.call_test();
+}
+
+}
+
+
+
diff --git a/libs/config/test/boost_no_typeid.ipp b/libs/config/test/boost_no_typeid.ipp
new file mode 100644
index 0000000000..3b127d5f0d
--- /dev/null
+++ b/libs/config/test/boost_no_typeid.ipp
@@ -0,0 +1,24 @@
+// (C) Copyright Peter Dimov 2007.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_NO_TYPEID
+// TITLE: typeid unavailable
+// DESCRIPTION: The compiler does not support typeid in this mode
+
+#include <typeinfo>
+
+namespace boost_no_typeid
+{
+
+int test()
+{
+ typeid(int);
+ return 0;
+}
+
+}
+
diff --git a/libs/config/test/boost_no_typename_with_ctor.ipp b/libs/config/test/boost_no_typename_with_ctor.ipp
new file mode 100644
index 0000000000..68a5a0ecc7
--- /dev/null
+++ b/libs/config/test/boost_no_typename_with_ctor.ipp
@@ -0,0 +1,33 @@
+// Copyright (C) 2008 N. Musatti
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_NO_TYPENAME_WITH_CTOR
+// TITLE: Use of typename keyword with constructors
+// DESCRIPTION: If the compiler rejects the typename keyword when calling
+// the constructor of a dependent type
+
+namespace boost_no_typename_with_ctor {
+
+struct A {};
+
+template <typename T>
+struct B {
+ typedef T type;
+};
+
+template <typename T>
+typename T::type f() {
+ return typename T::type();
+}
+
+int test() {
+ A a = f<B<A> >();
+ return 0;
+}
+
+}
+
diff --git a/libs/config/test/boost_no_unicode_literals.ipp b/libs/config/test/boost_no_unicode_literals.ipp
new file mode 100644
index 0000000000..ec8963ba80
--- /dev/null
+++ b/libs/config/test/boost_no_unicode_literals.ipp
@@ -0,0 +1,26 @@
+// (C) Copyright Beman Dawes 2008
+
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for more information.
+
+// MACRO: BOOST_NO_UNICODE_LITERALS
+// TITLE: C++0x unicode literals unavailable
+// DESCRIPTION: The compiler does not support C++0x Unicode literals (N2442)
+
+namespace boost_no_unicode_literals {
+
+void quiet_warning(const char*){}
+
+int test()
+{
+ const char* c8 = u8"";
+ const char16_t* c16 = u"";
+ const char32_t* c32 = U"";
+ quiet_warning(c8);
+ return 0;
+}
+
+}
diff --git a/libs/config/test/boost_no_unified_init.ipp b/libs/config/test/boost_no_unified_init.ipp
new file mode 100644
index 0000000000..9f1c3b411f
--- /dev/null
+++ b/libs/config/test/boost_no_unified_init.ipp
@@ -0,0 +1,53 @@
+// Copyright (C) 2011 John Maddock
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
+// TITLE: C++0x unified initialization syntax unavailable
+// DESCRIPTION: The compiler does not support C++0x unified initialization syntax: see http://en.wikipedia.org/wiki/C%2B%2B0x#Uniform_initialization
+
+namespace boost_no_unified_initialization_syntax {
+
+struct BasicStruct
+{
+ int x;
+ double y;
+};
+
+struct AltStruct
+{
+public:
+ AltStruct(int x, double y) : x_{x}, y_{y} {}
+private:
+ int x_;
+ double y_;
+};
+
+struct IdString
+{
+ std::string name;
+ int identifier;
+ bool operator == (const IdString& other)
+ {
+ return identifier == other.identifier && name == other.name;
+ }
+};
+
+IdString get_string()
+{
+ return {"SomeName", 4}; //Note the lack of explicit type.
+}
+
+int test()
+{
+ BasicStruct var1{5, 3.2};
+ AltStruct var2{2, 4.3};
+
+ IdString id{"SomeName", 4};
+ return id == get_string() ? 0 : 1;
+}
+
+}
diff --git a/libs/config/test/boost_no_using_breaks_adl.ipp b/libs/config/test/boost_no_using_breaks_adl.ipp
new file mode 100644
index 0000000000..437d9fdc7a
--- /dev/null
+++ b/libs/config/test/boost_no_using_breaks_adl.ipp
@@ -0,0 +1,72 @@
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
+// TITLE: broken ADL
+// DESCRIPTION: Using declarations break argument dependent lookup
+// (probably Borland specific), the fix is to use
+// using namespace whatever; rather than
+// using whatever::symbol;.
+
+
+namespace boost_ns
+{
+ template <class T>
+ T* get_pointer(T* p)
+ { return p; }
+
+ namespace inner2
+ {
+ template <class T>
+ struct X {};
+
+ template <class T>
+ T* get_pointer(X<T>)
+ { return 0; }
+ }
+}
+
+namespace user_ns
+{
+ template <class T>
+ struct Y{};
+
+ template <class T>
+ T* get_pointer(user_ns::Y<T>)
+ { return 0; }
+
+ template <class T>
+ int f(T x)
+ {
+ // use this as a workaround:
+ //using namespace boost;
+ // this statement breaks ADL:
+ using boost_ns::get_pointer; // conforming compilers require
+ // this one to find the auto_ptr
+ // and T* overloads
+ return get_pointer(x) == 0;
+ }
+}
+
+namespace boost_function_scope_using_declaration_breaks_adl{
+
+int test()
+{
+ int i;
+ typedef void* pv;
+ i = user_ns::f(pv());
+ i = user_ns::f(boost_ns::inner2::X<int>());
+ return 0;
+}
+
+}
+
+
+
+
+
+
diff --git a/libs/config/test/boost_no_using_decl_overld.ipp b/libs/config/test/boost_no_using_decl_overld.ipp
new file mode 100644
index 0000000000..c0174636e2
--- /dev/null
+++ b/libs/config/test/boost_no_using_decl_overld.ipp
@@ -0,0 +1,33 @@
+// (C) Copyright Eric Friedman 2002.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// MACRO: BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
+// TITLE: using declaration function overloads from a typename base
+// DESCRIPTION: The compiler will not accept a using declaration
+// that brings a function from a typename used as a base class
+// into a derived class if functions of the same name
+// are present in the derived class.
+
+namespace boost_no_using_declaration_overloads_from_typename_base {
+
+struct base
+{
+ static void f() { }
+};
+
+template <typename T, typename Base>
+struct using_overloads_from_typename_base : Base
+{
+ using Base::f;
+ static T f(const T& t) { return t; }
+};
+
+int test()
+{
+ using_overloads_from_typename_base<int,base>::f();
+ return using_overloads_from_typename_base<int,base>::f(0);
+}
+
+}
diff --git a/libs/config/test/boost_no_using_template.ipp b/libs/config/test/boost_no_using_template.ipp
new file mode 100644
index 0000000000..73e8b9f30a
--- /dev/null
+++ b/libs/config/test/boost_no_using_template.ipp
@@ -0,0 +1,47 @@
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_NO_USING_TEMPLATE
+// TITLE: using template declarations
+// DESCRIPTION: The compiler will not accept a using declaration
+// that imports a class or function template
+// into a named namespace. Probably Borland/MSVC6 specific.
+
+template <class T>
+int global_foo(T)
+{
+ return 0;
+}
+
+template <class T, class U = void>
+struct op
+{
+ friend op<T,U> operator +(const op&, const op&)
+ {
+ return op();
+ };
+};
+
+namespace boost_no_using_template{
+
+using ::global_foo;
+using ::op;
+
+int test()
+{
+ boost_no_using_template::op<int, int> a;
+ boost_no_using_template::op<int, int> b;
+ a+b;
+ return boost_no_using_template::global_foo(0);
+}
+
+}
+
+
+
+
+
diff --git a/libs/config/test/boost_no_variadic_macros.ipp b/libs/config/test/boost_no_variadic_macros.ipp
new file mode 100644
index 0000000000..7df683b3ef
--- /dev/null
+++ b/libs/config/test/boost_no_variadic_macros.ipp
@@ -0,0 +1,64 @@
+// Copyright (C) 2010 Edward Diener
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_NO_VARIADIC_MACROS
+// TITLE: C++0x variadic macros unavailable
+// DESCRIPTION: The compiler does not support C++0x variadic macros
+
+// This is a simple test
+
+#define TEST_VARIADIC_MACRO_SIMPLE(avalue,...) __VA_ARGS__
+
+/*
+
+ This is a more complicated test, which Steve Watanabe graciously
+ supplied, when I asked if it were possible to strip the parantheses
+ from a macro argument. I have changed the names somewhat to prevent
+ any common clashes with other macros in the config testing suite
+ by prepending to each macro name TEST_VARIADIC_MACRO_.
+
+ You may find this test overdone and may want to remove it.
+
+*/
+
+#define TEST_VARIADIC_MACRO_CAT(x, y) TEST_VARIADIC_MACRO_CAT_I(x, y)
+#define TEST_VARIADIC_MACRO_CAT_I(x, y) x ## y
+
+#define TEST_VARIADIC_MACRO_APPLY(macro, args) TEST_VARIADIC_MACRO_APPLY_I(macro, args)
+#define TEST_VARIADIC_MACRO_APPLY_I(macro, args) macro args
+
+#define TEST_VARIADIC_MACRO_STRIP_PARENS(x) TEST_VARIADIC_MACRO_EVAL((TEST_VARIADIC_MACRO_STRIP_PARENS_I x), x)
+#define TEST_VARIADIC_MACRO_STRIP_PARENS_I(...) 1,1
+
+#define TEST_VARIADIC_MACRO_EVAL(test, x) TEST_VARIADIC_MACRO_EVAL_I(test, x)
+#define TEST_VARIADIC_MACRO_EVAL_I(test, x) TEST_VARIADIC_MACRO_MAYBE_STRIP_PARENS(TEST_VARIADIC_MACRO_TEST_ARITY test, x)
+
+#define TEST_VARIADIC_MACRO_TEST_ARITY(...) TEST_VARIADIC_MACRO_APPLY(TEST_VARIADIC_MACRO_TEST_ARITY_I, (__VA_ARGS__, 2, 1))
+#define TEST_VARIADIC_MACRO_TEST_ARITY_I(a,b,c,...) c
+
+#define TEST_VARIADIC_MACRO_MAYBE_STRIP_PARENS(cond, x) TEST_VARIADIC_MACRO_MAYBE_STRIP_PARENS_I(cond, x)
+#define TEST_VARIADIC_MACRO_MAYBE_STRIP_PARENS_I(cond, x) TEST_VARIADIC_MACRO_CAT(TEST_VARIADIC_MACRO_MAYBE_STRIP_PARENS_, cond)(x)
+
+#define TEST_VARIADIC_MACRO_MAYBE_STRIP_PARENS_1(x) x
+#define TEST_VARIADIC_MACRO_MAYBE_STRIP_PARENS_2(x) TEST_VARIADIC_MACRO_APPLY(TEST_VARIADIC_MACRO_MAYBE_STRIP_PARENS_2_I, x)
+#define TEST_VARIADIC_MACRO_MAYBE_STRIP_PARENS_2_I(...) __VA_ARGS__
+
+namespace boost_no_variadic_macros {
+
+void quiet_warning(int){}
+
+template<TEST_VARIADIC_MACRO_STRIP_PARENS((typename T,int))> struct test_variadic_macro_class {};
+
+int test()
+{
+
+ int x = TEST_VARIADIC_MACRO_STRIP_PARENS(3);
+ quiet_warning(x);
+ return 0;
+}
+
+}
diff --git a/libs/config/test/boost_no_variadic_templates.ipp b/libs/config/test/boost_no_variadic_templates.ipp
new file mode 100644
index 0000000000..68af2d71eb
--- /dev/null
+++ b/libs/config/test/boost_no_variadic_templates.ipp
@@ -0,0 +1,21 @@
+// Copyright (C) 2007 Douglas Gregor
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_NO_VARIADIC_TEMPLATES
+// TITLE: C++0x variadic templates unavailable
+// DESCRIPTION: The compiler does not support C++0x variadic templates
+
+namespace boost_no_variadic_templates {
+
+template<typename... Elements> struct tuple {};
+
+int test()
+{
+ return 0;
+}
+
+}
diff --git a/libs/config/test/boost_no_void_returns.ipp b/libs/config/test/boost_no_void_returns.ipp
new file mode 100644
index 0000000000..920c44bfa5
--- /dev/null
+++ b/libs/config/test/boost_no_void_returns.ipp
@@ -0,0 +1,34 @@
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_NO_VOID_RETURNS
+// TITLE: no void returns
+// DESCRIPTION: The compiler does not allow a void function
+// to return the result of calling another void
+// function.
+//
+// void f() {}
+// void g() { return f(); }
+
+
+namespace boost_no_void_returns{
+
+void f() {}
+
+void g() { return f(); }
+
+int test()
+{
+ return 0;
+}
+
+}
+
+
+
+
+
diff --git a/libs/config/test/boost_no_wchar_t.ipp b/libs/config/test/boost_no_wchar_t.ipp
new file mode 100644
index 0000000000..8a9825845d
--- /dev/null
+++ b/libs/config/test/boost_no_wchar_t.ipp
@@ -0,0 +1,45 @@
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_NO_INTRINSIC_WCHAR_T
+// TITLE: intrinsic wchar_t
+// DESCRIPTION: The C++ implementation does not provide wchar_t,
+// or it is really a synonym for another integral type.
+// Use this symbol to decide whether it is appropriate
+// to explicitly specialize a template on wchar_t if there
+// is already a specialization for other integer types.
+
+#ifndef BOOST_NO_CWCHAR
+#include <wchar.h>
+#endif
+
+namespace boost_no_intrinsic_wchar_t{
+
+template <class T>
+struct is_int{ int i; };
+
+template <> struct is_int<unsigned char>{ int i; };
+template <> struct is_int<signed char>{ int i; };
+template <> struct is_int<char>{ int i; };
+template <> struct is_int<unsigned short>{ int i; };
+template <> struct is_int<short>{ int i; };
+template <> struct is_int<unsigned int>{ int i; };
+template <> struct is_int<int>{ int i; };
+template <> struct is_int<unsigned long>{ int i; };
+template <> struct is_int<long>{ int i; };
+template <> struct is_int<wchar_t>{ int i; };
+
+int test()
+{
+ return 0;
+}
+
+}
+
+
+
+
diff --git a/libs/config/test/config_info.cpp b/libs/config/test/config_info.cpp
new file mode 100644
index 0000000000..f565ec5742
--- /dev/null
+++ b/libs/config/test/config_info.cpp
@@ -0,0 +1,1141 @@
+// Boost config.hpp configuration test program file -----------------------//
+
+// (C) Copyright John Maddock 2001 - 2003.
+// (C) Copyright Jens Maurer 2001.
+// (C) Copyright Peter Dimov 2001.
+// (C) Copyright Darin Adler 2001.
+// (C) Copyright Beman Dawes 2002.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+//
+// Revision $Id: config_info.cpp 76122 2011-12-23 17:17:31Z johnmaddock $
+//
+
+#include <boost/config.hpp>
+#include <boost/version.hpp>
+#include <iostream>
+#include <iomanip>
+#include <string.h>
+#include <limits.h>
+#include <stdlib.h>
+#include <stddef.h>
+
+#ifdef BOOST_HAS_UNISTD_H
+#include <unistd.h>
+#endif
+
+#if defined(__MINGW32__)
+# include <_mingw.h>
+#endif
+
+static unsigned int indent = 4;
+static unsigned int width = 40;
+
+using std::cout;
+using std::istream;
+
+void print_macro(const char* name, const char* value)
+{
+ // if name == value+1 then then macro is not defined,
+ // in which case we don't print anything:
+ if(0 != strcmp(name, value+1))
+ {
+ for(unsigned i = 0; i < indent; ++i) std::cout.put(' ');
+ std::cout << std::setw(width);
+ cout.setf(istream::left, istream::adjustfield);
+ std::cout << name;
+ if(value[1])
+ {
+ // macro has a value:
+ std::cout << value << "\n";
+ }
+ else
+ {
+ // macro is defined but has no value:
+ std::cout << " [no value]\n";
+ }
+ }
+}
+
+#define PRINT_MACRO(X) print_macro(#X, BOOST_STRINGIZE(=X))
+
+template <class T>
+void print_expression(const char* expression, T val)
+{
+ for(unsigned i = 0; i < indent; ++i) std::cout.put(' ');
+ std::cout << std::setw(width);
+ std::cout.setf(istream::left, istream::adjustfield);
+ std::cout << expression << "=" << val << std::endl;
+}
+
+#define PRINT_EXPRESSION(E) print_expression(#E, E);
+
+template <class T>
+void print_byte_order(const char* what, T /* t */ )
+{
+ T val = 0;
+ unsigned i;
+ for(i = 1; i < sizeof(T); ++i)
+ {
+ val |= (CHAR_BIT * static_cast<T>(i)) << (CHAR_BIT * static_cast<T>(i));
+ }
+ const char* p = reinterpret_cast<const char*>(&val);
+
+ for(i = 0; i < indent; ++i) std::cout.put(' ');
+ std::cout << std::setw(width);
+ std::cout.setf(istream::left, istream::adjustfield);
+ std::cout << what << "=";
+ for(i = 0; i < sizeof(T); ++i)
+ {
+ std::cout << (int)p[i] << " ";
+ }
+ std::cout << std::endl;
+}
+
+#define PRINT_ORDER(T) print_byte_order(BOOST_STRINGIZE(byte order for type T), T())
+
+template <class T>
+void print_sign(const char* what, T t)
+{
+ t = static_cast<T>(-1); // cast suppresses warnings
+ for(unsigned i = 0; i < indent; ++i) std::cout.put(' ');
+ std::cout << "Type " << what << " is " << ((t > 0) ? "unsigned" : "signed") << std::endl;
+}
+
+#define PRINT_SIGN(T) print_sign(#T, T())
+
+
+void print_compiler_macros()
+{
+ std::cout << BOOST_COMPILER << "\n";
+ // Borland options:
+ PRINT_MACRO(__BORLANDC__);
+ PRINT_MACRO(__CDECL__);
+ PRINT_MACRO(_CHAR_UNSIGNED);
+ PRINT_MACRO(__CODEGUARD__);
+ PRINT_MACRO(__CONSOLE__);
+ PRINT_MACRO(_CPPUNWIND);
+ PRINT_MACRO(__cplusplus);
+ PRINT_MACRO(__FLAT__);
+ PRINT_MACRO(__FUNC__);
+ PRINT_MACRO(_M_IX86);
+ PRINT_MACRO(__MSDOS__);
+ PRINT_MACRO(__MT__ );
+ PRINT_MACRO(__PASCAL__);
+ PRINT_MACRO(__STDC__);
+ PRINT_MACRO(__TLS__);
+ PRINT_MACRO(_WCHAR_T);
+ PRINT_MACRO(_Windows);
+ PRINT_MACRO(__WIN32__);
+ PRINT_MACRO(_WIN32);
+ PRINT_MACRO(_WIN64);
+ PRINT_MACRO(_WIN32_WCE);
+ PRINT_MACRO(WIN32);
+ PRINT_MACRO(_RTLDLL);
+ PRINT_MACRO(__DEBUG);
+
+// Internal MSVC 7 error workaround (Peter Dimov)
+
+#ifndef _NATIVE_WCHAR_T_DEFINED
+ PRINT_MACRO(_WCHAR_T_DEFINED);
+#endif
+ // MSVC macros:
+ PRINT_MACRO(_CPPRTTI);
+ PRINT_MACRO(_DLL);
+ PRINT_MACRO(_M_ALPHA);
+ PRINT_MACRO(_M_MPPC);
+ PRINT_MACRO(_M_MRX000);
+ PRINT_MACRO(_M_PPC);
+ PRINT_MACRO(_MFC_VER);
+ PRINT_MACRO(_MSC_EXTENSIONS);
+ PRINT_MACRO(_MSC_VER);
+ PRINT_MACRO(_MSC_FULL_VER);
+ PRINT_MACRO(_MT);
+ PRINT_MACRO(_NATIVE_WCHAR_T_DEFINED);
+ // GNUC options:
+ PRINT_MACRO(__GNUC__);
+ PRINT_MACRO(__GNUC_MINOR__);
+ PRINT_MACRO(__GNUC_PATCHLEVEL__);
+ PRINT_MACRO(__STDC_VERSION__);
+ PRINT_MACRO(__GNUG__);
+ PRINT_MACRO(__STRICT_ANSI__);
+ PRINT_MACRO(__GXX_EXPERIMENTAL_CXX0X__);
+ PRINT_MACRO(__VERSION__);
+ PRINT_MACRO(__OPTIMIZE__);
+ PRINT_MACRO(__CHAR_UNSIGNED__);
+ PRINT_MACRO(__REGISTER_PREFIX__);
+ PRINT_MACRO(__USER_LABEL_PREFIX__);
+ PRINT_MACRO(__GNUPRO__);
+ PRINT_MACRO(__EXCEPTIONS);
+ PRINT_MACRO(__FreeBSD__);
+ PRINT_MACRO(__FreeBSD_cc_version);
+ PRINT_MACRO(__ELF__);
+ PRINT_MACRO(__GNUPRO__);
+ PRINT_MACRO(unix);
+ PRINT_MACRO(bsd);
+ PRINT_MACRO(vax);
+ PRINT_MACRO(mc68000);
+ PRINT_MACRO(m68k);
+ PRINT_MACRO(M68020);
+ PRINT_MACRO(_AM29K);
+ PRINT_MACRO(ns32000);
+ PRINT_MACRO(sun);
+ PRINT_MACRO(pyr);
+ PRINT_MACRO(sequent);
+ PRINT_MACRO(__i386__);
+ PRINT_MACRO(__sparc);
+ PRINT_MACRO(__sparc__);
+ PRINT_MACRO(__powerpc__);
+ PRINT_MACRO(__hppa);
+ PRINT_MACRO(__CYGWIN__);
+ PRINT_MACRO(__MINGW32__);
+ // HP aCC:
+ PRINT_MACRO(__HP_aCC);
+ PRINT_MACRO(_HPACC_);
+ PRINT_MACRO(__LP64__);
+ PRINT_MACRO(__RISC2_0__);
+ PRINT_MACRO(__STDCPP__);
+ PRINT_MACRO(__hppa);
+ PRINT_MACRO(__hpux);
+ PRINT_MACRO(__hp9000s800);
+ PRINT_MACRO(__hp9000s700);
+ PRINT_MACRO(_PA_RISC1_1);
+ PRINT_MACRO(__HPUX_SOURCE);
+ PRINT_MACRO(_INCLUDE__STDC_A1_SOURCE);
+ // SGI IRIX:
+ PRINT_MACRO(__sgi);
+ PRINT_MACRO(_COMPILER_VERSION);
+ // Sunpro:
+ PRINT_MACRO(__SUNPRO_CC);
+ PRINT_MACRO(__SUNPRO_CC_COMPAT);
+ PRINT_MACRO(__BUILTIN_VA_ARG_INCR);
+ PRINT_MACRO(__sun);
+ PRINT_MACRO(__SVR4);
+ PRINT_MACRO(__unix);
+ PRINT_MACRO(__sparcv9);
+ PRINT_MACRO(__i386);
+ PRINT_MACRO(i386);
+ // Metrowerks
+ PRINT_MACRO(__MWERKS__);
+ PRINT_MACRO(__MSL__);
+ PRINT_MACRO(__MSL_CPP__);
+ PRINT_MACRO(__A5__);
+ PRINT_MACRO(__embedded_cplusplus);
+ PRINT_MACRO(__fourbyteints__);
+ PRINT_MACRO(__IEEEdoubles__);
+ PRINT_MACRO(__MC68K__);
+ PRINT_MACRO(__MC68020__);
+ PRINT_MACRO(__MC68881__);
+ PRINT_MACRO(__MIPS__);
+ PRINT_MACRO(__MIPS_ISA2__);
+ PRINT_MACRO(__MIPS_ISA3__);
+ PRINT_MACRO(__MIPS_ISA4__);
+ PRINT_MACRO(__MWBROWSER__);
+ PRINT_MACRO(__profile__);
+ PRINT_MACRO(__powerc);
+ PRINT_MACRO(_powerc);
+ PRINT_MACRO(__POWERPC__);
+ PRINT_MACRO(macintosh);
+ PRINT_MACRO(__MACH__);
+ PRINT_MACRO(__APPLE__);
+ PRINT_MACRO(__APPLE_CC__);
+ // MPW (MrCpp and SCpp)
+ PRINT_MACRO(__MRC__);
+ PRINT_MACRO(__SC__);
+ PRINT_MACRO(__FPCE__);
+ PRINT_MACRO(__FPCE_IEEE__);
+ PRINT_MACRO(MPW_CPLUS);
+ PRINT_MACRO(MPW_C);
+ PRINT_MACRO(__MC601);
+ PRINT_MACRO(__POWERPC);
+ PRINT_MACRO(__useAppleExts__);
+ PRINT_MACRO(powerc);
+ PRINT_MACRO(MC68000);
+ PRINT_MACRO(THINK_PLUS);
+ PRINT_MACRO(mc68881);
+ PRINT_MACRO(__FAR_CODE__);
+ PRINT_MACRO(__FAR_DATA__);
+ PRINT_MACRO(__CFM68K__);
+ // EDG
+ PRINT_MACRO(__EDG__);
+ PRINT_MACRO(__EDG_VERSION__);
+ PRINT_MACRO(c_plusplus); // indication for strict mode
+ PRINT_MACRO(_BOOL);
+ PRINT_MACRO(_EXPLICIT);
+ PRINT_MACRO(__SIGNED_CHARS__);
+ PRINT_MACRO(_TYPENAME);
+ PRINT_MACRO(_WCHAR_T);
+ PRINT_MACRO(__ARRAY_OPERATORS);
+ PRINT_MACRO(__EDG_ABI_COMPATIBILITY_VERSION);
+ PRINT_MACRO(__EDG_IMPLICIT_USING_STD);
+ PRINT_MACRO(__EDG_RUNTIME_USES_NAMESPACES);
+ PRINT_MACRO(__BOOL_DEFINED);
+ PRINT_MACRO(__RTTI);
+ PRINT_MACRO(__PLACEMENT_DELETE);
+ PRINT_MACRO(__NO_LONG_LONG);
+
+ // Intel options:
+ PRINT_MACRO(__INTEL__);
+ PRINT_MACRO(__ICC);
+ PRINT_MACRO(__ICL);
+ PRINT_MACRO(__ECC);
+ PRINT_MACRO(__INTEL_COMPILER);
+ PRINT_MACRO(__INITIAL_POINTER_SIZE);
+ PRINT_MACRO(_INTEGRAL_MAX_BITS);
+ PRINT_MACRO(__INTEL_COMPILER_BUILD_DATE);
+ PRINT_MACRO(__INTEL_MS_COMPAT_LEVEL);
+ PRINT_MACRO(__LONG_DOUBLE_SIZE__);
+ PRINT_MACRO(_M_X64);
+ PRINT_MACRO(_OPENMP);
+ PRINT_MACRO(_OPENMPT);
+ PRINT_MACRO(_PGO_INSTRUMENT);
+ PRINT_MACRO(__QMSPP_);
+
+ // Cray options:
+ PRINT_MACRO(_CRAYC);
+ PRINT_MACRO(_RELEASE);
+ PRINT_MACRO(cray);
+ PRINT_MACRO(CRAY);
+ PRINT_MACRO(CRAY1);
+ PRINT_MACRO(_CRAY1);
+ PRINT_MACRO(_CRAYMPP);
+ PRINT_MACRO(_CRAYT3E);
+ PRINT_MACRO(_CRAYIEEE);
+ PRINT_MACRO(_ADDR32);
+ PRINT_MACRO(_ADDR64);
+ PRINT_MACRO(_LD64);
+ PRINT_MACRO(_FASTMD);
+ PRINT_MACRO(_MAXVL);
+
+ // misc compilers not covered so far:
+ PRINT_MACRO(__USLC__);
+ PRINT_MACRO(__DECCXX);
+ PRINT_MACRO(__IBMCPP__);
+ PRINT_MACRO(_REENTRANT);
+ PRINT_MACRO(_PTHREADS);
+ PRINT_MACRO(__STDC_HOSTED__);
+ PRINT_MACRO(__COMO__);
+ PRINT_MACRO(__COMO_VERSION__);
+ PRINT_MACRO(__DM__);
+ PRINT_MACRO(__osf__);
+ PRINT_MACRO(__OSF__);
+ PRINT_MACRO(__QNXNTO__);
+ PRINT_MACRO(__QNX__);
+ PRINT_MACRO(_NTO_VERSION);
+ PRINT_MACRO(__OPEN64__);
+ PRINT_MACRO(__open64);
+}
+
+void print_stdlib_macros()
+{
+ std::cout << BOOST_STDLIB << std::endl;
+ #ifdef _RWSTD_VER
+ // Rogue Wave 2.x config options:
+ PRINT_MACRO(__NO_EDG_EXCEPTION_CLASSES);
+ PRINT_MACRO(_RWSTD_ALLOCATOR);
+ PRINT_MACRO(_RWSTD_BAD_ALLOC_DEFINED);
+ PRINT_MACRO(_RWSTD_BAD_EXCEPTION_DEFINED);
+ PRINT_MACRO(_RWSTD_BOUNDS_CHECKING);
+ PRINT_MACRO(_RWSTD_COMPILE_INSTANTIATE);
+ PRINT_MACRO(_RWSTD_DEFAULT_PRECISION);
+ PRINT_MACRO(_RWSTD_EXCEPTION_DEFINED);
+ PRINT_MACRO(_RWSTD_EXCEPTION_HANDLER_IN_STD);
+ PRINT_MACRO(_RWSTD_EXCEPTION_PREDEFINED);
+ PRINT_MACRO(_RWSTD_FLT_ROUNDS_IS_CONSTANT);
+ PRINT_MACRO(_RWSTD_LOCALIZED_ERRORS);
+ PRINT_MACRO(_RWSTD_MESSAGE);
+ PRINT_MACRO(_RWSTD_MUTEXATTR_DEFAULT);
+ PRINT_MACRO(_RWSTD_NO_ANSI_SPRINTF);
+ PRINT_MACRO(_RWSTD_NO_ARG_MATCH);
+ PRINT_MACRO(_RWSTD_NO_BAD_CAST);
+ PRINT_MACRO(_RWSTD_NO_BASE_CLASS_MATCH);
+ PRINT_MACRO(_RWSTD_NO_BOOL);
+ PRINT_MACRO(_RWSTD_NO_BUILTIN_CTOR);
+ PRINT_MACRO(_RWSTD_NO_CATOPEN_CATGETS);
+ PRINT_MACRO(_RWSTD_NO_CLASS_PARTIAL_SPEC);
+ PRINT_MACRO(_RWSTD_NO_COMPLEX_DEFAULT_TEMPLATES);
+ PRINT_MACRO(_RWSTD_NO_COMPLICATED_EXCEPTIONS);
+ PRINT_MACRO(_RWSTD_NO_COMPLICATED_TYPEDEF);
+ PRINT_MACRO(_RWSTD_NO_CONST_INST);
+ PRINT_MACRO(_RWSTD_NO_CTOR_RETURN);
+ PRINT_MACRO(_RWSTD_NO_DEFAULT_FOR_TPARAM);
+ PRINT_MACRO(_RWSTD_NO_DEFAULT_TEMPLATE_ARGS);
+ PRINT_MACRO(_RWSTD_NO_DESTROY_BUILTIN);
+ PRINT_MACRO(_RWSTD_NO_DESTROY_NONBUILTIN);
+ PRINT_MACRO(_RWSTD_NO_EMBEDDED_TYPEDEF);
+ PRINT_MACRO(_RWSTD_NO_EX_SPEC);
+ PRINT_MACRO(_RWSTD_NO_EXCEPTIONS);
+ PRINT_MACRO(_RWSTD_NO_EXPLICIT);
+ PRINT_MACRO(_RWSTD_NO_EXPLICIT_ARG);
+ PRINT_MACRO(_RWSTD_NO_EXPLICIT_FUNC_INSTANTIATION);
+ PRINT_MACRO(_RWSTD_NO_EXPLICIT_INSTANTIATION);
+ PRINT_MACRO(_RWSTD_NO_EXTENSION);
+ PRINT_MACRO(_RWSTD_NO_FORWARD_SPECIALIZATIONS);
+ PRINT_MACRO(_RWSTD_NO_FPOS_T);
+ PRINT_MACRO(_RWSTD_NO_FRIEND_TEMPLATES);
+ PRINT_MACRO(_RWSTD_NO_FUNC_PARTIAL_SPEC);
+ PRINT_MACRO(_RWSTD_NO_GETTIMEOFDAY);
+ PRINT_MACRO(_RWSTD_NO_GLOBAL_TZ);
+ PRINT_MACRO(_RWSTD_NO_INHERITED_TYPEDEFS);
+ PRINT_MACRO(_RWSTD_NO_INIT_CONST_TEMPLATE_REF_ARG);
+ PRINT_MACRO(_RWSTD_NO_INT_TYPEDEF);
+ PRINT_MACRO(_RWSTD_NO_LDIV);
+ PRINT_MACRO(_RWSTD_NO_LEADING_UNDERSCORE);
+ PRINT_MACRO(_RWSTD_NO_LOCALE);
+ PRINT_MACRO(_RWSTD_NO_LONG_NAME);
+ PRINT_MACRO(_RWSTD_NO_LONGDOUBLE);
+ PRINT_MACRO(_RWSTD_NO_MBSTATE_T);
+ PRINT_MACRO(_RWSTD_NO_MEM_CLASS_TEMPLATES);
+ PRINT_MACRO(_RWSTD_NO_MEMBER_TEMPLATES);
+ PRINT_MACRO(_RWSTD_NO_MEMBER_TYPE_TPARAM);
+ PRINT_MACRO(_RWSTD_NO_MEMBER_WO_DEF_CTOR);
+ PRINT_MACRO(_RWSTD_NO_MEMMOVE);
+ PRINT_MACRO(_RWSTD_NO_MULTI_DIM_ARRAY);
+ PRINT_MACRO(_RWSTD_NO_MUTABLE);
+ PRINT_MACRO(_RWSTD_NO_NAME_INJECTION);
+ PRINT_MACRO(_RWSTD_NO_NAMESPACE);
+ PRINT_MACRO(_RWSTD_NO_NESTING_TEMPLATES);
+ PRINT_MACRO(_RWSTD_NO_NEW_BRACKETS);
+ PRINT_MACRO(_RWSTD_NO_NEW_DECL);
+ PRINT_MACRO(_RWSTD_NO_NEW_HEADER);
+ PRINT_MACRO(_RWSTD_NO_NEW_TEMPLATE_SYNTAX);
+ PRINT_MACRO(_RWSTD_NO_NONCLASS_ARROW_RETURN);
+ PRINT_MACRO(_RWSTD_NO_NONTYPE_ARGS);
+ PRINT_MACRO(_RWSTD_NO_ONLY_NEEDED_INSTANTIATION);
+ PRINT_MACRO(_RWSTD_NO_OVERLOAD_C_POW);
+ PRINT_MACRO(_RWSTD_NO_OVERLOAD_OF_TEMPLATE_FUNCTION);
+ PRINT_MACRO(_RWSTD_NO_OVERLOAD_WCHAR);
+ PRINT_MACRO(_RWSTD_NO_PART_SPEC_OVERLOAD);
+ PRINT_MACRO(_RWSTD_NO_RET_TEMPLATE);
+ PRINT_MACRO(_RWSTD_NO_SIMPLE_DEFAULT_TEMPLATES);
+ PRINT_MACRO(_RWSTD_NO_STATIC_CAST);
+ PRINT_MACRO(_RWSTD_NO_STATIC_DEF);
+ PRINT_MACRO(_RWSTD_NO_STATIC_DEF2);
+ PRINT_MACRO(_RWSTD_NO_STATIC_DEF3);
+ PRINT_MACRO(_RWSTD_NO_STATIC_MEM_DEF);
+ PRINT_MACRO(_RWSTD_NO_STI_SIMPLE);
+ PRINT_MACRO(_RWSTD_NO_STI_TEMPLATE);
+ PRINT_MACRO(_RWSTD_NO_STREAM_LONG_DOUBLE);
+ PRINT_MACRO(_RWSTD_NO_STRFTIME_CAPC);
+ PRINT_MACRO(_RWSTD_NO_STRICT_TEMPLATE_INSTANTIATE);
+ PRINT_MACRO(_RWSTD_NO_SWPRINTF);
+ PRINT_MACRO(_RWSTD_NO_TEMPLATE_ON_RETURN_TYPE);
+ PRINT_MACRO(_RWSTD_NO_TEMPLATE_TEMPLATE);
+ PRINT_MACRO(_RWSTD_NO_THREADS);
+ PRINT_MACRO(_RWSTD_NO_THROW_SPEC_ON_NEW);
+ PRINT_MACRO(_RWSTD_NO_THROW_WITH_SHARED);
+ PRINT_MACRO(_RWSTD_NO_TYPEDEF_INST);
+ PRINT_MACRO(_RWSTD_NO_TYPEDEF_OVERLOAD);
+ PRINT_MACRO(_RWSTD_NO_TYPENAME);
+ PRINT_MACRO(_RWSTD_NO_UNDEFINED_FRIEND);
+ PRINT_MACRO(_RWSTD_NO_UNINITIALIZED_STATIC_DEF);
+ PRINT_MACRO(_RWSTD_NO_WCHAR_H);
+ PRINT_MACRO(_RWSTD_NO_WCTYPE_H);
+ PRINT_MACRO(_RWSTD_NO_WIDE_CHAR);
+ PRINT_MACRO(_RWSTD_NO_WINT_TYPE);
+ PRINT_MACRO(_RWSTD_NO_WSTR);
+ PRINT_MACRO(_RWSTD_NOT_ALL_WSTR_CFUNCTIONS);
+ PRINT_MACRO(_RWSTD_POSIX_D10_THREADS);
+ PRINT_MACRO(_RWSTD_POSIX_THREADS);
+ PRINT_MACRO(_RWSTD_REQUIRES_IEEEFP);
+ PRINT_MACRO(_RWSTD_SOLARIS_THREADS);
+ PRINT_MACRO(_RWSTD_STRUCT_TM_TZ);
+ PRINT_MACRO(_RWSTD_WIDE_STRING_NULL_PROBLEM);
+ #elif defined(__STD_RWCOMPILER_H__)
+ // Rogue Wave 1.x std lib:
+ PRINT_MACRO(__NO_EDG_EXCEPTION_CLASSES);
+ PRINT_MACRO(RWSTD_ALLOCATOR);
+ PRINT_MACRO(RWSTD_BAD_ALLOC_DEFINED);
+ PRINT_MACRO(RWSTD_BAD_EXCEPTION_DEFINED);
+ PRINT_MACRO(RWSTD_BOUNDS_CHECKING);
+ PRINT_MACRO(RWSTD_COMPILE_INSTANTIATE);
+ PRINT_MACRO(RWSTD_DEFAULT_PRECISION);
+ PRINT_MACRO(RWSTD_EXCEPTION_DEFINED);
+ PRINT_MACRO(RWSTD_EXCEPTION_HANDLER_IN_STD);
+ PRINT_MACRO(RWSTD_EXCEPTION_PREDEFINED);
+ PRINT_MACRO(RWSTD_FLT_ROUNDS_IS_CONSTANT);
+ PRINT_MACRO(RWSTD_LOCALIZED_ERRORS);
+ PRINT_MACRO(RWSTD_MESSAGE);
+ PRINT_MACRO(RWSTD_MUTEXATTR_DEFAULT);
+ PRINT_MACRO(RWSTD_NO_ANSI_SPRINTF);
+ PRINT_MACRO(RWSTD_NO_ARG_MATCH);
+ PRINT_MACRO(RWSTD_NO_BAD_CAST);
+ PRINT_MACRO(RWSTD_NO_BASE_CLASS_MATCH);
+ PRINT_MACRO(RWSTD_NO_BOOL);
+ PRINT_MACRO(RWSTD_NO_BUILTIN_CTOR);
+ PRINT_MACRO(RWSTD_NO_CATOPEN_CATGETS);
+ PRINT_MACRO(RWSTD_NO_CLASS_PARTIAL_SPEC);
+ PRINT_MACRO(RWSTD_NO_COMPLEX_DEFAULT_TEMPLATES);
+ PRINT_MACRO(RWSTD_NO_COMPLICATED_EXCEPTIONS);
+ PRINT_MACRO(RWSTD_NO_COMPLICATED_TYPEDEF);
+ PRINT_MACRO(RWSTD_NO_CONST_INST);
+ PRINT_MACRO(RWSTD_NO_CTOR_RETURN);
+ PRINT_MACRO(RWSTD_NO_DEFAULT_FOR_TPARAM);
+ PRINT_MACRO(RWSTD_NO_DEFAULT_TEMPLATE_ARGS);
+ PRINT_MACRO(RWSTD_NO_DESTROY_BUILTIN);
+ PRINT_MACRO(RWSTD_NO_DESTROY_NONBUILTIN);
+ PRINT_MACRO(RWSTD_NO_EMBEDDED_TYPEDEF);
+ PRINT_MACRO(RWSTD_NO_EX_SPEC);
+ PRINT_MACRO(RWSTD_NO_EXCEPTIONS);
+ PRINT_MACRO(RWSTD_NO_EXPLICIT);
+ PRINT_MACRO(RWSTD_NO_EXPLICIT_ARG);
+ PRINT_MACRO(RWSTD_NO_EXPLICIT_FUNC_INSTANTIATION);
+ PRINT_MACRO(RWSTD_NO_EXPLICIT_INSTANTIATION);
+ PRINT_MACRO(RWSTD_NO_EXTENSION);
+ PRINT_MACRO(RWSTD_NO_FORWARD_SPECIALIZATIONS);
+ PRINT_MACRO(RWSTD_NO_FPOS_T);
+ PRINT_MACRO(RWSTD_NO_FRIEND_TEMPLATES);
+ PRINT_MACRO(RWSTD_NO_FUNC_PARTIAL_SPEC);
+ PRINT_MACRO(RWSTD_NO_GETTIMEOFDAY);
+ PRINT_MACRO(RWSTD_NO_GLOBAL_TZ);
+ PRINT_MACRO(RWSTD_NO_INHERITED_TYPEDEFS);
+ PRINT_MACRO(RWSTD_NO_INIT_CONST_TEMPLATE_REF_ARG);
+ PRINT_MACRO(RWSTD_NO_INT_TYPEDEF);
+ PRINT_MACRO(RWSTD_NO_LDIV);
+ PRINT_MACRO(RWSTD_NO_LEADING_UNDERSCORE);
+ PRINT_MACRO(RWSTD_NO_LOCALE);
+ PRINT_MACRO(RWSTD_NO_LONG_NAME);
+ PRINT_MACRO(RWSTD_NO_LONGDOUBLE);
+ PRINT_MACRO(RWSTD_NO_MBSTATE_T);
+ PRINT_MACRO(RWSTD_NO_MEM_CLASS_TEMPLATES);
+ PRINT_MACRO(RWSTD_NO_MEMBER_TEMPLATES);
+ PRINT_MACRO(RWSTD_NO_MEMBER_TYPE_TPARAM);
+ PRINT_MACRO(RWSTD_NO_MEMBER_WO_DEF_CTOR);
+ PRINT_MACRO(RWSTD_NO_MEMMOVE);
+ PRINT_MACRO(RWSTD_NO_MULTI_DIM_ARRAY);
+ PRINT_MACRO(RWSTD_NO_MUTABLE);
+ PRINT_MACRO(RWSTD_NO_NAME_INJECTION);
+ PRINT_MACRO(RWSTD_NO_NAMESPACE);
+ PRINT_MACRO(RWSTD_NO_NESTING_TEMPLATES);
+ PRINT_MACRO(RWSTD_NO_NEW_BRACKETS);
+ PRINT_MACRO(RWSTD_NO_NEW_DECL);
+ PRINT_MACRO(RWSTD_NO_NEW_HEADER);
+ PRINT_MACRO(RWSTD_NO_NEW_TEMPLATE_SYNTAX);
+ PRINT_MACRO(RWSTD_NO_NONCLASS_ARROW_RETURN);
+ PRINT_MACRO(RWSTD_NO_NONTYPE_ARGS);
+ PRINT_MACRO(RWSTD_NO_ONLY_NEEDED_INSTANTIATION);
+ PRINT_MACRO(RWSTD_NO_OVERLOAD_C_POW);
+ PRINT_MACRO(RWSTD_NO_OVERLOAD_OF_TEMPLATE_FUNCTION);
+ PRINT_MACRO(RWSTD_NO_OVERLOAD_WCHAR);
+ PRINT_MACRO(RWSTD_NO_PART_SPEC_OVERLOAD);
+ PRINT_MACRO(RWSTD_NO_RET_TEMPLATE);
+ PRINT_MACRO(RWSTD_NO_SIMPLE_DEFAULT_TEMPLATES);
+ PRINT_MACRO(RWSTD_NO_STATIC_CAST);
+ PRINT_MACRO(RWSTD_NO_STATIC_DEF);
+ PRINT_MACRO(RWSTD_NO_STATIC_DEF2);
+ PRINT_MACRO(RWSTD_NO_STATIC_DEF3);
+ PRINT_MACRO(RWSTD_NO_STATIC_MEM_DEF);
+ PRINT_MACRO(RWSTD_NO_STI_SIMPLE);
+ PRINT_MACRO(RWSTD_NO_STI_TEMPLATE);
+ PRINT_MACRO(RWSTD_NO_STREAM_LONG_DOUBLE);
+ PRINT_MACRO(RWSTD_NO_STRFTIME_CAPC);
+ PRINT_MACRO(RWSTD_NO_STRICT_TEMPLATE_INSTANTIATE);
+ PRINT_MACRO(RWSTD_NO_SWPRINTF);
+ PRINT_MACRO(RWSTD_NO_TEMPLATE_ON_RETURN_TYPE);
+ PRINT_MACRO(RWSTD_NO_TEMPLATE_TEMPLATE);
+ PRINT_MACRO(RWSTD_NO_THREADS);
+ PRINT_MACRO(RWSTD_NO_THROW_SPEC_ON_NEW);
+ PRINT_MACRO(RWSTD_NO_THROW_WITH_SHARED);
+ PRINT_MACRO(RWSTD_NO_TYPEDEF_INST);
+ PRINT_MACRO(RWSTD_NO_TYPEDEF_OVERLOAD);
+ PRINT_MACRO(RWSTD_NO_TYPENAME);
+ PRINT_MACRO(RWSTD_NO_UNDEFINED_FRIEND);
+ PRINT_MACRO(RWSTD_NO_UNINITIALIZED_STATIC_DEF);
+ PRINT_MACRO(RWSTD_NO_WCHAR_H);
+ PRINT_MACRO(RWSTD_NO_WCTYPE_H);
+ PRINT_MACRO(RWSTD_NO_WIDE_CHAR);
+ PRINT_MACRO(RWSTD_NO_WINT_TYPE);
+ PRINT_MACRO(RWSTD_NO_WSTR);
+ PRINT_MACRO(RWSTD_NOT_ALL_WSTR_CFUNCTIONS);
+ PRINT_MACRO(RWSTD_POSIX_D10_THREADS);
+ PRINT_MACRO(RWSTD_POSIX_THREADS);
+ PRINT_MACRO(RWSTD_REQUIRES_IEEEFP);
+ PRINT_MACRO(RWSTD_SOLARIS_THREADS);
+ PRINT_MACRO(RWSTD_STRUCT_TM_TZ);
+ PRINT_MACRO(RWSTD_WIDE_STRING_NULL_PROBLEM);
+ #endif
+ // Dinkumware options:
+ PRINT_MACRO(_CPPLIB_VER);
+ PRINT_MACRO(_GLOBAL_USING);
+ PRINT_MACRO(_HAS_EXCEPTIONS);
+ PRINT_MACRO(_HAS_MEMBER_TEMPLATES_REBIND);
+ PRINT_MACRO(_HAS_TEMPLATE_PARTIAL_ORDERING);
+ // STLPort and generic SGI STL options:
+ PRINT_MACRO(__SGI_STL_NO_ARROW_OPERATOR);
+ PRINT_MACRO(__SGI_STL_OWN_IOSTREAMS);
+ PRINT_MACRO(__SGI_STL_PORT);
+ PRINT_MACRO(__STL_AUTOMATIC_TYPE_TRAITS);
+ PRINT_MACRO(__STL_BASE_MATCH_BUG);
+ PRINT_MACRO(__STL_BASE_TYPEDEF_BUG);
+ PRINT_MACRO(__STL_BASE_TYPEDEF_OUTSIDE_BUG);
+ PRINT_MACRO(__STL_BROKEN_USING_DIRECTIVE);
+ PRINT_MACRO(__STL_CONST_CONSTRUCTOR_BUG);
+ PRINT_MACRO(__STL_DEBUG);
+ PRINT_MACRO(__STL_DEBUG_ALLOC);
+ PRINT_MACRO(__STL_DEFAULT_CONSTRUCTOR_BUG);
+ PRINT_MACRO(__STL_DEFAULT_TYPE_PARAM);
+ PRINT_MACRO(__STL_DONT_REDEFINE_STD);
+ PRINT_MACRO(__STL_DONT_USE_BOOL_TYPEDEF);
+ PRINT_MACRO(__STL_HAS_NO_EXCEPTIONS);
+ PRINT_MACRO(__STL_HAS_NO_NAMESPACES);
+ PRINT_MACRO(__STL_HAS_NO_NEW_C_HEADERS);
+ PRINT_MACRO(__STL_HAS_NO_NEW_IOSTREAMS);
+ PRINT_MACRO(__STL_IMPORT_VENDOR_CSTD);
+ PRINT_MACRO(__STL_LIMITED_DEFAULT_TEMPLATES);
+ PRINT_MACRO(__STL_LINK_TIME_INSTANTIATION);
+ PRINT_MACRO(__STL_LONG_LONG);
+ PRINT_MACRO(__STL_LOOP_INLINE_PROBLEMS);
+ PRINT_MACRO(__STL_MEMBER_POINTER_PARAM_BUG);
+ PRINT_MACRO(__STL_NEED_EXPLICIT);
+ PRINT_MACRO(__STL_NEED_MUTABLE);
+ PRINT_MACRO(__STL_NEED_TYPENAME);
+ PRINT_MACRO(__STL_NESTED_TYPE_PARAM_BUG);
+ PRINT_MACRO(__STL_NO_BAD_ALLOC);
+ PRINT_MACRO(__STL_NO_BOOL);
+ PRINT_MACRO(__STL_NO_CLASS_PARTIAL_SPECIALIZATION);
+ PRINT_MACRO(__STL_NO_CSTD_FUNCTION_IMPORTS);
+ PRINT_MACRO(__STL_NO_DEFAULT_NON_TYPE_PARAM);
+ PRINT_MACRO(__STL_NO_EXCEPTION_HEADER);
+ PRINT_MACRO(__STL_NO_EXCEPTION_SPEC);
+ PRINT_MACRO(__STL_NO_EXCEPTIONS);
+ PRINT_MACRO(__STL_NO_EXPLICIT_FUNCTION_TMPL_ARGS);
+ PRINT_MACRO(__STL_NO_FRIEND_TEMPLATES);
+ PRINT_MACRO(__STL_NO_FUNCTION_TMPL_PARTIAL_ORDER);
+ PRINT_MACRO(__STL_NO_IOSTREAMS);
+ PRINT_MACRO(__STL_NO_LONG_DOUBLE);
+ PRINT_MACRO(__STL_NO_MEMBER_TEMPLATE_CLASSES);
+ PRINT_MACRO(__STL_NO_MEMBER_TEMPLATE_KEYWORD);
+ PRINT_MACRO(__STL_NO_MEMBER_TEMPLATES);
+ PRINT_MACRO(__STL_NO_METHOD_SPECIALIZATION);
+ PRINT_MACRO(__STL_NO_NAMESPACES);
+ PRINT_MACRO(__STL_NO_NEW_IOSTREAMS);
+ PRINT_MACRO(__STL_NO_NEW_NEW_HEADER);
+ PRINT_MACRO(__STL_NO_NEW_STYLE_CASTS);
+ PRINT_MACRO(__STL_NO_PARTIAL_SPECIALIZATION_SYNTAX);
+ PRINT_MACRO(__STL_NO_QUALIFIED_FRIENDS);
+ PRINT_MACRO(__STL_NO_RELOPS_NAMESPACE);
+ PRINT_MACRO(__STL_NO_SGI_IOSTREAMS);
+ PRINT_MACRO(__STL_NO_STATIC_TEMPLATE_DATA);
+ PRINT_MACRO(__STL_NO_TEMPLATE_CONVERSIONS);
+ PRINT_MACRO(__STL_NO_WCHAR_T);
+ PRINT_MACRO(__STL_NON_TYPE_TMPL_PARAM_BUG);
+ PRINT_MACRO(__STL_NONTEMPL_BASE_MATCH_BUG);
+ PRINT_MACRO(__STL_PARTIAL_SPEC_NEEDS_TEMPLATE_ARGS);
+ PRINT_MACRO(__STL_RAND48);
+ PRINT_MACRO(__STL_STATIC_ARRAY_BUG);
+ PRINT_MACRO(__STL_STATIC_CONST_INIT_BUG);
+ PRINT_MACRO(__STL_STATIC_CONST_INIT_BUG);
+ PRINT_MACRO(__STL_THROW_RETURN_BUG);
+ PRINT_MACRO(__STL_TRIVIAL_CONSTRUCTOR_BUG);
+ PRINT_MACRO(__STL_TRIVIAL_DESTRUCTOR_BUG);
+ PRINT_MACRO(__STL_UNINITIALIZABLE_PRIVATE);
+ PRINT_MACRO(__STL_USE_ABBREVS);
+ PRINT_MACRO(__STL_USE_DEFALLOC);
+ PRINT_MACRO(__STL_USE_MALLOC);
+ PRINT_MACRO(__STL_USE_NEW_C_HEADERS);
+ PRINT_MACRO(__STL_USE_NEW_IOSTREAMS);
+ PRINT_MACRO(__STL_USE_NEWALLOC);
+ PRINT_MACRO(__STL_USE_OWN_NAMESPACE);
+ PRINT_MACRO(__STL_USE_SGI_ALLOCATORS);
+ PRINT_MACRO(__STL_WCHAR_T_IS_USHORT);
+ PRINT_MACRO(__STL_WEAK_ATTRIBUTE);
+ PRINT_MACRO(__STL_YVALS_H);
+ PRINT_MACRO(_NOTHREADS);
+ PRINT_MACRO(_PTHREADS);
+#if defined(__SGI_STL_PORT) && (__SGI_STL_PORT > 0x0400)
+ PRINT_MACRO(_STLP_AUTOMATIC_TYPE_TRAITS);
+ PRINT_MACRO(_STLP_BASE_MATCH_BUG);
+ PRINT_MACRO(_STLP_BASE_TYPEDEF_BUG);
+ PRINT_MACRO(_STLP_BASE_TYPEDEF_OUTSIDE_BUG);
+ PRINT_MACRO(_STLP_BROKEN_USING_DIRECTIVE);
+ PRINT_MACRO(_STLP_CONST_CONSTRUCTOR_BUG);
+ PRINT_MACRO(_STLP_DEBUG);
+ PRINT_MACRO(_STLP_DEBUG_ALLOC);
+ PRINT_MACRO(_STLP_DEFAULT_CONSTRUCTOR_BUG);
+ PRINT_MACRO(_STLP_DEFAULT_TYPE_PARAM);
+ PRINT_MACRO(_STLP_DONT_REDEFINE_STD);
+ PRINT_MACRO(_STLP_DONT_USE_BOOL_TYPEDEF);
+ PRINT_MACRO(_STLP_HAS_NO_EXCEPTIONS);
+ PRINT_MACRO(_STLP_HAS_NO_NAMESPACES);
+ PRINT_MACRO(_STLP_HAS_NO_NEW_C_HEADERS);
+ PRINT_MACRO(_STLP_HAS_NO_NEW_IOSTREAMS);
+ PRINT_MACRO(_STLP_IMPORT_VENDOR_CSTD);
+ PRINT_MACRO(_STLP_LIMITED_DEFAULT_TEMPLATES);
+ PRINT_MACRO(_STLP_LINK_TIME_INSTANTIATION);
+ PRINT_MACRO(_STLP_LONG_LONG);
+ PRINT_MACRO(_STLP_LOOP_INLINE_PROBLEMS);
+ PRINT_MACRO(_STLP_MEMBER_POINTER_PARAM_BUG);
+ PRINT_MACRO(_STLP_NEED_EXPLICIT);
+ PRINT_MACRO(_STLP_NEED_MUTABLE);
+ PRINT_MACRO(_STLP_NEED_TYPENAME);
+ PRINT_MACRO(_STLP_NESTED_TYPE_PARAM_BUG);
+ PRINT_MACRO(_STLP_NO_ARROW_OPERATOR);
+ PRINT_MACRO(_STLP_NO_BAD_ALLOC);
+ PRINT_MACRO(_STLP_NO_BOOL);
+ PRINT_MACRO(_STLP_NO_CLASS_PARTIAL_SPECIALIZATION);
+ PRINT_MACRO(_STLP_NO_CSTD_FUNCTION_IMPORTS);
+ PRINT_MACRO(_STLP_NO_DEFAULT_NON_TYPE_PARAM);
+ PRINT_MACRO(_STLP_NO_EXCEPTION_HEADER);
+ PRINT_MACRO(_STLP_NO_EXCEPTION_SPEC);
+ PRINT_MACRO(_STLP_NO_EXCEPTIONS);
+ PRINT_MACRO(_STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS);
+ PRINT_MACRO(_STLP_NO_FRIEND_TEMPLATES);
+ PRINT_MACRO(_STLP_NO_FUNCTION_TMPL_PARTIAL_ORDER);
+ PRINT_MACRO(_STLP_NO_IOSTREAMS);
+ PRINT_MACRO(_STLP_NO_LONG_DOUBLE);
+ PRINT_MACRO(_STLP_NO_MEMBER_TEMPLATE_CLASSES);
+ PRINT_MACRO(_STLP_NO_MEMBER_TEMPLATE_KEYWORD);
+ PRINT_MACRO(_STLP_NO_MEMBER_TEMPLATES);
+ PRINT_MACRO(_STLP_NO_METHOD_SPECIALIZATION);
+ PRINT_MACRO(_STLP_NO_NAMESPACES);
+ PRINT_MACRO(_STLP_NO_NEW_IOSTREAMS);
+ PRINT_MACRO(_STLP_NO_NEW_NEW_HEADER);
+ PRINT_MACRO(_STLP_NO_NEW_STYLE_CASTS);
+ PRINT_MACRO(_STLP_NO_PARTIAL_SPECIALIZATION_SYNTAX);
+ PRINT_MACRO(_STLP_NO_QUALIFIED_FRIENDS);
+ PRINT_MACRO(_STLP_NO_RELOPS_NAMESPACE);
+ PRINT_MACRO(_STLP_NO_SGI_IOSTREAMS);
+ PRINT_MACRO(_STLP_NO_STATIC_TEMPLATE_DATA);
+ PRINT_MACRO(_STLP_NO_TEMPLATE_CONVERSIONS);
+ PRINT_MACRO(_STLP_NO_WCHAR_T);
+ PRINT_MACRO(_STLP_NON_TYPE_TMPL_PARAM_BUG);
+ PRINT_MACRO(_STLP_NONTEMPL_BASE_MATCH_BUG);
+ PRINT_MACRO(_STLP_OWN_IOSTREAMS);
+ PRINT_MACRO(_STLP_PARTIAL_SPEC_NEEDS_TEMPLATE_ARGS);
+ PRINT_MACRO(_STLP_RAND48);
+ PRINT_MACRO(_STLP_STATIC_ARRAY_BUG);
+ PRINT_MACRO(_STLP_STATIC_CONST_INIT_BUG);
+ PRINT_MACRO(_STLP_STATIC_CONST_INIT_BUG);
+ PRINT_MACRO(_STLP_THROW_RETURN_BUG);
+ PRINT_MACRO(_STLP_TRIVIAL_CONSTRUCTOR_BUG);
+ PRINT_MACRO(_STLP_TRIVIAL_DESTRUCTOR_BUG);
+ PRINT_MACRO(_STLP_UNINITIALIZABLE_PRIVATE);
+ PRINT_MACRO(_STLP_USE_ABBREVS);
+ PRINT_MACRO(_STLP_USE_DEFALLOC);
+ PRINT_MACRO(_STLP_USE_MALLOC);
+ PRINT_MACRO(_STLP_USE_NEW_C_HEADERS);
+ PRINT_MACRO(_STLP_USE_NEWALLOC);
+ PRINT_MACRO(_STLP_USE_OWN_NAMESPACE);
+ PRINT_MACRO(_STLP_USE_SGI_ALLOCATORS);
+ PRINT_MACRO(_STLP_WCHAR_T_IS_USHORT);
+ PRINT_MACRO(_STLP_WEAK_ATTRIBUTE);
+ PRINT_MACRO(_STLP_YVALS_H);
+#endif
+ PRINT_MACRO(__GLIBCPP__);
+ PRINT_MACRO(_GLIBCPP_USE_WCHAR_T);
+ PRINT_MACRO(_GLIBCPP_VERSION);
+ PRINT_MACRO(__GLIBCXX__);
+ PRINT_MACRO(_GLIBCXX_USE_WCHAR_T);
+ PRINT_MACRO(_GLIBCXX_VERSION);
+ PRINT_MACRO(_GLIBCXX_USE_LONG_LONG);
+ PRINT_MACRO(_GLIBCXX_USE_NLS);
+ PRINT_MACRO(_GLIBCXX_USE_C99_MATH);
+ PRINT_MACRO(_GLIBCXX_USE_C99);
+ PRINT_MACRO(_GLIBCXX_CONCEPT_CHECKS);
+ PRINT_MACRO(_GLIBCXX_USE_LFS);
+ PRINT_MACRO(_GLIBCXX_SYMVER);
+ PRINT_MACRO(_GLIBCXX_MEM_LIMITS);
+ PRINT_MACRO(_GLIBCXX_HOSTED);
+ PRINT_MACRO(_GLIBCXX_SJLJ_EXCEPTIONS);
+
+ // Modena C++ standard library
+ PRINT_MACRO(MSIPL_ANSI_HEADER);
+ PRINT_MACRO(MSIPL_BOOL_BUILTIN);
+ PRINT_MACRO(MSIPL_DEF_EXPLICIT);
+ PRINT_MACRO(MSIPL_DEF_TEMPARG);
+ PRINT_MACRO(MSIPL_EXPINST_ALLOWED);
+ PRINT_MACRO(MSIPL_EXPLICIT_FUNC_TEMPLATE_ARG);
+ PRINT_MACRO(MISPL_EXPLICIT_TEMPLATE_ARGUMENT);
+ PRINT_MACRO(MSIPL_FUNC_TEMPLATE_DEFARG);
+ PRINT_MACRO(MSIPL_MEMBER_TEMPLATE);
+ PRINT_MACRO(MSIPL_MULTITHREAD);
+ PRINT_MACRO(MSIPL_NON_TYPE_TEMPARG);
+ PRINT_MACRO(MSIPL_PARTIAL_TEMPL);
+ PRINT_MACRO(MSIPL_STATIC_CONST_INIT);
+ PRINT_MACRO(MSIPL_TEMPL_NEWSPEC);
+ PRINT_MACRO(MSIPL_TYPENAME);
+ PRINT_MACRO(MSIPL_USING_NAMESPACE);
+ PRINT_MACRO(MSIPL_WCHART);
+}
+
+void print_platform_macros()
+{
+ std::cout << "Detected Platform: " << BOOST_PLATFORM << std::endl;
+ // signedness:
+ PRINT_SIGN(char);
+ PRINT_SIGN(wchar_t);
+ // byte ordering:
+ PRINT_ORDER(short);
+ PRINT_ORDER(int);
+ PRINT_ORDER(long);
+ // sizes:
+ PRINT_EXPRESSION(sizeof(wchar_t));
+ PRINT_EXPRESSION(sizeof(short));
+ PRINT_EXPRESSION(sizeof(int));
+ PRINT_EXPRESSION(sizeof(long));
+ PRINT_EXPRESSION(sizeof(size_t));
+ PRINT_EXPRESSION(sizeof(ptrdiff_t));
+ PRINT_EXPRESSION(sizeof(void*));
+ PRINT_EXPRESSION(sizeof(void(*)(void)));
+ PRINT_EXPRESSION(sizeof(float));
+ PRINT_EXPRESSION(sizeof(double));
+ PRINT_EXPRESSION(sizeof(long double));
+ // limits:
+ PRINT_MACRO(CHAR_BIT);
+ PRINT_MACRO(CHAR_MAX);
+ PRINT_MACRO(WCHAR_MAX);
+ PRINT_MACRO(SHRT_MAX);
+ PRINT_MACRO(INT_MAX);
+ PRINT_MACRO(LONG_MAX);
+ PRINT_MACRO(LLONG_MAX);
+ PRINT_MACRO(LONG_LONG_MAX);
+ PRINT_MACRO(LONGLONG_MAX);
+ PRINT_MACRO(ULLONG_MAX); // <boost/cstdint.hpp> uses these, so we need to know them
+ PRINT_MACRO(ULONG_LONG_MAX);
+ PRINT_MACRO(ULONGLONG_MAX);
+ // general C99:
+ PRINT_MACRO(__STDC_IEC_559__);
+ PRINT_MACRO(__STDC_IEC_559_COMPLEX__);
+ PRINT_MACRO(__STDC_ISO_10646__);
+ // GNU:
+ PRINT_MACRO(__GLIBC__);
+ PRINT_MACRO(__GLIBC_MINOR__);
+ PRINT_MACRO(__GNU_LIBRARY__);
+ PRINT_MACRO(_BSD_SOURCE);
+ PRINT_MACRO(_GNU_SOURCE);
+ PRINT_MACRO(_ISOC99_SOURCE);
+ PRINT_MACRO(_ISOC9X_SOURCE);
+ PRINT_MACRO(_LARGEFILE_SOURCE);
+ PRINT_MACRO(_LARGEFILE64_SOURCE);
+ PRINT_MACRO(_SVID_SOURCE);
+ PRINT_MACRO(_THREAD_SAFE);
+ PRINT_MACRO(_XOPEN_SOURCE_EXTENDED);
+ PRINT_MACRO(XPG);
+ PRINT_MACRO(__MINGW32_MAJOR_VERSION);
+ PRINT_MACRO(__MINGW32_MINOR_VERSION);
+ // POSIX:
+ PRINT_MACRO(_POSIX_ADVISORY_INFO);
+ PRINT_MACRO(_POSIX_ASYNCHRONOUS_IO);
+ PRINT_MACRO(_POSIX_BARRIERS);
+ PRINT_MACRO(_POSIX_C_SOURCE);
+ PRINT_MACRO(_POSIX_CHOWN_RESTRICTED);
+ PRINT_MACRO(_POSIX_CLOCK_SELECTION);
+ PRINT_MACRO(_POSIX_CPUTIME);
+ PRINT_MACRO(_POSIX_FSYNC);
+ PRINT_MACRO(_POSIX_JOB_CONTROL);
+ PRINT_MACRO(_POSIX_MAPPED_FILES);
+ PRINT_MACRO(_POSIX_MEMLOCK);
+ PRINT_MACRO(_POSIX_MEMLOCK_RANGE);
+ PRINT_MACRO(_POSIX_MEMORY_PROTECTION);
+ PRINT_MACRO(_POSIX_MESSAGE_PASSING);
+ PRINT_MACRO(_POSIX_MONOTONIC_CLOCK);
+ PRINT_MACRO(_POSIX_NO_TRUNC);
+ PRINT_MACRO(_POSIX_PRIORITIZED_IO);
+ PRINT_MACRO(_POSIX_PRIORITY_SCHEDULING);
+ PRINT_MACRO(_POSIX_RAW_SOCKETS);
+ PRINT_MACRO(_POSIX_READER_WRITER_LOCKS);
+ PRINT_MACRO(_POSIX_REALTIME_SIGNALS);
+ PRINT_MACRO(_POSIX_REGEXP);
+ PRINT_MACRO(_POSIX_SAVED_IDS);
+ PRINT_MACRO(_POSIX_SEMAPHORES);
+ PRINT_MACRO(_POSIX_SHARED_MEMORY_OBJECTS);
+ PRINT_MACRO(_POSIX_SHELL);
+ PRINT_MACRO(_POSIX_SOURCE);
+ PRINT_MACRO(_POSIX_SPAWN);
+ PRINT_MACRO(_POSIX_SPIN_LOCKS);
+ PRINT_MACRO(_POSIX_SPORADIC_SERVER);
+ PRINT_MACRO(_POSIX_SYNCHRONIZED_IO);
+ PRINT_MACRO(_POSIX_THREAD_ATTR_STACKADDR);
+ PRINT_MACRO(_POSIX_THREAD_ATTR_STACKSIZE);
+ PRINT_MACRO(_POSIX_THREAD_CPUTIME);
+ PRINT_MACRO(_POSIX_THREAD_PRIO_INHERIT);
+ PRINT_MACRO(_POSIX_THREAD_PRIO_PROTECT);
+ PRINT_MACRO(_POSIX_THREAD_PRIORITY_SCHEDULING);
+ PRINT_MACRO(_POSIX_THREAD_PROCESS_SHARED);
+ PRINT_MACRO(_POSIX_THREAD_SAFE_FUNCTIONS);
+ PRINT_MACRO(_POSIX_THREAD_SPORADIC_SERVER);
+ PRINT_MACRO(_POSIX_THREADS);
+ PRINT_MACRO(_POSIX_TIMEOUTS);
+ PRINT_MACRO(_POSIX_TIMERS);
+ PRINT_MACRO(_POSIX_TRACE);
+ PRINT_MACRO(_POSIX_TRACE_EVENT_FILTER);
+ PRINT_MACRO(_POSIX_TRACE_INHERIT);
+ PRINT_MACRO(_POSIX_TRACE_LOG);
+ PRINT_MACRO(_POSIX_TYPED_MEMORY_OBJECTS);
+ PRINT_MACRO(_POSIX_VDISABLE);
+ PRINT_MACRO(_POSIX_VERSION);
+ PRINT_MACRO(_POSIX2_C_BIND);
+ PRINT_MACRO(_POSIX2_C_DEV);
+ PRINT_MACRO(_POSIX2_CHAR_TERM);
+ PRINT_MACRO(_POSIX2_FORT_DEV);
+ PRINT_MACRO(_POSIX2_FORT_RUN);
+ PRINT_MACRO(_POSIX2_LOCALEDEF);
+ PRINT_MACRO(_POSIX2_PBS);
+ PRINT_MACRO(_POSIX2_PBS_ACCOUNTING);
+ PRINT_MACRO(_POSIX2_PBS_CHECKPOINT);
+ PRINT_MACRO(_POSIX2_PBS_LOCATE);
+ PRINT_MACRO(_POSIX2_PBS_MESSAGE);
+ PRINT_MACRO(_POSIX2_PBS_TRACK);
+ PRINT_MACRO(_POSIX2_SW_DEV);
+ PRINT_MACRO(_POSIX2_UPE);
+ PRINT_MACRO(_POSIX2_VERSION);
+ PRINT_MACRO(_V6_ILP32_OFF32);
+ PRINT_MACRO(_V6_ILP32_OFFBIG);
+ PRINT_MACRO(_V6_LP64_OFF64);
+ PRINT_MACRO(_V6_LPBIG_OFFBIG);
+ PRINT_MACRO(_XBS5_ILP32_OFF32);
+ PRINT_MACRO(_XBS5_ILP32_OFFBIG);
+ PRINT_MACRO(_XBS5_LP64_OFF64);
+ PRINT_MACRO(_XBS5_LPBIG_OFFBIG);
+ PRINT_MACRO(_XOPEN_CRYPT);
+ PRINT_MACRO(_XOPEN_ENH_I18N);
+ PRINT_MACRO(_XOPEN_LEGACY);
+ PRINT_MACRO(_XOPEN_REALTIME);
+ PRINT_MACRO(_XOPEN_REALTIME_THREADS);
+ PRINT_MACRO(_XOPEN_SHM);
+ PRINT_MACRO(_XOPEN_SOURCE);
+ PRINT_MACRO(_XOPEN_STREAMS);
+ PRINT_MACRO(_XOPEN_UNIX);
+ PRINT_MACRO(_XOPEN_VERSION);
+ // Misc:
+ PRINT_MACRO(__USE_BSD);
+ PRINT_MACRO(_FILE_OFFSET_BITS);
+}
+
+void print_boost_macros()
+{
+ std::cout << "Boost version " << BOOST_STRINGIZE(BOOST_VERSION) << std::endl;
+ // config setup macros first:
+ PRINT_MACRO(BOOST_USER_CONFIG);
+ PRINT_MACRO(BOOST_COMPILER_CONFIG);
+ PRINT_MACRO(BOOST_STDLIB_CONFIG);
+ PRINT_MACRO(BOOST_PLATFORM_CONFIG);
+ PRINT_MACRO(BOOST_NO_CONFIG);
+ PRINT_MACRO(BOOST_NO_USER_CONFIG);
+ PRINT_MACRO(BOOST_NO_COMPILER_CONFIG);
+ PRINT_MACRO(BOOST_NO_STDLIB_CONFIG);
+ PRINT_MACRO(BOOST_NO_PLATFORM_CONFIG);
+ // then defect and feature macros:
+ PRINT_MACRO(BOOST_DISABLE_THREADS);
+ PRINT_MACRO(BOOST_DISABLE_WIN32);
+ PRINT_MACRO(BOOST_HAS_THREADS);
+ PRINT_MACRO(BOOST_WINDOWS);
+
+ // BEGIN GENERATED BLOCK DO NOT EDIT THIS!!!!!!
+ PRINT_MACRO(BOOST_BCB_PARTIAL_SPECIALIZATION_BUG);
+ PRINT_MACRO(BOOST_DEDUCED_TYPENAME);
+ PRINT_MACRO(BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL);
+ PRINT_MACRO(BOOST_HAS_BETHREADS);
+ PRINT_MACRO(BOOST_HAS_CLOCK_GETTIME);
+ PRINT_MACRO(BOOST_HAS_DIRENT_H);
+ PRINT_MACRO(BOOST_HAS_EXPM1);
+ PRINT_MACRO(BOOST_HAS_FTIME);
+ PRINT_MACRO(BOOST_HAS_GETSYSTEMTIMEASFILETIME);
+ PRINT_MACRO(BOOST_HAS_GETTIMEOFDAY);
+ PRINT_MACRO(BOOST_HAS_HASH);
+ PRINT_MACRO(BOOST_HAS_LOG1P);
+ PRINT_MACRO(BOOST_HAS_LONG_LONG);
+ PRINT_MACRO(BOOST_HAS_MACRO_USE_FACET);
+ PRINT_MACRO(BOOST_HAS_MS_INT64);
+ PRINT_MACRO(BOOST_HAS_NANOSLEEP);
+ PRINT_MACRO(BOOST_HAS_NL_TYPES_H);
+ PRINT_MACRO(BOOST_HAS_NRVO);
+ PRINT_MACRO(BOOST_HAS_PARTIAL_STD_ALLOCATOR);
+ PRINT_MACRO(BOOST_HAS_PTHREADS);
+ PRINT_MACRO(BOOST_HAS_PTHREAD_DELAY_NP);
+ PRINT_MACRO(BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE);
+ PRINT_MACRO(BOOST_HAS_PTHREAD_YIELD);
+ PRINT_MACRO(BOOST_HAS_RVALUE_REFS);
+ PRINT_MACRO(BOOST_HAS_SCHED_YIELD);
+ PRINT_MACRO(BOOST_HAS_SGI_TYPE_TRAITS);
+ PRINT_MACRO(BOOST_HAS_SIGACTION);
+ PRINT_MACRO(BOOST_HAS_SLIST);
+ PRINT_MACRO(BOOST_HAS_STATIC_ASSERT);
+ PRINT_MACRO(BOOST_HAS_STDINT_H);
+ PRINT_MACRO(BOOST_HAS_STLP_USE_FACET);
+ PRINT_MACRO(BOOST_HAS_TR1_ARRAY);
+ PRINT_MACRO(BOOST_HAS_TR1_BIND);
+ PRINT_MACRO(BOOST_HAS_TR1_COMPLEX_INVERSE_TRIG);
+ PRINT_MACRO(BOOST_HAS_TR1_COMPLEX_OVERLOADS);
+ PRINT_MACRO(BOOST_HAS_TR1_FUNCTION);
+ PRINT_MACRO(BOOST_HAS_TR1_HASH);
+ PRINT_MACRO(BOOST_HAS_TR1_MEM_FN);
+ PRINT_MACRO(BOOST_HAS_TR1_RANDOM);
+ PRINT_MACRO(BOOST_HAS_TR1_REFERENCE_WRAPPER);
+ PRINT_MACRO(BOOST_HAS_TR1_REGEX);
+ PRINT_MACRO(BOOST_HAS_TR1_RESULT_OF);
+ PRINT_MACRO(BOOST_HAS_TR1_SHARED_PTR);
+ PRINT_MACRO(BOOST_HAS_TR1_TUPLE);
+ PRINT_MACRO(BOOST_HAS_TR1_TYPE_TRAITS);
+ PRINT_MACRO(BOOST_HAS_TR1_UNORDERED_MAP);
+ PRINT_MACRO(BOOST_HAS_TR1_UNORDERED_SET);
+ PRINT_MACRO(BOOST_HAS_TR1_UTILITY);
+ PRINT_MACRO(BOOST_HAS_TWO_ARG_USE_FACET);
+ PRINT_MACRO(BOOST_HAS_UNISTD_H);
+ PRINT_MACRO(BOOST_HAS_VARIADIC_TMPL);
+ PRINT_MACRO(BOOST_HAS_WINTHREADS);
+ PRINT_MACRO(BOOST_MSVC6_MEMBER_TEMPLATES);
+ PRINT_MACRO(BOOST_MSVC_STD_ITERATOR);
+ PRINT_MACRO(BOOST_NO_0X_HDR_ARRAY);
+ PRINT_MACRO(BOOST_NO_0X_HDR_CHRONO);
+ PRINT_MACRO(BOOST_NO_0X_HDR_CODECVT);
+ PRINT_MACRO(BOOST_NO_0X_HDR_CONDITION_VARIABLE);
+ PRINT_MACRO(BOOST_NO_0X_HDR_FORWARD_LIST);
+ PRINT_MACRO(BOOST_NO_0X_HDR_FUTURE);
+ PRINT_MACRO(BOOST_NO_0X_HDR_INITIALIZER_LIST);
+ PRINT_MACRO(BOOST_NO_0X_HDR_MUTEX);
+ PRINT_MACRO(BOOST_NO_0X_HDR_RANDOM);
+ PRINT_MACRO(BOOST_NO_0X_HDR_RATIO);
+ PRINT_MACRO(BOOST_NO_0X_HDR_REGEX);
+ PRINT_MACRO(BOOST_NO_0X_HDR_SYSTEM_ERROR);
+ PRINT_MACRO(BOOST_NO_0X_HDR_THREAD);
+ PRINT_MACRO(BOOST_NO_0X_HDR_TUPLE);
+ PRINT_MACRO(BOOST_NO_0X_HDR_TYPEINDEX);
+ PRINT_MACRO(BOOST_NO_0X_HDR_TYPE_TRAITS);
+ PRINT_MACRO(BOOST_NO_0X_HDR_UNORDERED_MAP);
+ PRINT_MACRO(BOOST_NO_0X_HDR_UNORDERED_SET);
+ PRINT_MACRO(BOOST_NO_ADL_BARRIER);
+ PRINT_MACRO(BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP);
+ PRINT_MACRO(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS);
+ PRINT_MACRO(BOOST_NO_AUTO_DECLARATIONS);
+ PRINT_MACRO(BOOST_NO_AUTO_MULTIDECLARATIONS);
+ PRINT_MACRO(BOOST_NO_AUTO_PTR);
+ PRINT_MACRO(BOOST_NO_CHAR16_T);
+ PRINT_MACRO(BOOST_NO_CHAR32_T);
+ PRINT_MACRO(BOOST_NO_COMPLETE_VALUE_INITIALIZATION);
+ PRINT_MACRO(BOOST_NO_CONSTEXPR);
+ PRINT_MACRO(BOOST_NO_CTYPE_FUNCTIONS);
+ PRINT_MACRO(BOOST_NO_CV_SPECIALIZATIONS);
+ PRINT_MACRO(BOOST_NO_CV_VOID_SPECIALIZATIONS);
+ PRINT_MACRO(BOOST_NO_CWCHAR);
+ PRINT_MACRO(BOOST_NO_CWCTYPE);
+ PRINT_MACRO(BOOST_NO_DECLTYPE);
+ PRINT_MACRO(BOOST_NO_DECLTYPE_N3276);
+ PRINT_MACRO(BOOST_NO_DEFAULTED_FUNCTIONS);
+ PRINT_MACRO(BOOST_NO_DELETED_FUNCTIONS);
+ PRINT_MACRO(BOOST_NO_DEPENDENT_NESTED_DERIVATIONS);
+ PRINT_MACRO(BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS);
+ PRINT_MACRO(BOOST_NO_EXCEPTIONS);
+ PRINT_MACRO(BOOST_NO_EXCEPTION_STD_NAMESPACE);
+ PRINT_MACRO(BOOST_NO_EXPLICIT_CONVERSION_OPERATORS);
+ PRINT_MACRO(BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS);
+ PRINT_MACRO(BOOST_NO_EXTERN_TEMPLATE);
+ PRINT_MACRO(BOOST_NO_FENV_H);
+ PRINT_MACRO(BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS);
+ PRINT_MACRO(BOOST_NO_FUNCTION_TEMPLATE_ORDERING);
+ PRINT_MACRO(BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS);
+ PRINT_MACRO(BOOST_NO_INCLASS_MEMBER_INITIALIZATION);
+ PRINT_MACRO(BOOST_NO_INITIALIZER_LISTS);
+ PRINT_MACRO(BOOST_NO_INTEGRAL_INT64_T);
+ PRINT_MACRO(BOOST_NO_INTRINSIC_WCHAR_T);
+ PRINT_MACRO(BOOST_NO_IOSFWD);
+ PRINT_MACRO(BOOST_NO_IOSTREAM);
+ PRINT_MACRO(BOOST_NO_IS_ABSTRACT);
+ PRINT_MACRO(BOOST_NO_LAMBDAS);
+ PRINT_MACRO(BOOST_NO_LIMITS);
+ PRINT_MACRO(BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS);
+ PRINT_MACRO(BOOST_NO_LONG_LONG);
+ PRINT_MACRO(BOOST_NO_LONG_LONG_NUMERIC_LIMITS);
+ PRINT_MACRO(BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS);
+ PRINT_MACRO(BOOST_NO_MEMBER_TEMPLATES);
+ PRINT_MACRO(BOOST_NO_MEMBER_TEMPLATE_FRIENDS);
+ PRINT_MACRO(BOOST_NO_MEMBER_TEMPLATE_KEYWORD);
+ PRINT_MACRO(BOOST_NO_MS_INT64_NUMERIC_LIMITS);
+ PRINT_MACRO(BOOST_NO_NESTED_FRIENDSHIP);
+ PRINT_MACRO(BOOST_NO_NOEXCEPT);
+ PRINT_MACRO(BOOST_NO_NULLPTR);
+ PRINT_MACRO(BOOST_NO_NUMERIC_LIMITS_LOWEST);
+ PRINT_MACRO(BOOST_NO_OPERATORS_IN_NAMESPACE);
+ PRINT_MACRO(BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS);
+ PRINT_MACRO(BOOST_NO_POINTER_TO_MEMBER_CONST);
+ PRINT_MACRO(BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS);
+ PRINT_MACRO(BOOST_NO_PRIVATE_IN_AGGREGATE);
+ PRINT_MACRO(BOOST_NO_RAW_LITERALS);
+ PRINT_MACRO(BOOST_NO_RTTI);
+ PRINT_MACRO(BOOST_NO_RVALUE_REFERENCES);
+ PRINT_MACRO(BOOST_NO_SCOPED_ENUMS);
+ PRINT_MACRO(BOOST_NO_SFINAE);
+ PRINT_MACRO(BOOST_NO_SFINAE_EXPR);
+ PRINT_MACRO(BOOST_NO_STATIC_ASSERT);
+ PRINT_MACRO(BOOST_NO_STDC_NAMESPACE);
+ PRINT_MACRO(BOOST_NO_STD_ALLOCATOR);
+ PRINT_MACRO(BOOST_NO_STD_DISTANCE);
+ PRINT_MACRO(BOOST_NO_STD_ITERATOR);
+ PRINT_MACRO(BOOST_NO_STD_ITERATOR_TRAITS);
+ PRINT_MACRO(BOOST_NO_STD_LOCALE);
+ PRINT_MACRO(BOOST_NO_STD_MESSAGES);
+ PRINT_MACRO(BOOST_NO_STD_MIN_MAX);
+ PRINT_MACRO(BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN);
+ PRINT_MACRO(BOOST_NO_STD_TYPEINFO);
+ PRINT_MACRO(BOOST_NO_STD_UNORDERED);
+ PRINT_MACRO(BOOST_NO_STD_USE_FACET);
+ PRINT_MACRO(BOOST_NO_STD_WSTREAMBUF);
+ PRINT_MACRO(BOOST_NO_STD_WSTRING);
+ PRINT_MACRO(BOOST_NO_STRINGSTREAM);
+ PRINT_MACRO(BOOST_NO_SWPRINTF);
+ PRINT_MACRO(BOOST_NO_TEMPLATED_IOSTREAMS);
+ PRINT_MACRO(BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS);
+ PRINT_MACRO(BOOST_NO_TEMPLATE_ALIASES);
+ PRINT_MACRO(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION);
+ PRINT_MACRO(BOOST_NO_TEMPLATE_TEMPLATES);
+ PRINT_MACRO(BOOST_NO_TWO_PHASE_NAME_LOOKUP);
+ PRINT_MACRO(BOOST_NO_TYPEID);
+ PRINT_MACRO(BOOST_NO_TYPENAME_WITH_CTOR);
+ PRINT_MACRO(BOOST_NO_UNICODE_LITERALS);
+ PRINT_MACRO(BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX);
+ PRINT_MACRO(BOOST_NO_UNREACHABLE_RETURN_DETECTION);
+ PRINT_MACRO(BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE);
+ PRINT_MACRO(BOOST_NO_USING_TEMPLATE);
+ PRINT_MACRO(BOOST_NO_VARIADIC_MACROS);
+ PRINT_MACRO(BOOST_NO_VARIADIC_TEMPLATES);
+ PRINT_MACRO(BOOST_NO_VOID_RETURNS);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ // END GENERATED BLOCK
+
+ PRINT_MACRO(BOOST_INTEL);
+ PRINT_MACRO(BOOST_MSVC);
+ PRINT_MACRO(BOOST_STD_EXTENSION_NAMESPACE);
+ PRINT_MACRO(BOOST_UNREACHABLE_RETURN(0));
+ PRINT_MACRO(BOOST_CONSTEXPR);
+ PRINT_MACRO(BOOST_CONSTEXPR_OR_CONST);
+ PRINT_MACRO(BOOST_STATIC_CONSTEXPR);
+ PRINT_MACRO(BOOST_NOEXCEPT);
+ PRINT_MACRO(BOOST_FORCEINLINE);
+}
+
+void print_separator()
+{
+ std::cout <<
+"\n\n*********************************************************************\n\n";
+}
+
+int main()
+{
+
+ // boost compiler workaround defines
+ print_compiler_macros();
+ print_separator();
+ print_stdlib_macros();
+ print_separator();
+ print_platform_macros();
+ print_separator();
+ print_boost_macros();
+
+ return 0;
+}
diff --git a/libs/config/test/config_test.cpp b/libs/config/test/config_test.cpp
new file mode 100644
index 0000000000..a203548cd6
--- /dev/null
+++ b/libs/config/test/config_test.cpp
@@ -0,0 +1,1701 @@
+// This file was automatically generated on Sun Nov 27 09:43:19 2011
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: config_test.cpp 76122 2011-12-23 17:17:31Z johnmaddock $
+//
+
+// Test file for config setup
+// This file should compile, if it does not then
+// one or more macros need to be defined.
+// see boost_*.ipp for more details
+
+// Do not edit this file, it was generated automatically by
+
+#include <boost/config.hpp>
+#include <iostream>
+#include "test.hpp"
+
+int error_count = 0;
+
+#ifndef BOOST_NO_0X_HDR_ARRAY
+#include "boost_no_0x_hdr_array.ipp"
+#else
+namespace boost_no_0x_hdr_array = empty_boost;
+#endif
+#ifndef BOOST_NO_0X_HDR_CHRONO
+#include "boost_no_0x_hdr_chrono.ipp"
+#else
+namespace boost_no_0x_hdr_chrono = empty_boost;
+#endif
+#ifndef BOOST_NO_0X_HDR_CODECVT
+#include "boost_no_0x_hdr_codecvt.ipp"
+#else
+namespace boost_no_0x_hdr_codecvt = empty_boost;
+#endif
+#ifndef BOOST_NO_0X_HDR_CONDITION_VARIABLE
+#include "boost_no_0x_hdr_condition_variable.ipp"
+#else
+namespace boost_no_0x_hdr_condition_variable = empty_boost;
+#endif
+#ifndef BOOST_NO_0X_HDR_FORWARD_LIST
+#include "boost_no_0x_hdr_forward_list.ipp"
+#else
+namespace boost_no_0x_hdr_forward_list = empty_boost;
+#endif
+#ifndef BOOST_NO_0X_HDR_FUTURE
+#include "boost_no_0x_hdr_future.ipp"
+#else
+namespace boost_no_0x_hdr_future = empty_boost;
+#endif
+#ifndef BOOST_NO_0X_HDR_INITIALIZER_LIST
+#include "boost_no_0x_hdr_initializer_list.ipp"
+#else
+namespace boost_no_0x_hdr_initializer_list = empty_boost;
+#endif
+#ifndef BOOST_NO_0X_HDR_MUTEX
+#include "boost_no_0x_hdr_mutex.ipp"
+#else
+namespace boost_no_0x_hdr_mutex = empty_boost;
+#endif
+#ifndef BOOST_NO_0X_HDR_RANDOM
+#include "boost_no_0x_hdr_random.ipp"
+#else
+namespace boost_no_0x_hdr_random = empty_boost;
+#endif
+#ifndef BOOST_NO_0X_HDR_RATIO
+#include "boost_no_0x_hdr_ratio.ipp"
+#else
+namespace boost_no_0x_hdr_ratio = empty_boost;
+#endif
+#ifndef BOOST_NO_0X_HDR_REGEX
+#include "boost_no_0x_hdr_regex.ipp"
+#else
+namespace boost_no_0x_hdr_regex = empty_boost;
+#endif
+#ifndef BOOST_NO_0X_HDR_SYSTEM_ERROR
+#include "boost_no_0x_hdr_system_error.ipp"
+#else
+namespace boost_no_0x_hdr_system_error = empty_boost;
+#endif
+#ifndef BOOST_NO_0X_HDR_THREAD
+#include "boost_no_0x_hdr_thread.ipp"
+#else
+namespace boost_no_0x_hdr_thread = empty_boost;
+#endif
+#ifndef BOOST_NO_0X_HDR_TUPLE
+#include "boost_no_0x_hdr_tuple.ipp"
+#else
+namespace boost_no_0x_hdr_tuple = empty_boost;
+#endif
+#ifndef BOOST_NO_0X_HDR_TYPEINDEX
+#include "boost_no_0x_hdr_typeindex.ipp"
+#else
+namespace boost_no_0x_hdr_typeindex = empty_boost;
+#endif
+#ifndef BOOST_NO_0X_HDR_TYPE_TRAITS
+#include "boost_no_0x_hdr_type_traits.ipp"
+#else
+namespace boost_no_0x_hdr_type_traits = empty_boost;
+#endif
+#ifndef BOOST_NO_0X_HDR_UNORDERED_MAP
+#include "boost_no_0x_hdr_unordered_map.ipp"
+#else
+namespace boost_no_0x_hdr_unordered_map = empty_boost;
+#endif
+#ifndef BOOST_NO_0X_HDR_UNORDERED_SET
+#include "boost_no_0x_hdr_unordered_set.ipp"
+#else
+namespace boost_no_0x_hdr_unordered_set = empty_boost;
+#endif
+#ifndef BOOST_NO_ADL_BARRIER
+#include "boost_no_adl_barrier.ipp"
+#else
+namespace boost_no_adl_barrier = empty_boost;
+#endif
+#ifndef BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
+#include "boost_no_arg_dep_lookup.ipp"
+#else
+namespace boost_no_argument_dependent_lookup = empty_boost;
+#endif
+#ifndef BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS
+#include "boost_no_array_type_spec.ipp"
+#else
+namespace boost_no_array_type_specializations = empty_boost;
+#endif
+#ifndef BOOST_NO_AUTO_DECLARATIONS
+#include "boost_no_auto_declarations.ipp"
+#else
+namespace boost_no_auto_declarations = empty_boost;
+#endif
+#ifndef BOOST_NO_AUTO_MULTIDECLARATIONS
+#include "boost_no_auto_multidecl.ipp"
+#else
+namespace boost_no_auto_multideclarations = empty_boost;
+#endif
+#ifndef BOOST_NO_AUTO_PTR
+#include "boost_no_auto_ptr.ipp"
+#else
+namespace boost_no_auto_ptr = empty_boost;
+#endif
+#ifndef BOOST_BCB_PARTIAL_SPECIALIZATION_BUG
+#include "boost_no_bcb_partial_spec.ipp"
+#else
+namespace boost_bcb_partial_specialization_bug = empty_boost;
+#endif
+#ifndef BOOST_NO_CHAR16_T
+#include "boost_no_char16_t.ipp"
+#else
+namespace boost_no_char16_t = empty_boost;
+#endif
+#ifndef BOOST_NO_CHAR32_T
+#include "boost_no_char32_t.ipp"
+#else
+namespace boost_no_char32_t = empty_boost;
+#endif
+#ifndef BOOST_NO_COMPLETE_VALUE_INITIALIZATION
+#include "boost_no_com_value_init.ipp"
+#else
+namespace boost_no_complete_value_initialization = empty_boost;
+#endif
+#ifndef BOOST_NO_CONSTEXPR
+#include "boost_no_constexpr.ipp"
+#else
+namespace boost_no_constexpr = empty_boost;
+#endif
+#ifndef BOOST_NO_CTYPE_FUNCTIONS
+#include "boost_no_ctype_functions.ipp"
+#else
+namespace boost_no_ctype_functions = empty_boost;
+#endif
+#ifndef BOOST_NO_CV_SPECIALIZATIONS
+#include "boost_no_cv_spec.ipp"
+#else
+namespace boost_no_cv_specializations = empty_boost;
+#endif
+#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
+#include "boost_no_cv_void_spec.ipp"
+#else
+namespace boost_no_cv_void_specializations = empty_boost;
+#endif
+#ifndef BOOST_NO_CWCHAR
+#include "boost_no_cwchar.ipp"
+#else
+namespace boost_no_cwchar = empty_boost;
+#endif
+#ifndef BOOST_NO_CWCTYPE
+#include "boost_no_cwctype.ipp"
+#else
+namespace boost_no_cwctype = empty_boost;
+#endif
+#ifndef BOOST_NO_DECLTYPE
+#include "boost_no_decltype.ipp"
+#else
+namespace boost_no_decltype = empty_boost;
+#endif
+#ifndef BOOST_NO_DECLTYPE_N3276
+#include "boost_no_decltype_n3276.ipp"
+#else
+namespace boost_no_decltype_n3276 = empty_boost;
+#endif
+#ifndef BOOST_DEDUCED_TYPENAME
+#include "boost_no_ded_typename.ipp"
+#else
+namespace boost_deduced_typename = empty_boost;
+#endif
+#ifndef BOOST_NO_DEFAULTED_FUNCTIONS
+#include "boost_no_defaulted_functions.ipp"
+#else
+namespace boost_no_defaulted_functions = empty_boost;
+#endif
+#ifndef BOOST_NO_DELETED_FUNCTIONS
+#include "boost_no_deleted_functions.ipp"
+#else
+namespace boost_no_deleted_functions = empty_boost;
+#endif
+#ifndef BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
+#include "boost_no_dep_nested_class.ipp"
+#else
+namespace boost_no_dependent_nested_derivations = empty_boost;
+#endif
+#ifndef BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
+#include "boost_no_dep_val_param.ipp"
+#else
+namespace boost_no_dependent_types_in_template_value_parameters = empty_boost;
+#endif
+#ifndef BOOST_NO_EXCEPTIONS
+#include "boost_no_exceptions.ipp"
+#else
+namespace boost_no_exceptions = empty_boost;
+#endif
+#ifndef BOOST_NO_EXCEPTION_STD_NAMESPACE
+#include "boost_no_excep_std.ipp"
+#else
+namespace boost_no_exception_std_namespace = empty_boost;
+#endif
+#ifndef BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
+#include "boost_no_explicit_cvt_ops.ipp"
+#else
+namespace boost_no_explicit_conversion_operators = empty_boost;
+#endif
+#ifndef BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
+#include "boost_no_exp_func_tem_arg.ipp"
+#else
+namespace boost_no_explicit_function_template_arguments = empty_boost;
+#endif
+#ifndef BOOST_NO_EXTERN_TEMPLATE
+#include "boost_no_extern_template.ipp"
+#else
+namespace boost_no_extern_template = empty_boost;
+#endif
+#ifndef BOOST_NO_FENV_H
+#include "boost_no_fenv_h.ipp"
+#else
+namespace boost_no_fenv_h = empty_boost;
+#endif
+#ifndef BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
+#include "boost_no_function_template_default_args.ipp"
+#else
+namespace boost_no_function_template_default_args = empty_boost;
+#endif
+#ifndef BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS
+#include "boost_no_function_type_spec.ipp"
+#else
+namespace boost_no_function_type_specializations = empty_boost;
+#endif
+#ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING
+#include "boost_no_func_tmp_order.ipp"
+#else
+namespace boost_no_function_template_ordering = empty_boost;
+#endif
+#ifndef BOOST_NO_MS_INT64_NUMERIC_LIMITS
+#include "boost_no_i64_limits.ipp"
+#else
+namespace boost_no_ms_int64_numeric_limits = empty_boost;
+#endif
+#ifndef BOOST_NO_INITIALIZER_LISTS
+#include "boost_no_initializer_lists.ipp"
+#else
+namespace boost_no_initializer_lists = empty_boost;
+#endif
+#ifndef BOOST_NO_INCLASS_MEMBER_INITIALIZATION
+#include "boost_no_inline_memb_init.ipp"
+#else
+namespace boost_no_inclass_member_initialization = empty_boost;
+#endif
+#ifndef BOOST_NO_INTEGRAL_INT64_T
+#include "boost_no_integral_int64_t.ipp"
+#else
+namespace boost_no_integral_int64_t = empty_boost;
+#endif
+#ifndef BOOST_NO_IOSFWD
+#include "boost_no_iosfwd.ipp"
+#else
+namespace boost_no_iosfwd = empty_boost;
+#endif
+#ifndef BOOST_NO_IOSTREAM
+#include "boost_no_iostream.ipp"
+#else
+namespace boost_no_iostream = empty_boost;
+#endif
+#ifndef BOOST_NO_IS_ABSTRACT
+#include "boost_no_is_abstract.ipp"
+#else
+namespace boost_no_is_abstract = empty_boost;
+#endif
+#ifndef BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
+#include "boost_no_iter_construct.ipp"
+#else
+namespace boost_no_templated_iterator_constructors = empty_boost;
+#endif
+#ifndef BOOST_NO_LAMBDAS
+#include "boost_no_lambdas.ipp"
+#else
+namespace boost_no_lambdas = empty_boost;
+#endif
+#ifndef BOOST_NO_LIMITS
+#include "boost_no_limits.ipp"
+#else
+namespace boost_no_limits = empty_boost;
+#endif
+#ifndef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
+#include "boost_no_limits_const_exp.ipp"
+#else
+namespace boost_no_limits_compile_time_constants = empty_boost;
+#endif
+#ifndef BOOST_NO_NUMERIC_LIMITS_LOWEST
+#include "boost_no_limits_lowest.ipp"
+#else
+namespace boost_no_numeric_limits_lowest = empty_boost;
+#endif
+#ifndef BOOST_NO_LONG_LONG_NUMERIC_LIMITS
+#include "boost_no_ll_limits.ipp"
+#else
+namespace boost_no_long_long_numeric_limits = empty_boost;
+#endif
+#ifndef BOOST_NO_LONG_LONG
+#include "boost_no_long_long.ipp"
+#else
+namespace boost_no_long_long = empty_boost;
+#endif
+#ifndef BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
+#include "boost_no_mem_func_spec.ipp"
+#else
+namespace boost_no_member_function_specializations = empty_boost;
+#endif
+#ifndef BOOST_NO_MEMBER_TEMPLATES
+#include "boost_no_mem_templates.ipp"
+#else
+namespace boost_no_member_templates = empty_boost;
+#endif
+#ifndef BOOST_NO_MEMBER_TEMPLATE_FRIENDS
+#include "boost_no_mem_templ_frnds.ipp"
+#else
+namespace boost_no_member_template_friends = empty_boost;
+#endif
+#ifndef BOOST_NO_MEMBER_TEMPLATE_KEYWORD
+#include "boost_no_mem_tem_keyword.ipp"
+#else
+namespace boost_no_member_template_keyword = empty_boost;
+#endif
+#ifndef BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS
+#include "boost_no_mem_tem_pnts.ipp"
+#else
+namespace boost_no_pointer_to_member_template_parameters = empty_boost;
+#endif
+#ifndef BOOST_NO_NESTED_FRIENDSHIP
+#include "boost_no_nested_friendship.ipp"
+#else
+namespace boost_no_nested_friendship = empty_boost;
+#endif
+#ifndef BOOST_NO_NOEXCEPT
+#include "boost_no_noexcept.ipp"
+#else
+namespace boost_no_noexcept = empty_boost;
+#endif
+#ifndef BOOST_NO_NULLPTR
+#include "boost_no_nullptr.ipp"
+#else
+namespace boost_no_nullptr = empty_boost;
+#endif
+#ifndef BOOST_NO_OPERATORS_IN_NAMESPACE
+#include "boost_no_ops_in_namespace.ipp"
+#else
+namespace boost_no_operators_in_namespace = empty_boost;
+#endif
+#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#include "boost_no_partial_spec.ipp"
+#else
+namespace boost_no_template_partial_specialization = empty_boost;
+#endif
+#ifndef BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS
+#include "boost_no_part_spec_def_args.ipp"
+#else
+namespace boost_no_partial_specialization_implicit_default_args = empty_boost;
+#endif
+#ifndef BOOST_NO_PRIVATE_IN_AGGREGATE
+#include "boost_no_priv_aggregate.ipp"
+#else
+namespace boost_no_private_in_aggregate = empty_boost;
+#endif
+#ifndef BOOST_NO_POINTER_TO_MEMBER_CONST
+#include "boost_no_ptr_mem_const.ipp"
+#else
+namespace boost_no_pointer_to_member_const = empty_boost;
+#endif
+#ifndef BOOST_NO_RAW_LITERALS
+#include "boost_no_raw_literals.ipp"
+#else
+namespace boost_no_raw_literals = empty_boost;
+#endif
+#ifndef BOOST_NO_UNREACHABLE_RETURN_DETECTION
+#include "boost_no_ret_det.ipp"
+#else
+namespace boost_no_unreachable_return_detection = empty_boost;
+#endif
+#ifndef BOOST_NO_RTTI
+#include "boost_no_rtti.ipp"
+#else
+namespace boost_no_rtti = empty_boost;
+#endif
+#ifndef BOOST_NO_RVALUE_REFERENCES
+#include "boost_no_rvalue_references.ipp"
+#else
+namespace boost_no_rvalue_references = empty_boost;
+#endif
+#ifndef BOOST_NO_SCOPED_ENUMS
+#include "boost_no_scoped_enums.ipp"
+#else
+namespace boost_no_scoped_enums = empty_boost;
+#endif
+#ifndef BOOST_NO_SFINAE
+#include "boost_no_sfinae.ipp"
+#else
+namespace boost_no_sfinae = empty_boost;
+#endif
+#ifndef BOOST_NO_SFINAE_EXPR
+#include "boost_no_sfinae_expr.ipp"
+#else
+namespace boost_no_sfinae_expr = empty_boost;
+#endif
+#ifndef BOOST_NO_STRINGSTREAM
+#include "boost_no_sstream.ipp"
+#else
+namespace boost_no_stringstream = empty_boost;
+#endif
+#ifndef BOOST_NO_STATIC_ASSERT
+#include "boost_no_static_assert.ipp"
+#else
+namespace boost_no_static_assert = empty_boost;
+#endif
+#ifndef BOOST_NO_STDC_NAMESPACE
+#include "boost_no_stdc_namespace.ipp"
+#else
+namespace boost_no_stdc_namespace = empty_boost;
+#endif
+#ifndef BOOST_NO_STD_ALLOCATOR
+#include "boost_no_std_allocator.ipp"
+#else
+namespace boost_no_std_allocator = empty_boost;
+#endif
+#ifndef BOOST_NO_STD_DISTANCE
+#include "boost_no_std_distance.ipp"
+#else
+namespace boost_no_std_distance = empty_boost;
+#endif
+#ifndef BOOST_NO_STD_ITERATOR
+#include "boost_no_std_iterator.ipp"
+#else
+namespace boost_no_std_iterator = empty_boost;
+#endif
+#ifndef BOOST_NO_STD_ITERATOR_TRAITS
+#include "boost_no_std_iter_traits.ipp"
+#else
+namespace boost_no_std_iterator_traits = empty_boost;
+#endif
+#ifndef BOOST_NO_STD_LOCALE
+#include "boost_no_std_locale.ipp"
+#else
+namespace boost_no_std_locale = empty_boost;
+#endif
+#ifndef BOOST_NO_STD_MESSAGES
+#include "boost_no_std_messages.ipp"
+#else
+namespace boost_no_std_messages = empty_boost;
+#endif
+#ifndef BOOST_NO_STD_MIN_MAX
+#include "boost_no_std_min_max.ipp"
+#else
+namespace boost_no_std_min_max = empty_boost;
+#endif
+#ifndef BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN
+#include "boost_no_std_oi_assign.ipp"
+#else
+namespace boost_no_std_output_iterator_assign = empty_boost;
+#endif
+#ifndef BOOST_NO_STD_TYPEINFO
+#include "boost_no_std_typeinfo.ipp"
+#else
+namespace boost_no_std_typeinfo = empty_boost;
+#endif
+#ifndef BOOST_NO_STD_UNORDERED
+#include "boost_no_std_unordered.ipp"
+#else
+namespace boost_no_std_unordered = empty_boost;
+#endif
+#ifndef BOOST_NO_STD_USE_FACET
+#include "boost_no_std_use_facet.ipp"
+#else
+namespace boost_no_std_use_facet = empty_boost;
+#endif
+#ifndef BOOST_NO_STD_WSTREAMBUF
+#include "boost_no_std_wstreambuf.ipp"
+#else
+namespace boost_no_std_wstreambuf = empty_boost;
+#endif
+#ifndef BOOST_NO_STD_WSTRING
+#include "boost_no_std_wstring.ipp"
+#else
+namespace boost_no_std_wstring = empty_boost;
+#endif
+#ifndef BOOST_NO_SWPRINTF
+#include "boost_no_swprintf.ipp"
+#else
+namespace boost_no_swprintf = empty_boost;
+#endif
+#ifndef BOOST_NO_TEMPLATE_ALIASES
+#include "boost_no_template_aliases.ipp"
+#else
+namespace boost_no_template_aliases = empty_boost;
+#endif
+#ifndef BOOST_NO_TEMPLATED_IOSTREAMS
+#include "boost_no_template_streams.ipp"
+#else
+namespace boost_no_templated_iostreams = empty_boost;
+#endif
+#ifndef BOOST_NO_TEMPLATE_TEMPLATES
+#include "boost_no_template_template.ipp"
+#else
+namespace boost_no_template_templates = empty_boost;
+#endif
+#ifndef BOOST_NO_TWO_PHASE_NAME_LOOKUP
+#include "boost_no_two_phase_lookup.ipp"
+#else
+namespace boost_no_two_phase_name_lookup = empty_boost;
+#endif
+#ifndef BOOST_NO_TYPEID
+#include "boost_no_typeid.ipp"
+#else
+namespace boost_no_typeid = empty_boost;
+#endif
+#ifndef BOOST_NO_TYPENAME_WITH_CTOR
+#include "boost_no_typename_with_ctor.ipp"
+#else
+namespace boost_no_typename_with_ctor = empty_boost;
+#endif
+#ifndef BOOST_NO_UNICODE_LITERALS
+#include "boost_no_unicode_literals.ipp"
+#else
+namespace boost_no_unicode_literals = empty_boost;
+#endif
+#ifndef BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
+#include "boost_no_unified_init.ipp"
+#else
+namespace boost_no_unified_initialization_syntax = empty_boost;
+#endif
+#ifndef BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
+#include "boost_no_using_breaks_adl.ipp"
+#else
+namespace boost_function_scope_using_declaration_breaks_adl = empty_boost;
+#endif
+#ifndef BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
+#include "boost_no_using_decl_overld.ipp"
+#else
+namespace boost_no_using_declaration_overloads_from_typename_base = empty_boost;
+#endif
+#ifndef BOOST_NO_USING_TEMPLATE
+#include "boost_no_using_template.ipp"
+#else
+namespace boost_no_using_template = empty_boost;
+#endif
+#ifndef BOOST_NO_VARIADIC_MACROS
+#include "boost_no_variadic_macros.ipp"
+#else
+namespace boost_no_variadic_macros = empty_boost;
+#endif
+#ifndef BOOST_NO_VARIADIC_TEMPLATES
+#include "boost_no_variadic_templates.ipp"
+#else
+namespace boost_no_variadic_templates = empty_boost;
+#endif
+#ifndef BOOST_NO_VOID_RETURNS
+#include "boost_no_void_returns.ipp"
+#else
+namespace boost_no_void_returns = empty_boost;
+#endif
+#ifndef BOOST_NO_INTRINSIC_WCHAR_T
+#include "boost_no_wchar_t.ipp"
+#else
+namespace boost_no_intrinsic_wchar_t = empty_boost;
+#endif
+
+#ifdef BOOST_HAS_TWO_ARG_USE_FACET
+#include "boost_has_2arg_use_facet.ipp"
+#else
+namespace boost_has_two_arg_use_facet = empty_boost;
+#endif
+#ifdef BOOST_HAS_BETHREADS
+#include "boost_has_bethreads.ipp"
+#else
+namespace boost_has_bethreads = empty_boost;
+#endif
+#ifdef BOOST_HAS_CLOCK_GETTIME
+#include "boost_has_clock_gettime.ipp"
+#else
+namespace boost_has_clock_gettime = empty_boost;
+#endif
+#ifdef BOOST_HAS_DIRENT_H
+#include "boost_has_dirent_h.ipp"
+#else
+namespace boost_has_dirent_h = empty_boost;
+#endif
+#ifdef BOOST_HAS_EXPM1
+#include "boost_has_expm1.ipp"
+#else
+namespace boost_has_expm1 = empty_boost;
+#endif
+#ifdef BOOST_HAS_FTIME
+#include "boost_has_ftime.ipp"
+#else
+namespace boost_has_ftime = empty_boost;
+#endif
+#ifdef BOOST_HAS_GETSYSTEMTIMEASFILETIME
+#include "boost_has_getsystemtimeasfiletime.ipp"
+#else
+namespace boost_has_getsystemtimeasfiletime = empty_boost;
+#endif
+#ifdef BOOST_HAS_GETTIMEOFDAY
+#include "boost_has_gettimeofday.ipp"
+#else
+namespace boost_has_gettimeofday = empty_boost;
+#endif
+#ifdef BOOST_HAS_HASH
+#include "boost_has_hash.ipp"
+#else
+namespace boost_has_hash = empty_boost;
+#endif
+#ifdef BOOST_HAS_LOG1P
+#include "boost_has_log1p.ipp"
+#else
+namespace boost_has_log1p = empty_boost;
+#endif
+#ifdef BOOST_HAS_LONG_LONG
+#include "boost_has_long_long.ipp"
+#else
+namespace boost_has_long_long = empty_boost;
+#endif
+#ifdef BOOST_HAS_MACRO_USE_FACET
+#include "boost_has_macro_use_facet.ipp"
+#else
+namespace boost_has_macro_use_facet = empty_boost;
+#endif
+#ifdef BOOST_HAS_MS_INT64
+#include "boost_has_ms_int64.ipp"
+#else
+namespace boost_has_ms_int64 = empty_boost;
+#endif
+#ifdef BOOST_HAS_NANOSLEEP
+#include "boost_has_nanosleep.ipp"
+#else
+namespace boost_has_nanosleep = empty_boost;
+#endif
+#ifdef BOOST_HAS_NL_TYPES_H
+#include "boost_has_nl_types_h.ipp"
+#else
+namespace boost_has_nl_types_h = empty_boost;
+#endif
+#ifdef BOOST_HAS_NRVO
+#include "boost_has_nrvo.ipp"
+#else
+namespace boost_has_nrvo = empty_boost;
+#endif
+#ifdef BOOST_HAS_PARTIAL_STD_ALLOCATOR
+#include "boost_has_part_alloc.ipp"
+#else
+namespace boost_has_partial_std_allocator = empty_boost;
+#endif
+#ifdef BOOST_HAS_PTHREADS
+#include "boost_has_pthreads.ipp"
+#else
+namespace boost_has_pthreads = empty_boost;
+#endif
+#ifdef BOOST_HAS_PTHREAD_DELAY_NP
+#include "boost_has_pthread_delay_np.ipp"
+#else
+namespace boost_has_pthread_delay_np = empty_boost;
+#endif
+#ifdef BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
+#include "boost_has_pthread_ma_st.ipp"
+#else
+namespace boost_has_pthread_mutexattr_settype = empty_boost;
+#endif
+#ifdef BOOST_HAS_PTHREAD_YIELD
+#include "boost_has_pthread_yield.ipp"
+#else
+namespace boost_has_pthread_yield = empty_boost;
+#endif
+#ifdef BOOST_HAS_RVALUE_REFS
+#include "boost_has_rvalue_refs.ipp"
+#else
+namespace boost_has_rvalue_refs = empty_boost;
+#endif
+#ifdef BOOST_HAS_SCHED_YIELD
+#include "boost_has_sched_yield.ipp"
+#else
+namespace boost_has_sched_yield = empty_boost;
+#endif
+#ifdef BOOST_HAS_SGI_TYPE_TRAITS
+#include "boost_has_sgi_type_traits.ipp"
+#else
+namespace boost_has_sgi_type_traits = empty_boost;
+#endif
+#ifdef BOOST_HAS_SIGACTION
+#include "boost_has_sigaction.ipp"
+#else
+namespace boost_has_sigaction = empty_boost;
+#endif
+#ifdef BOOST_HAS_SLIST
+#include "boost_has_slist.ipp"
+#else
+namespace boost_has_slist = empty_boost;
+#endif
+#ifdef BOOST_HAS_STATIC_ASSERT
+#include "boost_has_static_assert.ipp"
+#else
+namespace boost_has_static_assert = empty_boost;
+#endif
+#ifdef BOOST_HAS_STDINT_H
+#include "boost_has_stdint_h.ipp"
+#else
+namespace boost_has_stdint_h = empty_boost;
+#endif
+#ifdef BOOST_HAS_STLP_USE_FACET
+#include "boost_has_stlp_use_facet.ipp"
+#else
+namespace boost_has_stlp_use_facet = empty_boost;
+#endif
+#ifdef BOOST_HAS_TR1_ARRAY
+#include "boost_has_tr1_array.ipp"
+#else
+namespace boost_has_tr1_array = empty_boost;
+#endif
+#ifdef BOOST_HAS_TR1_BIND
+#include "boost_has_tr1_bind.ipp"
+#else
+namespace boost_has_tr1_bind = empty_boost;
+#endif
+#ifdef BOOST_HAS_TR1_COMPLEX_OVERLOADS
+#include "boost_has_tr1_complex_over.ipp"
+#else
+namespace boost_has_tr1_complex_overloads = empty_boost;
+#endif
+#ifdef BOOST_HAS_TR1_COMPLEX_INVERSE_TRIG
+#include "boost_has_tr1_complex_trig.ipp"
+#else
+namespace boost_has_tr1_complex_inverse_trig = empty_boost;
+#endif
+#ifdef BOOST_HAS_TR1_FUNCTION
+#include "boost_has_tr1_function.ipp"
+#else
+namespace boost_has_tr1_function = empty_boost;
+#endif
+#ifdef BOOST_HAS_TR1_HASH
+#include "boost_has_tr1_hash.ipp"
+#else
+namespace boost_has_tr1_hash = empty_boost;
+#endif
+#ifdef BOOST_HAS_TR1_MEM_FN
+#include "boost_has_tr1_mem_fn.ipp"
+#else
+namespace boost_has_tr1_mem_fn = empty_boost;
+#endif
+#ifdef BOOST_HAS_TR1_RANDOM
+#include "boost_has_tr1_random.ipp"
+#else
+namespace boost_has_tr1_random = empty_boost;
+#endif
+#ifdef BOOST_HAS_TR1_REFERENCE_WRAPPER
+#include "boost_has_tr1_ref_wrap.ipp"
+#else
+namespace boost_has_tr1_reference_wrapper = empty_boost;
+#endif
+#ifdef BOOST_HAS_TR1_REGEX
+#include "boost_has_tr1_regex.ipp"
+#else
+namespace boost_has_tr1_regex = empty_boost;
+#endif
+#ifdef BOOST_HAS_TR1_RESULT_OF
+#include "boost_has_tr1_result_of.ipp"
+#else
+namespace boost_has_tr1_result_of = empty_boost;
+#endif
+#ifdef BOOST_HAS_TR1_SHARED_PTR
+#include "boost_has_tr1_shared_ptr.ipp"
+#else
+namespace boost_has_tr1_shared_ptr = empty_boost;
+#endif
+#ifdef BOOST_HAS_TR1_TUPLE
+#include "boost_has_tr1_tuple.ipp"
+#else
+namespace boost_has_tr1_tuple = empty_boost;
+#endif
+#ifdef BOOST_HAS_TR1_TYPE_TRAITS
+#include "boost_has_tr1_type_traits.ipp"
+#else
+namespace boost_has_tr1_type_traits = empty_boost;
+#endif
+#ifdef BOOST_HAS_TR1_UNORDERED_MAP
+#include "boost_has_tr1_unordered_map.ipp"
+#else
+namespace boost_has_tr1_unordered_map = empty_boost;
+#endif
+#ifdef BOOST_HAS_TR1_UNORDERED_SET
+#include "boost_has_tr1_unordered_set.ipp"
+#else
+namespace boost_has_tr1_unordered_set = empty_boost;
+#endif
+#ifdef BOOST_HAS_TR1_UTILITY
+#include "boost_has_tr1_utility.ipp"
+#else
+namespace boost_has_tr1_utility = empty_boost;
+#endif
+#ifdef BOOST_HAS_UNISTD_H
+#include "boost_has_unistd_h.ipp"
+#else
+namespace boost_has_unistd_h = empty_boost;
+#endif
+#ifdef BOOST_HAS_VARIADIC_TMPL
+#include "boost_has_variadic_tmpl.ipp"
+#else
+namespace boost_has_variadic_tmpl = empty_boost;
+#endif
+#ifdef BOOST_MSVC6_MEMBER_TEMPLATES
+#include "boost_has_vc6_mem_templ.ipp"
+#else
+namespace boost_msvc6_member_templates = empty_boost;
+#endif
+#ifdef BOOST_MSVC_STD_ITERATOR
+#include "boost_has_vc_iterator.ipp"
+#else
+namespace boost_msvc_std_iterator = empty_boost;
+#endif
+#ifdef BOOST_HAS_WINTHREADS
+#include "boost_has_winthreads.ipp"
+#else
+namespace boost_has_winthreads = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ if(0 != boost_has_two_arg_use_facet::test())
+ {
+ std::cerr << "Failed test for BOOST_HAS_TWO_ARG_USE_FACET at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_has_bethreads::test())
+ {
+ std::cerr << "Failed test for BOOST_HAS_BETHREADS at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_has_clock_gettime::test())
+ {
+ std::cerr << "Failed test for BOOST_HAS_CLOCK_GETTIME at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_has_dirent_h::test())
+ {
+ std::cerr << "Failed test for BOOST_HAS_DIRENT_H at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_has_expm1::test())
+ {
+ std::cerr << "Failed test for BOOST_HAS_EXPM1 at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_has_ftime::test())
+ {
+ std::cerr << "Failed test for BOOST_HAS_FTIME at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_has_getsystemtimeasfiletime::test())
+ {
+ std::cerr << "Failed test for BOOST_HAS_GETSYSTEMTIMEASFILETIME at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_has_gettimeofday::test())
+ {
+ std::cerr << "Failed test for BOOST_HAS_GETTIMEOFDAY at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_has_hash::test())
+ {
+ std::cerr << "Failed test for BOOST_HAS_HASH at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_has_log1p::test())
+ {
+ std::cerr << "Failed test for BOOST_HAS_LOG1P at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_has_long_long::test())
+ {
+ std::cerr << "Failed test for BOOST_HAS_LONG_LONG at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_has_macro_use_facet::test())
+ {
+ std::cerr << "Failed test for BOOST_HAS_MACRO_USE_FACET at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_has_ms_int64::test())
+ {
+ std::cerr << "Failed test for BOOST_HAS_MS_INT64 at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_has_nanosleep::test())
+ {
+ std::cerr << "Failed test for BOOST_HAS_NANOSLEEP at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_has_nl_types_h::test())
+ {
+ std::cerr << "Failed test for BOOST_HAS_NL_TYPES_H at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_has_nrvo::test())
+ {
+ std::cerr << "Failed test for BOOST_HAS_NRVO at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_has_partial_std_allocator::test())
+ {
+ std::cerr << "Failed test for BOOST_HAS_PARTIAL_STD_ALLOCATOR at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_has_pthreads::test())
+ {
+ std::cerr << "Failed test for BOOST_HAS_PTHREADS at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_has_pthread_delay_np::test())
+ {
+ std::cerr << "Failed test for BOOST_HAS_PTHREAD_DELAY_NP at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_has_pthread_mutexattr_settype::test())
+ {
+ std::cerr << "Failed test for BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_has_pthread_yield::test())
+ {
+ std::cerr << "Failed test for BOOST_HAS_PTHREAD_YIELD at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_has_rvalue_refs::test())
+ {
+ std::cerr << "Failed test for BOOST_HAS_RVALUE_REFS at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_has_sched_yield::test())
+ {
+ std::cerr << "Failed test for BOOST_HAS_SCHED_YIELD at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_has_sgi_type_traits::test())
+ {
+ std::cerr << "Failed test for BOOST_HAS_SGI_TYPE_TRAITS at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_has_sigaction::test())
+ {
+ std::cerr << "Failed test for BOOST_HAS_SIGACTION at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_has_slist::test())
+ {
+ std::cerr << "Failed test for BOOST_HAS_SLIST at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_has_static_assert::test())
+ {
+ std::cerr << "Failed test for BOOST_HAS_STATIC_ASSERT at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_has_stdint_h::test())
+ {
+ std::cerr << "Failed test for BOOST_HAS_STDINT_H at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_has_stlp_use_facet::test())
+ {
+ std::cerr << "Failed test for BOOST_HAS_STLP_USE_FACET at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_has_tr1_array::test())
+ {
+ std::cerr << "Failed test for BOOST_HAS_TR1_ARRAY at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_has_tr1_bind::test())
+ {
+ std::cerr << "Failed test for BOOST_HAS_TR1_BIND at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_has_tr1_complex_overloads::test())
+ {
+ std::cerr << "Failed test for BOOST_HAS_TR1_COMPLEX_OVERLOADS at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_has_tr1_complex_inverse_trig::test())
+ {
+ std::cerr << "Failed test for BOOST_HAS_TR1_COMPLEX_INVERSE_TRIG at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_has_tr1_function::test())
+ {
+ std::cerr << "Failed test for BOOST_HAS_TR1_FUNCTION at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_has_tr1_hash::test())
+ {
+ std::cerr << "Failed test for BOOST_HAS_TR1_HASH at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_has_tr1_mem_fn::test())
+ {
+ std::cerr << "Failed test for BOOST_HAS_TR1_MEM_FN at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_has_tr1_random::test())
+ {
+ std::cerr << "Failed test for BOOST_HAS_TR1_RANDOM at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_has_tr1_reference_wrapper::test())
+ {
+ std::cerr << "Failed test for BOOST_HAS_TR1_REFERENCE_WRAPPER at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_has_tr1_regex::test())
+ {
+ std::cerr << "Failed test for BOOST_HAS_TR1_REGEX at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_has_tr1_result_of::test())
+ {
+ std::cerr << "Failed test for BOOST_HAS_TR1_RESULT_OF at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_has_tr1_shared_ptr::test())
+ {
+ std::cerr << "Failed test for BOOST_HAS_TR1_SHARED_PTR at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_has_tr1_tuple::test())
+ {
+ std::cerr << "Failed test for BOOST_HAS_TR1_TUPLE at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_has_tr1_type_traits::test())
+ {
+ std::cerr << "Failed test for BOOST_HAS_TR1_TYPE_TRAITS at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_has_tr1_unordered_map::test())
+ {
+ std::cerr << "Failed test for BOOST_HAS_TR1_UNORDERED_MAP at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_has_tr1_unordered_set::test())
+ {
+ std::cerr << "Failed test for BOOST_HAS_TR1_UNORDERED_SET at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_has_tr1_utility::test())
+ {
+ std::cerr << "Failed test for BOOST_HAS_TR1_UTILITY at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_has_unistd_h::test())
+ {
+ std::cerr << "Failed test for BOOST_HAS_UNISTD_H at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_has_variadic_tmpl::test())
+ {
+ std::cerr << "Failed test for BOOST_HAS_VARIADIC_TMPL at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_msvc6_member_templates::test())
+ {
+ std::cerr << "Failed test for BOOST_MSVC6_MEMBER_TEMPLATES at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_msvc_std_iterator::test())
+ {
+ std::cerr << "Failed test for BOOST_MSVC_STD_ITERATOR at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_has_winthreads::test())
+ {
+ std::cerr << "Failed test for BOOST_HAS_WINTHREADS at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_0x_hdr_array::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_0X_HDR_ARRAY at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_0x_hdr_chrono::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_0X_HDR_CHRONO at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_0x_hdr_codecvt::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_0X_HDR_CODECVT at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_0x_hdr_condition_variable::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_0X_HDR_CONDITION_VARIABLE at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_0x_hdr_forward_list::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_0X_HDR_FORWARD_LIST at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_0x_hdr_future::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_0X_HDR_FUTURE at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_0x_hdr_initializer_list::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_0X_HDR_INITIALIZER_LIST at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_0x_hdr_mutex::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_0X_HDR_MUTEX at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_0x_hdr_random::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_0X_HDR_RANDOM at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_0x_hdr_ratio::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_0X_HDR_RATIO at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_0x_hdr_regex::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_0X_HDR_REGEX at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_0x_hdr_system_error::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_0X_HDR_SYSTEM_ERROR at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_0x_hdr_thread::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_0X_HDR_THREAD at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_0x_hdr_tuple::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_0X_HDR_TUPLE at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_0x_hdr_typeindex::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_0X_HDR_TYPEINDEX at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_0x_hdr_type_traits::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_0X_HDR_TYPE_TRAITS at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_0x_hdr_unordered_map::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_0X_HDR_UNORDERED_MAP at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_0x_hdr_unordered_set::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_0X_HDR_UNORDERED_SET at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_adl_barrier::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_ADL_BARRIER at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_argument_dependent_lookup::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_array_type_specializations::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_auto_declarations::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_AUTO_DECLARATIONS at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_auto_multideclarations::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_AUTO_MULTIDECLARATIONS at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_auto_ptr::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_AUTO_PTR at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_bcb_partial_specialization_bug::test())
+ {
+ std::cerr << "Failed test for BOOST_BCB_PARTIAL_SPECIALIZATION_BUG at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_char16_t::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_CHAR16_T at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_char32_t::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_CHAR32_T at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_complete_value_initialization::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_COMPLETE_VALUE_INITIALIZATION at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_constexpr::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_CONSTEXPR at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_ctype_functions::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_CTYPE_FUNCTIONS at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_cv_specializations::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_CV_SPECIALIZATIONS at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_cv_void_specializations::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_CV_VOID_SPECIALIZATIONS at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_cwchar::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_CWCHAR at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_cwctype::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_CWCTYPE at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_decltype::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_DECLTYPE at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_decltype_n3276::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_DECLTYPE_N3276 at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_deduced_typename::test())
+ {
+ std::cerr << "Failed test for BOOST_DEDUCED_TYPENAME at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_defaulted_functions::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_DEFAULTED_FUNCTIONS at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_deleted_functions::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_DELETED_FUNCTIONS at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_dependent_nested_derivations::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_DEPENDENT_NESTED_DERIVATIONS at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_dependent_types_in_template_value_parameters::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_exceptions::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_EXCEPTIONS at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_exception_std_namespace::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_EXCEPTION_STD_NAMESPACE at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_explicit_conversion_operators::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_EXPLICIT_CONVERSION_OPERATORS at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_explicit_function_template_arguments::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_extern_template::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_EXTERN_TEMPLATE at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_fenv_h::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_FENV_H at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_function_template_default_args::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_function_type_specializations::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_function_template_ordering::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_FUNCTION_TEMPLATE_ORDERING at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_ms_int64_numeric_limits::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_MS_INT64_NUMERIC_LIMITS at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_initializer_lists::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_INITIALIZER_LISTS at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_inclass_member_initialization::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_INCLASS_MEMBER_INITIALIZATION at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_integral_int64_t::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_INTEGRAL_INT64_T at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_iosfwd::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_IOSFWD at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_iostream::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_IOSTREAM at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_is_abstract::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_IS_ABSTRACT at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_templated_iterator_constructors::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_lambdas::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_LAMBDAS at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_limits::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_LIMITS at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_limits_compile_time_constants::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_numeric_limits_lowest::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_NUMERIC_LIMITS_LOWEST at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_long_long_numeric_limits::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_LONG_LONG_NUMERIC_LIMITS at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_long_long::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_LONG_LONG at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_member_function_specializations::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_member_templates::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_MEMBER_TEMPLATES at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_member_template_friends::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_MEMBER_TEMPLATE_FRIENDS at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_member_template_keyword::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_MEMBER_TEMPLATE_KEYWORD at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_pointer_to_member_template_parameters::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_nested_friendship::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_NESTED_FRIENDSHIP at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_noexcept::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_NOEXCEPT at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_nullptr::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_NULLPTR at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_operators_in_namespace::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_OPERATORS_IN_NAMESPACE at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_template_partial_specialization::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_partial_specialization_implicit_default_args::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_private_in_aggregate::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_PRIVATE_IN_AGGREGATE at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_pointer_to_member_const::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_POINTER_TO_MEMBER_CONST at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_raw_literals::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_RAW_LITERALS at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_unreachable_return_detection::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_UNREACHABLE_RETURN_DETECTION at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_rtti::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_RTTI at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_rvalue_references::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_RVALUE_REFERENCES at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_scoped_enums::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_SCOPED_ENUMS at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_sfinae::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_SFINAE at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_sfinae_expr::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_SFINAE_EXPR at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_stringstream::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_STRINGSTREAM at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_static_assert::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_STATIC_ASSERT at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_stdc_namespace::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_STDC_NAMESPACE at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_std_allocator::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_STD_ALLOCATOR at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_std_distance::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_STD_DISTANCE at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_std_iterator::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_STD_ITERATOR at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_std_iterator_traits::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_STD_ITERATOR_TRAITS at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_std_locale::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_STD_LOCALE at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_std_messages::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_STD_MESSAGES at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_std_min_max::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_STD_MIN_MAX at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_std_output_iterator_assign::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_std_typeinfo::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_STD_TYPEINFO at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_std_unordered::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_STD_UNORDERED at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_std_use_facet::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_STD_USE_FACET at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_std_wstreambuf::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_STD_WSTREAMBUF at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_std_wstring::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_STD_WSTRING at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_swprintf::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_SWPRINTF at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_template_aliases::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_TEMPLATE_ALIASES at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_templated_iostreams::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_TEMPLATED_IOSTREAMS at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_template_templates::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_TEMPLATE_TEMPLATES at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_two_phase_name_lookup::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_TWO_PHASE_NAME_LOOKUP at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_typeid::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_TYPEID at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_typename_with_ctor::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_TYPENAME_WITH_CTOR at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_unicode_literals::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_UNICODE_LITERALS at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_unified_initialization_syntax::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_function_scope_using_declaration_breaks_adl::test())
+ {
+ std::cerr << "Failed test for BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_using_declaration_overloads_from_typename_base::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_using_template::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_USING_TEMPLATE at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_variadic_macros::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_VARIADIC_MACROS at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_variadic_templates::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_VARIADIC_TEMPLATES at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_void_returns::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_VOID_RETURNS at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_intrinsic_wchar_t::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_INTRINSIC_WCHAR_T at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ return error_count;
+}
+
diff --git a/libs/config/test/config_test_c.c b/libs/config/test/config_test_c.c
new file mode 100644
index 0000000000..9955dbe608
--- /dev/null
+++ b/libs/config/test/config_test_c.c
@@ -0,0 +1,9 @@
+
+
+#include <boost/config.hpp>
+
+
+int main()
+{
+ return 0;
+}
diff --git a/libs/config/test/has_2arg_use_facet_fail.cpp b/libs/config/test/has_2arg_use_facet_fail.cpp
new file mode 100644
index 0000000000..1d0999dcb1
--- /dev/null
+++ b/libs/config/test/has_2arg_use_facet_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:03:59 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_HAS_TWO_ARG_USE_FACET
+// This file should not compile, if it does then
+// BOOST_HAS_TWO_ARG_USE_FACET should be defined.
+// See file boost_has_2arg_use_facet.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_HAS_TWO_ARG_USE_FACET
+#include "boost_has_2arg_use_facet.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_two_arg_use_facet::test();
+}
+
diff --git a/libs/config/test/has_2arg_use_facet_pass.cpp b/libs/config/test/has_2arg_use_facet_pass.cpp
new file mode 100644
index 0000000000..dbfda303ba
--- /dev/null
+++ b/libs/config/test/has_2arg_use_facet_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:03:59 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_HAS_TWO_ARG_USE_FACET
+// This file should compile, if it does not then
+// BOOST_HAS_TWO_ARG_USE_FACET should not be defined.
+// See file boost_has_2arg_use_facet.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_HAS_TWO_ARG_USE_FACET
+#include "boost_has_2arg_use_facet.ipp"
+#else
+namespace boost_has_two_arg_use_facet = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_two_arg_use_facet::test();
+}
+
diff --git a/libs/config/test/has_bethreads_fail.cpp b/libs/config/test/has_bethreads_fail.cpp
new file mode 100644
index 0000000000..8606f3dc11
--- /dev/null
+++ b/libs/config/test/has_bethreads_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:03:59 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_HAS_BETHREADS
+// This file should not compile, if it does then
+// BOOST_HAS_BETHREADS should be defined.
+// See file boost_has_bethreads.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_HAS_BETHREADS
+#include "boost_has_bethreads.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_bethreads::test();
+}
+
diff --git a/libs/config/test/has_bethreads_pass.cpp b/libs/config/test/has_bethreads_pass.cpp
new file mode 100644
index 0000000000..5f4bbdbecc
--- /dev/null
+++ b/libs/config/test/has_bethreads_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:03:59 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_HAS_BETHREADS
+// This file should compile, if it does not then
+// BOOST_HAS_BETHREADS should not be defined.
+// See file boost_has_bethreads.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_HAS_BETHREADS
+#include "boost_has_bethreads.ipp"
+#else
+namespace boost_has_bethreads = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_bethreads::test();
+}
+
diff --git a/libs/config/test/has_clock_gettime_fail.cpp b/libs/config/test/has_clock_gettime_fail.cpp
new file mode 100644
index 0000000000..4cf5dfe011
--- /dev/null
+++ b/libs/config/test/has_clock_gettime_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:03:59 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_HAS_CLOCK_GETTIME
+// This file should not compile, if it does then
+// BOOST_HAS_CLOCK_GETTIME should be defined.
+// See file boost_has_clock_gettime.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_HAS_CLOCK_GETTIME
+#include "boost_has_clock_gettime.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_clock_gettime::test();
+}
+
diff --git a/libs/config/test/has_clock_gettime_pass.cpp b/libs/config/test/has_clock_gettime_pass.cpp
new file mode 100644
index 0000000000..16e57b4ac1
--- /dev/null
+++ b/libs/config/test/has_clock_gettime_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:03:59 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_HAS_CLOCK_GETTIME
+// This file should compile, if it does not then
+// BOOST_HAS_CLOCK_GETTIME should not be defined.
+// See file boost_has_clock_gettime.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_HAS_CLOCK_GETTIME
+#include "boost_has_clock_gettime.ipp"
+#else
+namespace boost_has_clock_gettime = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_clock_gettime::test();
+}
+
diff --git a/libs/config/test/has_dirent_h_fail.cpp b/libs/config/test/has_dirent_h_fail.cpp
new file mode 100644
index 0000000000..4304df30ff
--- /dev/null
+++ b/libs/config/test/has_dirent_h_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:03:59 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_HAS_DIRENT_H
+// This file should not compile, if it does then
+// BOOST_HAS_DIRENT_H should be defined.
+// See file boost_has_dirent_h.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_HAS_DIRENT_H
+#include "boost_has_dirent_h.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_dirent_h::test();
+}
+
diff --git a/libs/config/test/has_dirent_h_pass.cpp b/libs/config/test/has_dirent_h_pass.cpp
new file mode 100644
index 0000000000..184152b679
--- /dev/null
+++ b/libs/config/test/has_dirent_h_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:03:59 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_HAS_DIRENT_H
+// This file should compile, if it does not then
+// BOOST_HAS_DIRENT_H should not be defined.
+// See file boost_has_dirent_h.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_HAS_DIRENT_H
+#include "boost_has_dirent_h.ipp"
+#else
+namespace boost_has_dirent_h = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_dirent_h::test();
+}
+
diff --git a/libs/config/test/has_expm1_fail.cpp b/libs/config/test/has_expm1_fail.cpp
new file mode 100644
index 0000000000..2ccd2868e4
--- /dev/null
+++ b/libs/config/test/has_expm1_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Oct 14 18:38:49 2005
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_HAS_EXPM1
+// This file should not compile, if it does then
+// BOOST_HAS_EXPM1 should be defined.
+// See file boost_has_expm1.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_HAS_EXPM1
+#include "boost_has_expm1.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_expm1::test();
+}
+
diff --git a/libs/config/test/has_expm1_pass.cpp b/libs/config/test/has_expm1_pass.cpp
new file mode 100644
index 0000000000..9f9af2f851
--- /dev/null
+++ b/libs/config/test/has_expm1_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Oct 14 18:38:49 2005
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_HAS_EXPM1
+// This file should compile, if it does not then
+// BOOST_HAS_EXPM1 should not be defined.
+// See file boost_has_expm1.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_HAS_EXPM1
+#include "boost_has_expm1.ipp"
+#else
+namespace boost_has_expm1 = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_expm1::test();
+}
+
diff --git a/libs/config/test/has_ftime_fail.cpp b/libs/config/test/has_ftime_fail.cpp
new file mode 100644
index 0000000000..ecbfde3611
--- /dev/null
+++ b/libs/config/test/has_ftime_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:03:59 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_HAS_FTIME
+// This file should not compile, if it does then
+// BOOST_HAS_FTIME should be defined.
+// See file boost_has_ftime.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_HAS_FTIME
+#include "boost_has_ftime.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_ftime::test();
+}
+
diff --git a/libs/config/test/has_ftime_pass.cpp b/libs/config/test/has_ftime_pass.cpp
new file mode 100644
index 0000000000..6dc150f2b2
--- /dev/null
+++ b/libs/config/test/has_ftime_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:03:59 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_HAS_FTIME
+// This file should compile, if it does not then
+// BOOST_HAS_FTIME should not be defined.
+// See file boost_has_ftime.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_HAS_FTIME
+#include "boost_has_ftime.ipp"
+#else
+namespace boost_has_ftime = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_ftime::test();
+}
+
diff --git a/libs/config/test/has_getsystemtimeasfiletime_fail.cpp b/libs/config/test/has_getsystemtimeasfiletime_fail.cpp
new file mode 100644
index 0000000000..1541493856
--- /dev/null
+++ b/libs/config/test/has_getsystemtimeasfiletime_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Wed Jul 13 18:50:13 2011
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: generate.cpp 72327 2011-06-01 14:51:03Z eric_niebler $
+//
+
+
+// Test file for macro BOOST_HAS_GETSYSTEMTIMEASFILETIME
+// This file should not compile, if it does then
+// BOOST_HAS_GETSYSTEMTIMEASFILETIME should be defined.
+// See file boost_has_getsystemtimeasfiletime.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_HAS_GETSYSTEMTIMEASFILETIME
+#include "boost_has_getsystemtimeasfiletime.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_getsystemtimeasfiletime::test();
+}
+
diff --git a/libs/config/test/has_getsystemtimeasfiletime_pass.cpp b/libs/config/test/has_getsystemtimeasfiletime_pass.cpp
new file mode 100644
index 0000000000..e8ea83bbe8
--- /dev/null
+++ b/libs/config/test/has_getsystemtimeasfiletime_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Wed Jul 13 18:50:13 2011
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: generate.cpp 72327 2011-06-01 14:51:03Z eric_niebler $
+//
+
+
+// Test file for macro BOOST_HAS_GETSYSTEMTIMEASFILETIME
+// This file should compile, if it does not then
+// BOOST_HAS_GETSYSTEMTIMEASFILETIME should not be defined.
+// See file boost_has_getsystemtimeasfiletime.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_HAS_GETSYSTEMTIMEASFILETIME
+#include "boost_has_getsystemtimeasfiletime.ipp"
+#else
+namespace boost_has_getsystemtimeasfiletime = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_getsystemtimeasfiletime::test();
+}
+
diff --git a/libs/config/test/has_gettimeofday_fail.cpp b/libs/config/test/has_gettimeofday_fail.cpp
new file mode 100644
index 0000000000..4f59b562c3
--- /dev/null
+++ b/libs/config/test/has_gettimeofday_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:03:59 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_HAS_GETTIMEOFDAY
+// This file should not compile, if it does then
+// BOOST_HAS_GETTIMEOFDAY should be defined.
+// See file boost_has_gettimeofday.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_HAS_GETTIMEOFDAY
+#include "boost_has_gettimeofday.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_gettimeofday::test();
+}
+
diff --git a/libs/config/test/has_gettimeofday_pass.cpp b/libs/config/test/has_gettimeofday_pass.cpp
new file mode 100644
index 0000000000..033a88fe3a
--- /dev/null
+++ b/libs/config/test/has_gettimeofday_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:03:59 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_HAS_GETTIMEOFDAY
+// This file should compile, if it does not then
+// BOOST_HAS_GETTIMEOFDAY should not be defined.
+// See file boost_has_gettimeofday.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_HAS_GETTIMEOFDAY
+#include "boost_has_gettimeofday.ipp"
+#else
+namespace boost_has_gettimeofday = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_gettimeofday::test();
+}
+
diff --git a/libs/config/test/has_hash_fail.cpp b/libs/config/test/has_hash_fail.cpp
new file mode 100644
index 0000000000..6b3ac3a60b
--- /dev/null
+++ b/libs/config/test/has_hash_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:03:59 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_HAS_HASH
+// This file should not compile, if it does then
+// BOOST_HAS_HASH should be defined.
+// See file boost_has_hash.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_HAS_HASH
+#include "boost_has_hash.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_hash::test();
+}
+
diff --git a/libs/config/test/has_hash_pass.cpp b/libs/config/test/has_hash_pass.cpp
new file mode 100644
index 0000000000..3f3dd82f55
--- /dev/null
+++ b/libs/config/test/has_hash_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:03:59 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_HAS_HASH
+// This file should compile, if it does not then
+// BOOST_HAS_HASH should not be defined.
+// See file boost_has_hash.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_HAS_HASH
+#include "boost_has_hash.ipp"
+#else
+namespace boost_has_hash = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_hash::test();
+}
+
diff --git a/libs/config/test/has_log1p_fail.cpp b/libs/config/test/has_log1p_fail.cpp
new file mode 100644
index 0000000000..a2de7cbe44
--- /dev/null
+++ b/libs/config/test/has_log1p_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Sat Apr 02 11:49:11 2005
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_HAS_LOG1P
+// This file should not compile, if it does then
+// BOOST_HAS_LOG1P should be defined.
+// See file boost_has_log1p.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_HAS_LOG1P
+#include "boost_has_log1p.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_log1p::test();
+}
+
diff --git a/libs/config/test/has_log1p_pass.cpp b/libs/config/test/has_log1p_pass.cpp
new file mode 100644
index 0000000000..bf44febfe6
--- /dev/null
+++ b/libs/config/test/has_log1p_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Sat Apr 02 11:49:11 2005
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_HAS_LOG1P
+// This file should compile, if it does not then
+// BOOST_HAS_LOG1P should not be defined.
+// See file boost_has_log1p.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_HAS_LOG1P
+#include "boost_has_log1p.ipp"
+#else
+namespace boost_has_log1p = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_log1p::test();
+}
+
diff --git a/libs/config/test/has_long_long_fail.cpp b/libs/config/test/has_long_long_fail.cpp
new file mode 100644
index 0000000000..84632676d8
--- /dev/null
+++ b/libs/config/test/has_long_long_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:00 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_HAS_LONG_LONG
+// This file should not compile, if it does then
+// BOOST_HAS_LONG_LONG should be defined.
+// See file boost_has_long_long.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_HAS_LONG_LONG
+#include "boost_has_long_long.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_long_long::test();
+}
+
diff --git a/libs/config/test/has_long_long_pass.cpp b/libs/config/test/has_long_long_pass.cpp
new file mode 100644
index 0000000000..6042e66770
--- /dev/null
+++ b/libs/config/test/has_long_long_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:00 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_HAS_LONG_LONG
+// This file should compile, if it does not then
+// BOOST_HAS_LONG_LONG should not be defined.
+// See file boost_has_long_long.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_HAS_LONG_LONG
+#include "boost_has_long_long.ipp"
+#else
+namespace boost_has_long_long = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_long_long::test();
+}
+
diff --git a/libs/config/test/has_macro_use_facet_fail.cpp b/libs/config/test/has_macro_use_facet_fail.cpp
new file mode 100644
index 0000000000..8da11830a6
--- /dev/null
+++ b/libs/config/test/has_macro_use_facet_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:00 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_HAS_MACRO_USE_FACET
+// This file should not compile, if it does then
+// BOOST_HAS_MACRO_USE_FACET should be defined.
+// See file boost_has_macro_use_facet.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_HAS_MACRO_USE_FACET
+#include "boost_has_macro_use_facet.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_macro_use_facet::test();
+}
+
diff --git a/libs/config/test/has_macro_use_facet_pass.cpp b/libs/config/test/has_macro_use_facet_pass.cpp
new file mode 100644
index 0000000000..041d026ab6
--- /dev/null
+++ b/libs/config/test/has_macro_use_facet_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:00 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_HAS_MACRO_USE_FACET
+// This file should compile, if it does not then
+// BOOST_HAS_MACRO_USE_FACET should not be defined.
+// See file boost_has_macro_use_facet.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_HAS_MACRO_USE_FACET
+#include "boost_has_macro_use_facet.ipp"
+#else
+namespace boost_has_macro_use_facet = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_macro_use_facet::test();
+}
+
diff --git a/libs/config/test/has_ms_int64_fail.cpp b/libs/config/test/has_ms_int64_fail.cpp
new file mode 100644
index 0000000000..6171feda5b
--- /dev/null
+++ b/libs/config/test/has_ms_int64_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:00 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_HAS_MS_INT64
+// This file should not compile, if it does then
+// BOOST_HAS_MS_INT64 should be defined.
+// See file boost_has_ms_int64.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_HAS_MS_INT64
+#include "boost_has_ms_int64.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_ms_int64::test();
+}
+
diff --git a/libs/config/test/has_ms_int64_pass.cpp b/libs/config/test/has_ms_int64_pass.cpp
new file mode 100644
index 0000000000..94038d994d
--- /dev/null
+++ b/libs/config/test/has_ms_int64_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:00 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_HAS_MS_INT64
+// This file should compile, if it does not then
+// BOOST_HAS_MS_INT64 should not be defined.
+// See file boost_has_ms_int64.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_HAS_MS_INT64
+#include "boost_has_ms_int64.ipp"
+#else
+namespace boost_has_ms_int64 = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_ms_int64::test();
+}
+
diff --git a/libs/config/test/has_nanosleep_fail.cpp b/libs/config/test/has_nanosleep_fail.cpp
new file mode 100644
index 0000000000..cb7eba90ab
--- /dev/null
+++ b/libs/config/test/has_nanosleep_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:00 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_HAS_NANOSLEEP
+// This file should not compile, if it does then
+// BOOST_HAS_NANOSLEEP should be defined.
+// See file boost_has_nanosleep.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_HAS_NANOSLEEP
+#include "boost_has_nanosleep.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_nanosleep::test();
+}
+
diff --git a/libs/config/test/has_nanosleep_pass.cpp b/libs/config/test/has_nanosleep_pass.cpp
new file mode 100644
index 0000000000..3aeac63cc7
--- /dev/null
+++ b/libs/config/test/has_nanosleep_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:00 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_HAS_NANOSLEEP
+// This file should compile, if it does not then
+// BOOST_HAS_NANOSLEEP should not be defined.
+// See file boost_has_nanosleep.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_HAS_NANOSLEEP
+#include "boost_has_nanosleep.ipp"
+#else
+namespace boost_has_nanosleep = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_nanosleep::test();
+}
+
diff --git a/libs/config/test/has_nl_types_h_fail.cpp b/libs/config/test/has_nl_types_h_fail.cpp
new file mode 100644
index 0000000000..ffd76cf32c
--- /dev/null
+++ b/libs/config/test/has_nl_types_h_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:00 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_HAS_NL_TYPES_H
+// This file should not compile, if it does then
+// BOOST_HAS_NL_TYPES_H should be defined.
+// See file boost_has_nl_types_h.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_HAS_NL_TYPES_H
+#include "boost_has_nl_types_h.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_nl_types_h::test();
+}
+
diff --git a/libs/config/test/has_nl_types_h_pass.cpp b/libs/config/test/has_nl_types_h_pass.cpp
new file mode 100644
index 0000000000..631031491c
--- /dev/null
+++ b/libs/config/test/has_nl_types_h_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:00 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_HAS_NL_TYPES_H
+// This file should compile, if it does not then
+// BOOST_HAS_NL_TYPES_H should not be defined.
+// See file boost_has_nl_types_h.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_HAS_NL_TYPES_H
+#include "boost_has_nl_types_h.ipp"
+#else
+namespace boost_has_nl_types_h = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_nl_types_h::test();
+}
+
diff --git a/libs/config/test/has_nrvo_fail.cpp b/libs/config/test/has_nrvo_fail.cpp
new file mode 100644
index 0000000000..c05f17ceec
--- /dev/null
+++ b/libs/config/test/has_nrvo_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:00 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_HAS_NRVO
+// This file should not compile, if it does then
+// BOOST_HAS_NRVO should be defined.
+// See file boost_has_nrvo.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_HAS_NRVO
+#include "boost_has_nrvo.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_nrvo::test();
+}
+
diff --git a/libs/config/test/has_nrvo_pass.cpp b/libs/config/test/has_nrvo_pass.cpp
new file mode 100644
index 0000000000..e216186a76
--- /dev/null
+++ b/libs/config/test/has_nrvo_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:00 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_HAS_NRVO
+// This file should compile, if it does not then
+// BOOST_HAS_NRVO should not be defined.
+// See file boost_has_nrvo.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_HAS_NRVO
+#include "boost_has_nrvo.ipp"
+#else
+namespace boost_has_nrvo = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_nrvo::test();
+}
+
diff --git a/libs/config/test/has_part_alloc_fail.cpp b/libs/config/test/has_part_alloc_fail.cpp
new file mode 100644
index 0000000000..33c54247ea
--- /dev/null
+++ b/libs/config/test/has_part_alloc_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:00 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_HAS_PARTIAL_STD_ALLOCATOR
+// This file should not compile, if it does then
+// BOOST_HAS_PARTIAL_STD_ALLOCATOR should be defined.
+// See file boost_has_part_alloc.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_HAS_PARTIAL_STD_ALLOCATOR
+#include "boost_has_part_alloc.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_partial_std_allocator::test();
+}
+
diff --git a/libs/config/test/has_part_alloc_pass.cpp b/libs/config/test/has_part_alloc_pass.cpp
new file mode 100644
index 0000000000..c885e20b70
--- /dev/null
+++ b/libs/config/test/has_part_alloc_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:00 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_HAS_PARTIAL_STD_ALLOCATOR
+// This file should compile, if it does not then
+// BOOST_HAS_PARTIAL_STD_ALLOCATOR should not be defined.
+// See file boost_has_part_alloc.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_HAS_PARTIAL_STD_ALLOCATOR
+#include "boost_has_part_alloc.ipp"
+#else
+namespace boost_has_partial_std_allocator = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_partial_std_allocator::test();
+}
+
diff --git a/libs/config/test/has_pthread_delay_np_fail.cpp b/libs/config/test/has_pthread_delay_np_fail.cpp
new file mode 100644
index 0000000000..9f21869ace
--- /dev/null
+++ b/libs/config/test/has_pthread_delay_np_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:00 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_HAS_PTHREAD_DELAY_NP
+// This file should not compile, if it does then
+// BOOST_HAS_PTHREAD_DELAY_NP should be defined.
+// See file boost_has_pthread_delay_np.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_HAS_PTHREAD_DELAY_NP
+#include "boost_has_pthread_delay_np.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_pthread_delay_np::test();
+}
+
diff --git a/libs/config/test/has_pthread_delay_np_pass.cpp b/libs/config/test/has_pthread_delay_np_pass.cpp
new file mode 100644
index 0000000000..6f78617a46
--- /dev/null
+++ b/libs/config/test/has_pthread_delay_np_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:00 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_HAS_PTHREAD_DELAY_NP
+// This file should compile, if it does not then
+// BOOST_HAS_PTHREAD_DELAY_NP should not be defined.
+// See file boost_has_pthread_delay_np.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_HAS_PTHREAD_DELAY_NP
+#include "boost_has_pthread_delay_np.ipp"
+#else
+namespace boost_has_pthread_delay_np = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_pthread_delay_np::test();
+}
+
diff --git a/libs/config/test/has_pthread_ma_st_fail.cpp b/libs/config/test/has_pthread_ma_st_fail.cpp
new file mode 100644
index 0000000000..a3bbab8e0b
--- /dev/null
+++ b/libs/config/test/has_pthread_ma_st_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:00 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
+// This file should not compile, if it does then
+// BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE should be defined.
+// See file boost_has_pthread_ma_st.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
+#include "boost_has_pthread_ma_st.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_pthread_mutexattr_settype::test();
+}
+
diff --git a/libs/config/test/has_pthread_ma_st_pass.cpp b/libs/config/test/has_pthread_ma_st_pass.cpp
new file mode 100644
index 0000000000..a0cb1a091d
--- /dev/null
+++ b/libs/config/test/has_pthread_ma_st_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:00 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
+// This file should compile, if it does not then
+// BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE should not be defined.
+// See file boost_has_pthread_ma_st.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
+#include "boost_has_pthread_ma_st.ipp"
+#else
+namespace boost_has_pthread_mutexattr_settype = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_pthread_mutexattr_settype::test();
+}
+
diff --git a/libs/config/test/has_pthread_yield_fail.cpp b/libs/config/test/has_pthread_yield_fail.cpp
new file mode 100644
index 0000000000..eb4228b256
--- /dev/null
+++ b/libs/config/test/has_pthread_yield_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:00 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_HAS_PTHREAD_YIELD
+// This file should not compile, if it does then
+// BOOST_HAS_PTHREAD_YIELD should be defined.
+// See file boost_has_pthread_yield.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_HAS_PTHREAD_YIELD
+#include "boost_has_pthread_yield.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_pthread_yield::test();
+}
+
diff --git a/libs/config/test/has_pthread_yield_pass.cpp b/libs/config/test/has_pthread_yield_pass.cpp
new file mode 100644
index 0000000000..4af209a099
--- /dev/null
+++ b/libs/config/test/has_pthread_yield_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:00 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_HAS_PTHREAD_YIELD
+// This file should compile, if it does not then
+// BOOST_HAS_PTHREAD_YIELD should not be defined.
+// See file boost_has_pthread_yield.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_HAS_PTHREAD_YIELD
+#include "boost_has_pthread_yield.ipp"
+#else
+namespace boost_has_pthread_yield = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_pthread_yield::test();
+}
+
diff --git a/libs/config/test/has_pthreads_fail.cpp b/libs/config/test/has_pthreads_fail.cpp
new file mode 100644
index 0000000000..14156648ab
--- /dev/null
+++ b/libs/config/test/has_pthreads_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:00 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_HAS_PTHREADS
+// This file should not compile, if it does then
+// BOOST_HAS_PTHREADS should be defined.
+// See file boost_has_pthreads.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_HAS_PTHREADS
+#include "boost_has_pthreads.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_pthreads::test();
+}
+
diff --git a/libs/config/test/has_pthreads_pass.cpp b/libs/config/test/has_pthreads_pass.cpp
new file mode 100644
index 0000000000..0737392f76
--- /dev/null
+++ b/libs/config/test/has_pthreads_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:00 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_HAS_PTHREADS
+// This file should compile, if it does not then
+// BOOST_HAS_PTHREADS should not be defined.
+// See file boost_has_pthreads.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_HAS_PTHREADS
+#include "boost_has_pthreads.ipp"
+#else
+namespace boost_has_pthreads = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_pthreads::test();
+}
+
diff --git a/libs/config/test/has_rvalue_refs_fail.cpp b/libs/config/test/has_rvalue_refs_fail.cpp
new file mode 100644
index 0000000000..cf880e9654
--- /dev/null
+++ b/libs/config/test/has_rvalue_refs_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Sat Aug 25 12:32:21 2007
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_HAS_RVALUE_REFS
+// This file should not compile, if it does then
+// BOOST_HAS_RVALUE_REFS should be defined.
+// See file boost_has_rvalue_refs.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_HAS_RVALUE_REFS
+#include "boost_has_rvalue_refs.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_rvalue_refs::test();
+}
+
diff --git a/libs/config/test/has_rvalue_refs_pass.cpp b/libs/config/test/has_rvalue_refs_pass.cpp
new file mode 100644
index 0000000000..6169249497
--- /dev/null
+++ b/libs/config/test/has_rvalue_refs_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Sat Aug 25 12:32:21 2007
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_HAS_RVALUE_REFS
+// This file should compile, if it does not then
+// BOOST_HAS_RVALUE_REFS should not be defined.
+// See file boost_has_rvalue_refs.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_HAS_RVALUE_REFS
+#include "boost_has_rvalue_refs.ipp"
+#else
+namespace boost_has_rvalue_refs = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_rvalue_refs::test();
+}
+
diff --git a/libs/config/test/has_sched_yield_fail.cpp b/libs/config/test/has_sched_yield_fail.cpp
new file mode 100644
index 0000000000..b494ed10e7
--- /dev/null
+++ b/libs/config/test/has_sched_yield_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:00 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_HAS_SCHED_YIELD
+// This file should not compile, if it does then
+// BOOST_HAS_SCHED_YIELD should be defined.
+// See file boost_has_sched_yield.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_HAS_SCHED_YIELD
+#include "boost_has_sched_yield.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_sched_yield::test();
+}
+
diff --git a/libs/config/test/has_sched_yield_pass.cpp b/libs/config/test/has_sched_yield_pass.cpp
new file mode 100644
index 0000000000..56741d1f7e
--- /dev/null
+++ b/libs/config/test/has_sched_yield_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:00 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_HAS_SCHED_YIELD
+// This file should compile, if it does not then
+// BOOST_HAS_SCHED_YIELD should not be defined.
+// See file boost_has_sched_yield.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_HAS_SCHED_YIELD
+#include "boost_has_sched_yield.ipp"
+#else
+namespace boost_has_sched_yield = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_sched_yield::test();
+}
+
diff --git a/libs/config/test/has_sgi_type_traits_fail.cpp b/libs/config/test/has_sgi_type_traits_fail.cpp
new file mode 100644
index 0000000000..1be7182994
--- /dev/null
+++ b/libs/config/test/has_sgi_type_traits_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:00 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_HAS_SGI_TYPE_TRAITS
+// This file should not compile, if it does then
+// BOOST_HAS_SGI_TYPE_TRAITS should be defined.
+// See file boost_has_sgi_type_traits.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_HAS_SGI_TYPE_TRAITS
+#include "boost_has_sgi_type_traits.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_sgi_type_traits::test();
+}
+
diff --git a/libs/config/test/has_sgi_type_traits_pass.cpp b/libs/config/test/has_sgi_type_traits_pass.cpp
new file mode 100644
index 0000000000..81f0592050
--- /dev/null
+++ b/libs/config/test/has_sgi_type_traits_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:00 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_HAS_SGI_TYPE_TRAITS
+// This file should compile, if it does not then
+// BOOST_HAS_SGI_TYPE_TRAITS should not be defined.
+// See file boost_has_sgi_type_traits.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_HAS_SGI_TYPE_TRAITS
+#include "boost_has_sgi_type_traits.ipp"
+#else
+namespace boost_has_sgi_type_traits = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_sgi_type_traits::test();
+}
+
diff --git a/libs/config/test/has_sigaction_fail.cpp b/libs/config/test/has_sigaction_fail.cpp
new file mode 100644
index 0000000000..b9ea9891f1
--- /dev/null
+++ b/libs/config/test/has_sigaction_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:00 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_HAS_SIGACTION
+// This file should not compile, if it does then
+// BOOST_HAS_SIGACTION should be defined.
+// See file boost_has_sigaction.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_HAS_SIGACTION
+#include "boost_has_sigaction.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_sigaction::test();
+}
+
diff --git a/libs/config/test/has_sigaction_pass.cpp b/libs/config/test/has_sigaction_pass.cpp
new file mode 100644
index 0000000000..5fa104091f
--- /dev/null
+++ b/libs/config/test/has_sigaction_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:00 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_HAS_SIGACTION
+// This file should compile, if it does not then
+// BOOST_HAS_SIGACTION should not be defined.
+// See file boost_has_sigaction.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_HAS_SIGACTION
+#include "boost_has_sigaction.ipp"
+#else
+namespace boost_has_sigaction = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_sigaction::test();
+}
+
diff --git a/libs/config/test/has_slist_fail.cpp b/libs/config/test/has_slist_fail.cpp
new file mode 100644
index 0000000000..0d656fda25
--- /dev/null
+++ b/libs/config/test/has_slist_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:00 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_HAS_SLIST
+// This file should not compile, if it does then
+// BOOST_HAS_SLIST should be defined.
+// See file boost_has_slist.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_HAS_SLIST
+#include "boost_has_slist.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_slist::test();
+}
+
diff --git a/libs/config/test/has_slist_pass.cpp b/libs/config/test/has_slist_pass.cpp
new file mode 100644
index 0000000000..79af70055b
--- /dev/null
+++ b/libs/config/test/has_slist_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:00 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_HAS_SLIST
+// This file should compile, if it does not then
+// BOOST_HAS_SLIST should not be defined.
+// See file boost_has_slist.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_HAS_SLIST
+#include "boost_has_slist.ipp"
+#else
+namespace boost_has_slist = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_slist::test();
+}
+
diff --git a/libs/config/test/has_static_assert_fail.cpp b/libs/config/test/has_static_assert_fail.cpp
new file mode 100644
index 0000000000..a6456edb28
--- /dev/null
+++ b/libs/config/test/has_static_assert_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Sat Aug 25 12:32:21 2007
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_HAS_STATIC_ASSERT
+// This file should not compile, if it does then
+// BOOST_HAS_STATIC_ASSERT should be defined.
+// See file boost_has_static_assert.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_HAS_STATIC_ASSERT
+#include "boost_has_static_assert.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_static_assert::test();
+}
+
diff --git a/libs/config/test/has_static_assert_pass.cpp b/libs/config/test/has_static_assert_pass.cpp
new file mode 100644
index 0000000000..00f0389759
--- /dev/null
+++ b/libs/config/test/has_static_assert_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Sat Aug 25 12:32:21 2007
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_HAS_STATIC_ASSERT
+// This file should compile, if it does not then
+// BOOST_HAS_STATIC_ASSERT should not be defined.
+// See file boost_has_static_assert.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_HAS_STATIC_ASSERT
+#include "boost_has_static_assert.ipp"
+#else
+namespace boost_has_static_assert = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_static_assert::test();
+}
+
diff --git a/libs/config/test/has_stdint_h_fail.cpp b/libs/config/test/has_stdint_h_fail.cpp
new file mode 100644
index 0000000000..66a1017bfe
--- /dev/null
+++ b/libs/config/test/has_stdint_h_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:00 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_HAS_STDINT_H
+// This file should not compile, if it does then
+// BOOST_HAS_STDINT_H should be defined.
+// See file boost_has_stdint_h.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_HAS_STDINT_H
+#include "boost_has_stdint_h.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_stdint_h::test();
+}
+
diff --git a/libs/config/test/has_stdint_h_pass.cpp b/libs/config/test/has_stdint_h_pass.cpp
new file mode 100644
index 0000000000..4b8eca9b25
--- /dev/null
+++ b/libs/config/test/has_stdint_h_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:00 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_HAS_STDINT_H
+// This file should compile, if it does not then
+// BOOST_HAS_STDINT_H should not be defined.
+// See file boost_has_stdint_h.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_HAS_STDINT_H
+#include "boost_has_stdint_h.ipp"
+#else
+namespace boost_has_stdint_h = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_stdint_h::test();
+}
+
diff --git a/libs/config/test/has_stlp_use_facet_fail.cpp b/libs/config/test/has_stlp_use_facet_fail.cpp
new file mode 100644
index 0000000000..115f03b3f4
--- /dev/null
+++ b/libs/config/test/has_stlp_use_facet_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:00 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_HAS_STLP_USE_FACET
+// This file should not compile, if it does then
+// BOOST_HAS_STLP_USE_FACET should be defined.
+// See file boost_has_stlp_use_facet.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_HAS_STLP_USE_FACET
+#include "boost_has_stlp_use_facet.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_stlp_use_facet::test();
+}
+
diff --git a/libs/config/test/has_stlp_use_facet_pass.cpp b/libs/config/test/has_stlp_use_facet_pass.cpp
new file mode 100644
index 0000000000..9c50c63368
--- /dev/null
+++ b/libs/config/test/has_stlp_use_facet_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:00 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_HAS_STLP_USE_FACET
+// This file should compile, if it does not then
+// BOOST_HAS_STLP_USE_FACET should not be defined.
+// See file boost_has_stlp_use_facet.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_HAS_STLP_USE_FACET
+#include "boost_has_stlp_use_facet.ipp"
+#else
+namespace boost_has_stlp_use_facet = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_stlp_use_facet::test();
+}
+
diff --git a/libs/config/test/has_tr1_array_fail.cpp b/libs/config/test/has_tr1_array_fail.cpp
new file mode 100644
index 0000000000..e20bf374ef
--- /dev/null
+++ b/libs/config/test/has_tr1_array_fail.cpp
@@ -0,0 +1,38 @@
+// This file was automatically generated on Sat Jul 12 12:39:31 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: has_tr1_array_fail.cpp 47435 2008-07-15 10:41:52Z johnmaddock $
+//
+
+
+// Test file for macro BOOST_HAS_TR1_ARRAY
+// This file should not compile, if it does then
+// BOOST_HAS_TR1_ARRAY should be defined.
+// See file boost_has_tr1_array.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include <boost/tr1/detail/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_HAS_TR1_ARRAY
+#include "boost_has_tr1_array.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_tr1_array::test();
+}
+
diff --git a/libs/config/test/has_tr1_array_pass.cpp b/libs/config/test/has_tr1_array_pass.cpp
new file mode 100644
index 0000000000..ec012ad4b4
--- /dev/null
+++ b/libs/config/test/has_tr1_array_pass.cpp
@@ -0,0 +1,38 @@
+// This file was automatically generated on Sat Jul 12 12:39:31 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: has_tr1_array_pass.cpp 47435 2008-07-15 10:41:52Z johnmaddock $
+//
+
+
+// Test file for macro BOOST_HAS_TR1_ARRAY
+// This file should compile, if it does not then
+// BOOST_HAS_TR1_ARRAY should not be defined.
+// See file boost_has_tr1_array.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include <boost/tr1/detail/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_HAS_TR1_ARRAY
+#include "boost_has_tr1_array.ipp"
+#else
+namespace boost_has_tr1_array = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_tr1_array::test();
+}
+
diff --git a/libs/config/test/has_tr1_bind_fail.cpp b/libs/config/test/has_tr1_bind_fail.cpp
new file mode 100644
index 0000000000..df5473b7d9
--- /dev/null
+++ b/libs/config/test/has_tr1_bind_fail.cpp
@@ -0,0 +1,38 @@
+// This file was automatically generated on Sat Jul 12 12:39:31 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: has_tr1_bind_fail.cpp 47435 2008-07-15 10:41:52Z johnmaddock $
+//
+
+
+// Test file for macro BOOST_HAS_TR1_BIND
+// This file should not compile, if it does then
+// BOOST_HAS_TR1_BIND should be defined.
+// See file boost_has_tr1_bind.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include <boost/tr1/detail/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_HAS_TR1_BIND
+#include "boost_has_tr1_bind.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_tr1_bind::test();
+}
+
diff --git a/libs/config/test/has_tr1_bind_pass.cpp b/libs/config/test/has_tr1_bind_pass.cpp
new file mode 100644
index 0000000000..5b701b77bb
--- /dev/null
+++ b/libs/config/test/has_tr1_bind_pass.cpp
@@ -0,0 +1,38 @@
+// This file was automatically generated on Sat Jul 12 12:39:31 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: has_tr1_bind_pass.cpp 47435 2008-07-15 10:41:52Z johnmaddock $
+//
+
+
+// Test file for macro BOOST_HAS_TR1_BIND
+// This file should compile, if it does not then
+// BOOST_HAS_TR1_BIND should not be defined.
+// See file boost_has_tr1_bind.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include <boost/tr1/detail/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_HAS_TR1_BIND
+#include "boost_has_tr1_bind.ipp"
+#else
+namespace boost_has_tr1_bind = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_tr1_bind::test();
+}
+
diff --git a/libs/config/test/has_tr1_complex_over_fail.cpp b/libs/config/test/has_tr1_complex_over_fail.cpp
new file mode 100644
index 0000000000..a5ba4ce516
--- /dev/null
+++ b/libs/config/test/has_tr1_complex_over_fail.cpp
@@ -0,0 +1,38 @@
+// This file was automatically generated on Sat Jul 12 12:39:32 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: has_tr1_complex_over_fail.cpp 47435 2008-07-15 10:41:52Z johnmaddock $
+//
+
+
+// Test file for macro BOOST_HAS_TR1_COMPLEX_OVERLOADS
+// This file should not compile, if it does then
+// BOOST_HAS_TR1_COMPLEX_OVERLOADS should be defined.
+// See file boost_has_tr1_complex_over.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include <boost/tr1/detail/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_HAS_TR1_COMPLEX_OVERLOADS
+#include "boost_has_tr1_complex_over.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_tr1_complex_overloads::test();
+}
+
diff --git a/libs/config/test/has_tr1_complex_over_pass.cpp b/libs/config/test/has_tr1_complex_over_pass.cpp
new file mode 100644
index 0000000000..d3f4250791
--- /dev/null
+++ b/libs/config/test/has_tr1_complex_over_pass.cpp
@@ -0,0 +1,38 @@
+// This file was automatically generated on Sat Jul 12 12:39:32 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: has_tr1_complex_over_pass.cpp 47435 2008-07-15 10:41:52Z johnmaddock $
+//
+
+
+// Test file for macro BOOST_HAS_TR1_COMPLEX_OVERLOADS
+// This file should compile, if it does not then
+// BOOST_HAS_TR1_COMPLEX_OVERLOADS should not be defined.
+// See file boost_has_tr1_complex_over.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include <boost/tr1/detail/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_HAS_TR1_COMPLEX_OVERLOADS
+#include "boost_has_tr1_complex_over.ipp"
+#else
+namespace boost_has_tr1_complex_overloads = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_tr1_complex_overloads::test();
+}
+
diff --git a/libs/config/test/has_tr1_complex_trig_fail.cpp b/libs/config/test/has_tr1_complex_trig_fail.cpp
new file mode 100644
index 0000000000..0a7eaa8e79
--- /dev/null
+++ b/libs/config/test/has_tr1_complex_trig_fail.cpp
@@ -0,0 +1,38 @@
+// This file was automatically generated on Sat Jul 12 12:39:32 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: has_tr1_complex_trig_fail.cpp 47435 2008-07-15 10:41:52Z johnmaddock $
+//
+
+
+// Test file for macro BOOST_HAS_TR1_COMPLEX_INVERSE_TRIG
+// This file should not compile, if it does then
+// BOOST_HAS_TR1_COMPLEX_INVERSE_TRIG should be defined.
+// See file boost_has_tr1_complex_trig.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include <boost/tr1/detail/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_HAS_TR1_COMPLEX_INVERSE_TRIG
+#include "boost_has_tr1_complex_trig.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_tr1_complex_inverse_trig::test();
+}
+
diff --git a/libs/config/test/has_tr1_complex_trig_pass.cpp b/libs/config/test/has_tr1_complex_trig_pass.cpp
new file mode 100644
index 0000000000..71748fc559
--- /dev/null
+++ b/libs/config/test/has_tr1_complex_trig_pass.cpp
@@ -0,0 +1,38 @@
+// This file was automatically generated on Sat Jul 12 12:39:32 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: has_tr1_complex_trig_pass.cpp 47435 2008-07-15 10:41:52Z johnmaddock $
+//
+
+
+// Test file for macro BOOST_HAS_TR1_COMPLEX_INVERSE_TRIG
+// This file should compile, if it does not then
+// BOOST_HAS_TR1_COMPLEX_INVERSE_TRIG should not be defined.
+// See file boost_has_tr1_complex_trig.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include <boost/tr1/detail/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_HAS_TR1_COMPLEX_INVERSE_TRIG
+#include "boost_has_tr1_complex_trig.ipp"
+#else
+namespace boost_has_tr1_complex_inverse_trig = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_tr1_complex_inverse_trig::test();
+}
+
diff --git a/libs/config/test/has_tr1_function_fail.cpp b/libs/config/test/has_tr1_function_fail.cpp
new file mode 100644
index 0000000000..d65ad14cdb
--- /dev/null
+++ b/libs/config/test/has_tr1_function_fail.cpp
@@ -0,0 +1,38 @@
+// This file was automatically generated on Sat Jul 12 12:39:32 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: has_tr1_function_fail.cpp 47435 2008-07-15 10:41:52Z johnmaddock $
+//
+
+
+// Test file for macro BOOST_HAS_TR1_FUNCTION
+// This file should not compile, if it does then
+// BOOST_HAS_TR1_FUNCTION should be defined.
+// See file boost_has_tr1_function.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include <boost/tr1/detail/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_HAS_TR1_FUNCTION
+#include "boost_has_tr1_function.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_tr1_function::test();
+}
+
diff --git a/libs/config/test/has_tr1_function_pass.cpp b/libs/config/test/has_tr1_function_pass.cpp
new file mode 100644
index 0000000000..ae3e25f0c8
--- /dev/null
+++ b/libs/config/test/has_tr1_function_pass.cpp
@@ -0,0 +1,38 @@
+// This file was automatically generated on Sat Jul 12 12:39:32 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: has_tr1_function_pass.cpp 47435 2008-07-15 10:41:52Z johnmaddock $
+//
+
+
+// Test file for macro BOOST_HAS_TR1_FUNCTION
+// This file should compile, if it does not then
+// BOOST_HAS_TR1_FUNCTION should not be defined.
+// See file boost_has_tr1_function.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include <boost/tr1/detail/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_HAS_TR1_FUNCTION
+#include "boost_has_tr1_function.ipp"
+#else
+namespace boost_has_tr1_function = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_tr1_function::test();
+}
+
diff --git a/libs/config/test/has_tr1_hash_fail.cpp b/libs/config/test/has_tr1_hash_fail.cpp
new file mode 100644
index 0000000000..e453374b28
--- /dev/null
+++ b/libs/config/test/has_tr1_hash_fail.cpp
@@ -0,0 +1,38 @@
+// This file was automatically generated on Sat Jul 12 12:39:32 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: has_tr1_hash_fail.cpp 47435 2008-07-15 10:41:52Z johnmaddock $
+//
+
+
+// Test file for macro BOOST_HAS_TR1_HASH
+// This file should not compile, if it does then
+// BOOST_HAS_TR1_HASH should be defined.
+// See file boost_has_tr1_hash.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include <boost/tr1/detail/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_HAS_TR1_HASH
+#include "boost_has_tr1_hash.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_tr1_hash::test();
+}
+
diff --git a/libs/config/test/has_tr1_hash_pass.cpp b/libs/config/test/has_tr1_hash_pass.cpp
new file mode 100644
index 0000000000..d38005a959
--- /dev/null
+++ b/libs/config/test/has_tr1_hash_pass.cpp
@@ -0,0 +1,38 @@
+// This file was automatically generated on Sat Jul 12 12:39:32 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: has_tr1_hash_pass.cpp 47435 2008-07-15 10:41:52Z johnmaddock $
+//
+
+
+// Test file for macro BOOST_HAS_TR1_HASH
+// This file should compile, if it does not then
+// BOOST_HAS_TR1_HASH should not be defined.
+// See file boost_has_tr1_hash.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include <boost/tr1/detail/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_HAS_TR1_HASH
+#include "boost_has_tr1_hash.ipp"
+#else
+namespace boost_has_tr1_hash = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_tr1_hash::test();
+}
+
diff --git a/libs/config/test/has_tr1_mem_fn_fail.cpp b/libs/config/test/has_tr1_mem_fn_fail.cpp
new file mode 100644
index 0000000000..46b72d7b78
--- /dev/null
+++ b/libs/config/test/has_tr1_mem_fn_fail.cpp
@@ -0,0 +1,38 @@
+// This file was automatically generated on Sat Jul 12 12:39:32 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: has_tr1_mem_fn_fail.cpp 47435 2008-07-15 10:41:52Z johnmaddock $
+//
+
+
+// Test file for macro BOOST_HAS_TR1_MEM_FN
+// This file should not compile, if it does then
+// BOOST_HAS_TR1_MEM_FN should be defined.
+// See file boost_has_tr1_mem_fn.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include <boost/tr1/detail/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_HAS_TR1_MEM_FN
+#include "boost_has_tr1_mem_fn.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_tr1_mem_fn::test();
+}
+
diff --git a/libs/config/test/has_tr1_mem_fn_pass.cpp b/libs/config/test/has_tr1_mem_fn_pass.cpp
new file mode 100644
index 0000000000..da34f539d1
--- /dev/null
+++ b/libs/config/test/has_tr1_mem_fn_pass.cpp
@@ -0,0 +1,38 @@
+// This file was automatically generated on Sat Jul 12 12:39:32 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: has_tr1_mem_fn_pass.cpp 47435 2008-07-15 10:41:52Z johnmaddock $
+//
+
+
+// Test file for macro BOOST_HAS_TR1_MEM_FN
+// This file should compile, if it does not then
+// BOOST_HAS_TR1_MEM_FN should not be defined.
+// See file boost_has_tr1_mem_fn.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include <boost/tr1/detail/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_HAS_TR1_MEM_FN
+#include "boost_has_tr1_mem_fn.ipp"
+#else
+namespace boost_has_tr1_mem_fn = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_tr1_mem_fn::test();
+}
+
diff --git a/libs/config/test/has_tr1_random_fail.cpp b/libs/config/test/has_tr1_random_fail.cpp
new file mode 100644
index 0000000000..0c835b7002
--- /dev/null
+++ b/libs/config/test/has_tr1_random_fail.cpp
@@ -0,0 +1,38 @@
+// This file was automatically generated on Sat Jul 12 12:39:32 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: has_tr1_random_fail.cpp 47435 2008-07-15 10:41:52Z johnmaddock $
+//
+
+
+// Test file for macro BOOST_HAS_TR1_RANDOM
+// This file should not compile, if it does then
+// BOOST_HAS_TR1_RANDOM should be defined.
+// See file boost_has_tr1_random.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include <boost/tr1/detail/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_HAS_TR1_RANDOM
+#include "boost_has_tr1_random.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_tr1_random::test();
+}
+
diff --git a/libs/config/test/has_tr1_random_pass.cpp b/libs/config/test/has_tr1_random_pass.cpp
new file mode 100644
index 0000000000..be4362cd92
--- /dev/null
+++ b/libs/config/test/has_tr1_random_pass.cpp
@@ -0,0 +1,38 @@
+// This file was automatically generated on Sat Jul 12 12:39:32 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: has_tr1_random_pass.cpp 47435 2008-07-15 10:41:52Z johnmaddock $
+//
+
+
+// Test file for macro BOOST_HAS_TR1_RANDOM
+// This file should compile, if it does not then
+// BOOST_HAS_TR1_RANDOM should not be defined.
+// See file boost_has_tr1_random.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include <boost/tr1/detail/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_HAS_TR1_RANDOM
+#include "boost_has_tr1_random.ipp"
+#else
+namespace boost_has_tr1_random = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_tr1_random::test();
+}
+
diff --git a/libs/config/test/has_tr1_ref_wrap_fail.cpp b/libs/config/test/has_tr1_ref_wrap_fail.cpp
new file mode 100644
index 0000000000..3708b8b9cf
--- /dev/null
+++ b/libs/config/test/has_tr1_ref_wrap_fail.cpp
@@ -0,0 +1,38 @@
+// This file was automatically generated on Sat Jul 12 12:39:32 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: has_tr1_ref_wrap_fail.cpp 47435 2008-07-15 10:41:52Z johnmaddock $
+//
+
+
+// Test file for macro BOOST_HAS_TR1_REFERENCE_WRAPPER
+// This file should not compile, if it does then
+// BOOST_HAS_TR1_REFERENCE_WRAPPER should be defined.
+// See file boost_has_tr1_ref_wrap.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include <boost/tr1/detail/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_HAS_TR1_REFERENCE_WRAPPER
+#include "boost_has_tr1_ref_wrap.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_tr1_reference_wrapper::test();
+}
+
diff --git a/libs/config/test/has_tr1_ref_wrap_pass.cpp b/libs/config/test/has_tr1_ref_wrap_pass.cpp
new file mode 100644
index 0000000000..d43985cb7f
--- /dev/null
+++ b/libs/config/test/has_tr1_ref_wrap_pass.cpp
@@ -0,0 +1,38 @@
+// This file was automatically generated on Sat Jul 12 12:39:32 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: has_tr1_ref_wrap_pass.cpp 47435 2008-07-15 10:41:52Z johnmaddock $
+//
+
+
+// Test file for macro BOOST_HAS_TR1_REFERENCE_WRAPPER
+// This file should compile, if it does not then
+// BOOST_HAS_TR1_REFERENCE_WRAPPER should not be defined.
+// See file boost_has_tr1_ref_wrap.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include <boost/tr1/detail/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_HAS_TR1_REFERENCE_WRAPPER
+#include "boost_has_tr1_ref_wrap.ipp"
+#else
+namespace boost_has_tr1_reference_wrapper = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_tr1_reference_wrapper::test();
+}
+
diff --git a/libs/config/test/has_tr1_regex_fail.cpp b/libs/config/test/has_tr1_regex_fail.cpp
new file mode 100644
index 0000000000..f5bdd74fd5
--- /dev/null
+++ b/libs/config/test/has_tr1_regex_fail.cpp
@@ -0,0 +1,38 @@
+// This file was automatically generated on Sat Jul 12 12:39:32 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: has_tr1_regex_fail.cpp 47435 2008-07-15 10:41:52Z johnmaddock $
+//
+
+
+// Test file for macro BOOST_HAS_TR1_REGEX
+// This file should not compile, if it does then
+// BOOST_HAS_TR1_REGEX should be defined.
+// See file boost_has_tr1_regex.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include <boost/tr1/detail/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_HAS_TR1_REGEX
+#include "boost_has_tr1_regex.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_tr1_regex::test();
+}
+
diff --git a/libs/config/test/has_tr1_regex_pass.cpp b/libs/config/test/has_tr1_regex_pass.cpp
new file mode 100644
index 0000000000..223da16628
--- /dev/null
+++ b/libs/config/test/has_tr1_regex_pass.cpp
@@ -0,0 +1,38 @@
+// This file was automatically generated on Sat Jul 12 12:39:32 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: has_tr1_regex_pass.cpp 47435 2008-07-15 10:41:52Z johnmaddock $
+//
+
+
+// Test file for macro BOOST_HAS_TR1_REGEX
+// This file should compile, if it does not then
+// BOOST_HAS_TR1_REGEX should not be defined.
+// See file boost_has_tr1_regex.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include <boost/tr1/detail/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_HAS_TR1_REGEX
+#include "boost_has_tr1_regex.ipp"
+#else
+namespace boost_has_tr1_regex = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_tr1_regex::test();
+}
+
diff --git a/libs/config/test/has_tr1_result_of_fail.cpp b/libs/config/test/has_tr1_result_of_fail.cpp
new file mode 100644
index 0000000000..fa5640aa99
--- /dev/null
+++ b/libs/config/test/has_tr1_result_of_fail.cpp
@@ -0,0 +1,38 @@
+// This file was automatically generated on Sat Jul 12 12:39:32 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: has_tr1_result_of_fail.cpp 47435 2008-07-15 10:41:52Z johnmaddock $
+//
+
+
+// Test file for macro BOOST_HAS_TR1_RESULT_OF
+// This file should not compile, if it does then
+// BOOST_HAS_TR1_RESULT_OF should be defined.
+// See file boost_has_tr1_result_of.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include <boost/tr1/detail/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_HAS_TR1_RESULT_OF
+#include "boost_has_tr1_result_of.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_tr1_result_of::test();
+}
+
diff --git a/libs/config/test/has_tr1_result_of_pass.cpp b/libs/config/test/has_tr1_result_of_pass.cpp
new file mode 100644
index 0000000000..c2080a8636
--- /dev/null
+++ b/libs/config/test/has_tr1_result_of_pass.cpp
@@ -0,0 +1,38 @@
+// This file was automatically generated on Sat Jul 12 12:39:32 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: has_tr1_result_of_pass.cpp 47435 2008-07-15 10:41:52Z johnmaddock $
+//
+
+
+// Test file for macro BOOST_HAS_TR1_RESULT_OF
+// This file should compile, if it does not then
+// BOOST_HAS_TR1_RESULT_OF should not be defined.
+// See file boost_has_tr1_result_of.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include <boost/tr1/detail/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_HAS_TR1_RESULT_OF
+#include "boost_has_tr1_result_of.ipp"
+#else
+namespace boost_has_tr1_result_of = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_tr1_result_of::test();
+}
+
diff --git a/libs/config/test/has_tr1_shared_ptr_fail.cpp b/libs/config/test/has_tr1_shared_ptr_fail.cpp
new file mode 100644
index 0000000000..a032199896
--- /dev/null
+++ b/libs/config/test/has_tr1_shared_ptr_fail.cpp
@@ -0,0 +1,38 @@
+// This file was automatically generated on Sat Jul 12 12:39:32 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: has_tr1_shared_ptr_fail.cpp 47435 2008-07-15 10:41:52Z johnmaddock $
+//
+
+
+// Test file for macro BOOST_HAS_TR1_SHARED_PTR
+// This file should not compile, if it does then
+// BOOST_HAS_TR1_SHARED_PTR should be defined.
+// See file boost_has_tr1_shared_ptr.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include <boost/tr1/detail/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_HAS_TR1_SHARED_PTR
+#include "boost_has_tr1_shared_ptr.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_tr1_shared_ptr::test();
+}
+
diff --git a/libs/config/test/has_tr1_shared_ptr_pass.cpp b/libs/config/test/has_tr1_shared_ptr_pass.cpp
new file mode 100644
index 0000000000..aa3b65e24c
--- /dev/null
+++ b/libs/config/test/has_tr1_shared_ptr_pass.cpp
@@ -0,0 +1,38 @@
+// This file was automatically generated on Sat Jul 12 12:39:32 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: has_tr1_shared_ptr_pass.cpp 47435 2008-07-15 10:41:52Z johnmaddock $
+//
+
+
+// Test file for macro BOOST_HAS_TR1_SHARED_PTR
+// This file should compile, if it does not then
+// BOOST_HAS_TR1_SHARED_PTR should not be defined.
+// See file boost_has_tr1_shared_ptr.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include <boost/tr1/detail/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_HAS_TR1_SHARED_PTR
+#include "boost_has_tr1_shared_ptr.ipp"
+#else
+namespace boost_has_tr1_shared_ptr = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_tr1_shared_ptr::test();
+}
+
diff --git a/libs/config/test/has_tr1_tuple_fail.cpp b/libs/config/test/has_tr1_tuple_fail.cpp
new file mode 100644
index 0000000000..d14e797fe4
--- /dev/null
+++ b/libs/config/test/has_tr1_tuple_fail.cpp
@@ -0,0 +1,38 @@
+// This file was automatically generated on Sat Jul 12 12:39:32 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: has_tr1_tuple_fail.cpp 47435 2008-07-15 10:41:52Z johnmaddock $
+//
+
+
+// Test file for macro BOOST_HAS_TR1_TUPLE
+// This file should not compile, if it does then
+// BOOST_HAS_TR1_TUPLE should be defined.
+// See file boost_has_tr1_tuple.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include <boost/tr1/detail/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_HAS_TR1_TUPLE
+#include "boost_has_tr1_tuple.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_tr1_tuple::test();
+}
+
diff --git a/libs/config/test/has_tr1_tuple_pass.cpp b/libs/config/test/has_tr1_tuple_pass.cpp
new file mode 100644
index 0000000000..f85e2cfdd4
--- /dev/null
+++ b/libs/config/test/has_tr1_tuple_pass.cpp
@@ -0,0 +1,38 @@
+// This file was automatically generated on Sat Jul 12 12:39:32 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: has_tr1_tuple_pass.cpp 47435 2008-07-15 10:41:52Z johnmaddock $
+//
+
+
+// Test file for macro BOOST_HAS_TR1_TUPLE
+// This file should compile, if it does not then
+// BOOST_HAS_TR1_TUPLE should not be defined.
+// See file boost_has_tr1_tuple.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include <boost/tr1/detail/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_HAS_TR1_TUPLE
+#include "boost_has_tr1_tuple.ipp"
+#else
+namespace boost_has_tr1_tuple = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_tr1_tuple::test();
+}
+
diff --git a/libs/config/test/has_tr1_type_traits_fail.cpp b/libs/config/test/has_tr1_type_traits_fail.cpp
new file mode 100644
index 0000000000..5cfdf41bf3
--- /dev/null
+++ b/libs/config/test/has_tr1_type_traits_fail.cpp
@@ -0,0 +1,38 @@
+// This file was automatically generated on Sat Jul 12 12:39:32 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: has_tr1_type_traits_fail.cpp 47435 2008-07-15 10:41:52Z johnmaddock $
+//
+
+
+// Test file for macro BOOST_HAS_TR1_TYPE_TRAITS
+// This file should not compile, if it does then
+// BOOST_HAS_TR1_TYPE_TRAITS should be defined.
+// See file boost_has_tr1_type_traits.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include <boost/tr1/detail/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_HAS_TR1_TYPE_TRAITS
+#include "boost_has_tr1_type_traits.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_tr1_type_traits::test();
+}
+
diff --git a/libs/config/test/has_tr1_type_traits_pass.cpp b/libs/config/test/has_tr1_type_traits_pass.cpp
new file mode 100644
index 0000000000..572fe39163
--- /dev/null
+++ b/libs/config/test/has_tr1_type_traits_pass.cpp
@@ -0,0 +1,38 @@
+// This file was automatically generated on Sat Jul 12 12:39:32 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: has_tr1_type_traits_pass.cpp 47435 2008-07-15 10:41:52Z johnmaddock $
+//
+
+
+// Test file for macro BOOST_HAS_TR1_TYPE_TRAITS
+// This file should compile, if it does not then
+// BOOST_HAS_TR1_TYPE_TRAITS should not be defined.
+// See file boost_has_tr1_type_traits.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include <boost/tr1/detail/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_HAS_TR1_TYPE_TRAITS
+#include "boost_has_tr1_type_traits.ipp"
+#else
+namespace boost_has_tr1_type_traits = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_tr1_type_traits::test();
+}
+
diff --git a/libs/config/test/has_tr1_unordered_map_fail.cpp b/libs/config/test/has_tr1_unordered_map_fail.cpp
new file mode 100644
index 0000000000..0a4c49df0d
--- /dev/null
+++ b/libs/config/test/has_tr1_unordered_map_fail.cpp
@@ -0,0 +1,38 @@
+// This file was automatically generated on Sat Jul 12 12:39:32 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: has_tr1_unordered_map_fail.cpp 47435 2008-07-15 10:41:52Z johnmaddock $
+//
+
+
+// Test file for macro BOOST_HAS_TR1_UNORDERED_MAP
+// This file should not compile, if it does then
+// BOOST_HAS_TR1_UNORDERED_MAP should be defined.
+// See file boost_has_tr1_unordered_map.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include <boost/tr1/detail/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_HAS_TR1_UNORDERED_MAP
+#include "boost_has_tr1_unordered_map.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_tr1_unordered_map::test();
+}
+
diff --git a/libs/config/test/has_tr1_unordered_map_pass.cpp b/libs/config/test/has_tr1_unordered_map_pass.cpp
new file mode 100644
index 0000000000..e92ed109e0
--- /dev/null
+++ b/libs/config/test/has_tr1_unordered_map_pass.cpp
@@ -0,0 +1,38 @@
+// This file was automatically generated on Sat Jul 12 12:39:32 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: has_tr1_unordered_map_pass.cpp 47435 2008-07-15 10:41:52Z johnmaddock $
+//
+
+
+// Test file for macro BOOST_HAS_TR1_UNORDERED_MAP
+// This file should compile, if it does not then
+// BOOST_HAS_TR1_UNORDERED_MAP should not be defined.
+// See file boost_has_tr1_unordered_map.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include <boost/tr1/detail/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_HAS_TR1_UNORDERED_MAP
+#include "boost_has_tr1_unordered_map.ipp"
+#else
+namespace boost_has_tr1_unordered_map = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_tr1_unordered_map::test();
+}
+
diff --git a/libs/config/test/has_tr1_unordered_set_fail.cpp b/libs/config/test/has_tr1_unordered_set_fail.cpp
new file mode 100644
index 0000000000..1f24029077
--- /dev/null
+++ b/libs/config/test/has_tr1_unordered_set_fail.cpp
@@ -0,0 +1,38 @@
+// This file was automatically generated on Sat Jul 12 12:39:32 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: has_tr1_unordered_set_fail.cpp 47435 2008-07-15 10:41:52Z johnmaddock $
+//
+
+
+// Test file for macro BOOST_HAS_TR1_UNORDERED_SET
+// This file should not compile, if it does then
+// BOOST_HAS_TR1_UNORDERED_SET should be defined.
+// See file boost_has_tr1_unordered_set.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include <boost/tr1/detail/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_HAS_TR1_UNORDERED_SET
+#include "boost_has_tr1_unordered_set.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_tr1_unordered_set::test();
+}
+
diff --git a/libs/config/test/has_tr1_unordered_set_pass.cpp b/libs/config/test/has_tr1_unordered_set_pass.cpp
new file mode 100644
index 0000000000..86ccee7c54
--- /dev/null
+++ b/libs/config/test/has_tr1_unordered_set_pass.cpp
@@ -0,0 +1,38 @@
+// This file was automatically generated on Sat Jul 12 12:39:32 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: has_tr1_unordered_set_pass.cpp 47435 2008-07-15 10:41:52Z johnmaddock $
+//
+
+
+// Test file for macro BOOST_HAS_TR1_UNORDERED_SET
+// This file should compile, if it does not then
+// BOOST_HAS_TR1_UNORDERED_SET should not be defined.
+// See file boost_has_tr1_unordered_set.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include <boost/tr1/detail/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_HAS_TR1_UNORDERED_SET
+#include "boost_has_tr1_unordered_set.ipp"
+#else
+namespace boost_has_tr1_unordered_set = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_tr1_unordered_set::test();
+}
+
diff --git a/libs/config/test/has_tr1_utility_fail.cpp b/libs/config/test/has_tr1_utility_fail.cpp
new file mode 100644
index 0000000000..7246c53ec1
--- /dev/null
+++ b/libs/config/test/has_tr1_utility_fail.cpp
@@ -0,0 +1,38 @@
+// This file was automatically generated on Sat Jul 12 12:39:33 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: has_tr1_utility_fail.cpp 47435 2008-07-15 10:41:52Z johnmaddock $
+//
+
+
+// Test file for macro BOOST_HAS_TR1_UTILITY
+// This file should not compile, if it does then
+// BOOST_HAS_TR1_UTILITY should be defined.
+// See file boost_has_tr1_utility.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include <boost/tr1/detail/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_HAS_TR1_UTILITY
+#include "boost_has_tr1_utility.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_tr1_utility::test();
+}
+
diff --git a/libs/config/test/has_tr1_utility_pass.cpp b/libs/config/test/has_tr1_utility_pass.cpp
new file mode 100644
index 0000000000..538ca9615f
--- /dev/null
+++ b/libs/config/test/has_tr1_utility_pass.cpp
@@ -0,0 +1,38 @@
+// This file was automatically generated on Sat Jul 12 12:39:33 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: has_tr1_utility_pass.cpp 47435 2008-07-15 10:41:52Z johnmaddock $
+//
+
+
+// Test file for macro BOOST_HAS_TR1_UTILITY
+// This file should compile, if it does not then
+// BOOST_HAS_TR1_UTILITY should not be defined.
+// See file boost_has_tr1_utility.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include <boost/tr1/detail/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_HAS_TR1_UTILITY
+#include "boost_has_tr1_utility.ipp"
+#else
+namespace boost_has_tr1_utility = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_tr1_utility::test();
+}
+
diff --git a/libs/config/test/has_unistd_h_fail.cpp b/libs/config/test/has_unistd_h_fail.cpp
new file mode 100644
index 0000000000..363aea2202
--- /dev/null
+++ b/libs/config/test/has_unistd_h_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:00 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_HAS_UNISTD_H
+// This file should not compile, if it does then
+// BOOST_HAS_UNISTD_H should be defined.
+// See file boost_has_unistd_h.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_HAS_UNISTD_H
+#include "boost_has_unistd_h.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_unistd_h::test();
+}
+
diff --git a/libs/config/test/has_unistd_h_pass.cpp b/libs/config/test/has_unistd_h_pass.cpp
new file mode 100644
index 0000000000..70f8137554
--- /dev/null
+++ b/libs/config/test/has_unistd_h_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:00 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_HAS_UNISTD_H
+// This file should compile, if it does not then
+// BOOST_HAS_UNISTD_H should not be defined.
+// See file boost_has_unistd_h.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_HAS_UNISTD_H
+#include "boost_has_unistd_h.ipp"
+#else
+namespace boost_has_unistd_h = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_unistd_h::test();
+}
+
diff --git a/libs/config/test/has_variadic_tmpl_fail.cpp b/libs/config/test/has_variadic_tmpl_fail.cpp
new file mode 100644
index 0000000000..17baab7800
--- /dev/null
+++ b/libs/config/test/has_variadic_tmpl_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Sat Aug 25 12:32:21 2007
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_HAS_VARIADIC_TMPL
+// This file should not compile, if it does then
+// BOOST_HAS_VARIADIC_TMPL should be defined.
+// See file boost_has_variadic_tmpl.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_HAS_VARIADIC_TMPL
+#include "boost_has_variadic_tmpl.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_variadic_tmpl::test();
+}
+
diff --git a/libs/config/test/has_variadic_tmpl_pass.cpp b/libs/config/test/has_variadic_tmpl_pass.cpp
new file mode 100644
index 0000000000..8b65b8d22d
--- /dev/null
+++ b/libs/config/test/has_variadic_tmpl_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Sat Aug 25 12:32:21 2007
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_HAS_VARIADIC_TMPL
+// This file should compile, if it does not then
+// BOOST_HAS_VARIADIC_TMPL should not be defined.
+// See file boost_has_variadic_tmpl.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_HAS_VARIADIC_TMPL
+#include "boost_has_variadic_tmpl.ipp"
+#else
+namespace boost_has_variadic_tmpl = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_variadic_tmpl::test();
+}
+
diff --git a/libs/config/test/has_vc6_mem_templ_fail.cpp b/libs/config/test/has_vc6_mem_templ_fail.cpp
new file mode 100644
index 0000000000..6fa512abeb
--- /dev/null
+++ b/libs/config/test/has_vc6_mem_templ_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:00 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_MSVC6_MEMBER_TEMPLATES
+// This file should not compile, if it does then
+// BOOST_MSVC6_MEMBER_TEMPLATES should be defined.
+// See file boost_has_vc6_mem_templ.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_MSVC6_MEMBER_TEMPLATES
+#include "boost_has_vc6_mem_templ.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_msvc6_member_templates::test();
+}
+
diff --git a/libs/config/test/has_vc6_mem_templ_pass.cpp b/libs/config/test/has_vc6_mem_templ_pass.cpp
new file mode 100644
index 0000000000..85325a9def
--- /dev/null
+++ b/libs/config/test/has_vc6_mem_templ_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:00 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_MSVC6_MEMBER_TEMPLATES
+// This file should compile, if it does not then
+// BOOST_MSVC6_MEMBER_TEMPLATES should not be defined.
+// See file boost_has_vc6_mem_templ.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_MSVC6_MEMBER_TEMPLATES
+#include "boost_has_vc6_mem_templ.ipp"
+#else
+namespace boost_msvc6_member_templates = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_msvc6_member_templates::test();
+}
+
diff --git a/libs/config/test/has_vc_iterator_fail.cpp b/libs/config/test/has_vc_iterator_fail.cpp
new file mode 100644
index 0000000000..e453e56ac7
--- /dev/null
+++ b/libs/config/test/has_vc_iterator_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:00 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_MSVC_STD_ITERATOR
+// This file should not compile, if it does then
+// BOOST_MSVC_STD_ITERATOR should be defined.
+// See file boost_has_vc_iterator.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_MSVC_STD_ITERATOR
+#include "boost_has_vc_iterator.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_msvc_std_iterator::test();
+}
+
diff --git a/libs/config/test/has_vc_iterator_pass.cpp b/libs/config/test/has_vc_iterator_pass.cpp
new file mode 100644
index 0000000000..102cab7362
--- /dev/null
+++ b/libs/config/test/has_vc_iterator_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:00 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_MSVC_STD_ITERATOR
+// This file should compile, if it does not then
+// BOOST_MSVC_STD_ITERATOR should not be defined.
+// See file boost_has_vc_iterator.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_MSVC_STD_ITERATOR
+#include "boost_has_vc_iterator.ipp"
+#else
+namespace boost_msvc_std_iterator = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_msvc_std_iterator::test();
+}
+
diff --git a/libs/config/test/has_winthreads_fail.cpp b/libs/config/test/has_winthreads_fail.cpp
new file mode 100644
index 0000000000..e9f6c71421
--- /dev/null
+++ b/libs/config/test/has_winthreads_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:00 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_HAS_WINTHREADS
+// This file should not compile, if it does then
+// BOOST_HAS_WINTHREADS should be defined.
+// See file boost_has_winthreads.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_HAS_WINTHREADS
+#include "boost_has_winthreads.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_winthreads::test();
+}
+
diff --git a/libs/config/test/has_winthreads_pass.cpp b/libs/config/test/has_winthreads_pass.cpp
new file mode 100644
index 0000000000..49d020fc95
--- /dev/null
+++ b/libs/config/test/has_winthreads_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:00 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_HAS_WINTHREADS
+// This file should compile, if it does not then
+// BOOST_HAS_WINTHREADS should not be defined.
+// See file boost_has_winthreads.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_HAS_WINTHREADS
+#include "boost_has_winthreads.ipp"
+#else
+namespace boost_has_winthreads = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_has_winthreads::test();
+}
+
diff --git a/libs/config/test/limits_test.cpp b/libs/config/test/limits_test.cpp
new file mode 100644
index 0000000000..89627fe646
--- /dev/null
+++ b/libs/config/test/limits_test.cpp
@@ -0,0 +1,210 @@
+/* boost limits_test.cpp test your <limits> file for important
+ *
+ * Copyright Jens Maurer 2000
+ * Distributed under the Boost Software License, Version 1.0. (See
+ * accompanying file LICENSE_1_0.txt or copy at
+ * http://www.boost.org/LICENSE_1_0.txt)
+ *
+ * $Id: limits_test.cpp 30181 2005-07-19 17:14:00Z johnmaddock $
+ */
+
+#include <boost/limits.hpp>
+#define BOOST_INCLUDE_MAIN
+#include <boost/test/test_tools.hpp>
+#include <iostream>
+
+/*
+ * General portability note:
+ * MSVC mis-compiles explicit function template instantiations.
+ * For example, f<A>() and f<B>() are both compiled to call f<A>().
+ * BCC is unable to implicitly convert a "const char *" to a std::string
+ * when using explicit function template instantiations.
+ *
+ * Therefore, avoid explicit function template instantiations.
+ */
+#if defined(BOOST_MSVC) && (BOOST_MSVC <= 1300)
+template<typename T> inline T make_char_numeric_for_streaming(T x) { return x; }
+namespace fix{
+inline int make_char_numeric_for_streaming(char c) { return c; }
+inline int make_char_numeric_for_streaming(signed char c) { return c; }
+inline int make_char_numeric_for_streaming(unsigned char c) { return c; }
+}
+using namespace fix;
+# if defined(_YVALS) && !defined(_CPPLIB_VER) && !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION)
+// fix for missing operator<< in original Dinkumware lib:
+std::ostream& operator<<(std::ostream& os, __int64 i )
+{
+ char buf[80];
+ sprintf(buf,"%I64d", i );
+ os << buf;
+ return os;
+}
+std::ostream& operator<<(std::ostream& os, unsigned __int64 i )
+{
+ char buf[80];
+ sprintf(buf,"%I64u", i );
+ os << buf;
+ return os;
+}
+# endif
+#else
+template<typename T> inline T make_char_numeric_for_streaming(T x) { return x; }
+inline int make_char_numeric_for_streaming(char c) { return c; }
+inline int make_char_numeric_for_streaming(signed char c) { return c; }
+inline int make_char_numeric_for_streaming(unsigned char c) { return c; }
+#endif
+
+#if (defined(_GLIBCPP_VERSION) || defined(_GLIBCXX_VERSION)) \
+ && defined(BOOST_HAS_LONG_LONG) \
+ && !defined(_GLIBCPP_USE_LONG_LONG) \
+ && !defined(_GLIBCXX_USE_LONG_LONG)
+//
+// Some libstdc++ versions have numeric_limits<long long> but no
+// iostream support for long long. TODO, find a better fix!!
+//
+std::ostream& operator<<(std::ostream& os, long long i )
+{
+ return os << static_cast<long double>(i);
+}
+std::ostream& operator<<(std::ostream& os, unsigned long long i )
+{
+ return os << static_cast<long double>(i);
+}
+#endif
+
+template<class T>
+void test_integral_limits(const T &, const char * msg)
+{
+ typedef std::numeric_limits<T> lim;
+ std::cout << "Testing " << msg
+ << " (size " << sizeof(T) << ")"
+ << " min: " << make_char_numeric_for_streaming((lim::min)())
+ << ", max: " << make_char_numeric_for_streaming((lim::max)())
+ << std::endl;
+
+ BOOST_CHECK(static_cast<bool>(lim::is_specialized));
+ BOOST_CHECK(static_cast<bool>(lim::is_integer));
+ // BOOST_CHECK(lim::is_modulo);
+ BOOST_CHECK(static_cast<bool>((lim::min)() < (lim::max)()));
+}
+
+template <class T>
+void print_hex_val(T t, const char* name)
+{
+ const unsigned char* p = (const unsigned char*)&t;
+ std::cout << "hex value of " << name << " is: ";
+ for (unsigned int i = 0; i < sizeof(T); ++i) {
+ if(p[i] <= 0xF)
+ std::cout << "0";
+ std::cout << std::hex << (int)p[i];
+ }
+ std::cout << std::dec << std::endl;
+}
+
+template<class T>
+void test_float_limits(const T &, const char * msg)
+{
+ std::cout << "\nTesting " << msg << std::endl;
+ typedef std::numeric_limits<T> lim;
+
+ BOOST_CHECK(static_cast<bool>(lim::is_specialized));
+ BOOST_CHECK(static_cast<bool>(!lim::is_modulo));
+ BOOST_CHECK(static_cast<bool>(!lim::is_integer));
+ BOOST_CHECK(static_cast<bool>(lim::is_signed));
+
+ const T infinity = lim::infinity();
+ const T qnan = lim::quiet_NaN();
+ const T snan = lim::signaling_NaN();
+
+ std::cout << "IEEE-compatible: " << lim::is_iec559
+ << ", traps: " << lim::traps
+ << ", bounded: " << lim::is_bounded
+ << ", exact: " << lim::is_exact << '\n'
+ << "min: " << (lim::min)() << ", max: " << (lim::max)() << '\n'
+ << "infinity: " << infinity << ", QNaN: " << qnan << '\n';
+ print_hex_val((lim::max)(), "max");
+ print_hex_val(infinity, "infinity");
+ print_hex_val(qnan, "qnan");
+ print_hex_val(snan, "snan");
+
+ BOOST_CHECK((lim::max)() > 1000);
+ BOOST_CHECK((lim::min)() > 0);
+ BOOST_CHECK((lim::min)() < 0.001);
+ BOOST_CHECK(lim::epsilon() > 0);
+
+ if(lim::is_iec559) {
+ BOOST_CHECK(static_cast<bool>(lim::has_infinity));
+ BOOST_CHECK(static_cast<bool>(lim::has_quiet_NaN));
+ BOOST_CHECK(static_cast<bool>(lim::has_signaling_NaN));
+ } else {
+ std::cout << "Does not claim IEEE conformance" << std::endl;
+ }
+
+ if(lim::has_infinity) {
+ // Make sure those values are not 0 or similar nonsense.
+ // Infinity must compare as if larger than the maximum representable value.
+ BOOST_CHECK(infinity > (lim::max)());
+ BOOST_CHECK(-infinity < -(lim::max)());
+ } else {
+ std::cout << "Does not have infinity" << std::endl;
+ }
+
+ if(lim::has_quiet_NaN) {
+ // NaNs shall always compare "false" when compared for equality
+ // If one of these fail, your compiler may be optimizing incorrectly,
+ // or the standard library is incorrectly configured.
+ BOOST_CHECK(! (qnan == 42));
+ BOOST_CHECK(! (qnan == qnan));
+ BOOST_CHECK(qnan != 42);
+ BOOST_CHECK(qnan != qnan);
+
+ // The following tests may cause arithmetic traps.
+ // BOOST_CHECK(! (qnan < 42));
+ // BOOST_CHECK(! (qnan > 42));
+ // BOOST_CHECK(! (qnan <= 42));
+ // BOOST_CHECK(! (qnan >= 42));
+ } else {
+ std::cout << "Does not have QNaN" << std::endl;
+ }
+}
+
+
+int test_main(int, char*[])
+{
+ test_integral_limits(bool(), "bool");
+ test_integral_limits(char(), "char");
+ typedef signed char signed_char;
+ test_integral_limits(signed_char(), "signed char");
+ typedef unsigned char unsigned_char;
+ test_integral_limits(unsigned_char(), "unsigned char");
+ test_integral_limits(wchar_t(), "wchar_t");
+ test_integral_limits(short(), "short");
+ typedef unsigned short unsigned_short;
+ test_integral_limits(unsigned_short(), "unsigned short");
+ test_integral_limits(int(), "int");
+ typedef unsigned int unsigned_int;
+ test_integral_limits(unsigned_int(), "unsigned int");
+ test_integral_limits(long(), "long");
+ typedef unsigned long unsigned_long;
+ test_integral_limits(unsigned_long(), "unsigned long");
+#if defined(BOOST_HAS_LONG_LONG)
+ test_integral_limits(::boost::long_long_type(), "long long");
+ test_integral_limits(::boost::ulong_long_type(), "unsigned long long");
+#endif
+#ifdef BOOST_HAS_MS_INT64
+ typedef __int64 long_long2;
+ test_integral_limits(long_long2(), "__int64");
+ typedef unsigned __int64 unsigned_long_long2;
+ test_integral_limits(unsigned_long_long2(), "unsigned __int64");
+#endif
+
+ test_float_limits(float(), "float");
+ test_float_limits(double(), "double");
+ typedef long double long_double;
+ test_float_limits(long_double(), "long double");
+ // Some compilers don't pay attention to std:3.6.1/5 and issue a
+ // warning here if "return 0;" is omitted.
+ return 0;
+}
+
+
diff --git a/libs/config/test/link/Jamfile.v2 b/libs/config/test/link/Jamfile.v2
new file mode 100644
index 0000000000..c5da6c29e8
--- /dev/null
+++ b/libs/config/test/link/Jamfile.v2
@@ -0,0 +1,19 @@
+# copyright John Maddock 2003
+# Use, modification and distribution are subject to the
+# Boost Software License, Version 1.0. (See accompanying file
+# LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+lib link_test : link_test.cpp
+ : <link>shared <runtime-link>shared
+ # This is needed to make the test work, I'm unsure if this
+ # should be set globally.
+ <define>BOOST_DYN_LINK=1
+ # Override <threading>multi inherited from parent.
+ <threading>single
+ :
+ debug release
+ ;
+
+run main.cpp link_test : : : <define>BOOST_DYN_LINK=1 <define>BOOST_CONFIG_NO_LIB <link>shared <runtime-link>shared <threading>single : link_test_test ;
+
+
diff --git a/libs/config/test/link/bc_gen.sh b/libs/config/test/link/bc_gen.sh
new file mode 100644
index 0000000000..6e48dda8b1
--- /dev/null
+++ b/libs/config/test/link/bc_gen.sh
@@ -0,0 +1,286 @@
+#! /bin/bash
+
+# copyright John Maddock 2005
+# Use, modification and distribution are subject to the
+# Boost Software License, Version 1.0. (See accompanying file
+# LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+libname=""
+src=""
+header=""
+all_dep=""
+
+# current makefile:
+out=""
+# temporary file:
+tout=""
+# install target temp file:
+iout=""
+# debug flag:
+debug="no"
+# compile options:
+opts=""
+# main output sub-directory:
+subdir=""
+
+#######################################################################
+#
+# section for C++ Builder
+#
+#######################################################################
+
+function bcb_gen_lib()
+{
+ all_dep="$all_dep $subdir\\$libname $subdir\\$libname.lib $subdir\\$libname.exe"
+ echo " copy $subdir\\$libname.lib \$(BCROOT)\\lib" >> $iout
+#
+# set up section comments:
+ cat >> $tout << EOF
+########################################################
+#
+# section for $libname.lib
+#
+########################################################
+EOF
+#
+# process source files:
+ all_obj=""
+ all_lib_obj=""
+ for file in $src
+ do
+ obj=`echo "$file" | sed 's/\(.*\)cpp/\1obj/g'`
+ obj="$subdir\\$libname\\$obj"
+ all_obj="$all_obj $obj"
+ all_lib_obj="$all_lib_obj \"$obj\""
+ echo "$obj: $file \$(ALL_HEADER)" >> $tout
+ echo " bcc32 @&&|" >> $tout
+ echo "-c \$(INCLUDES) $opts \$(CXXFLAGS) -o$obj $file" >> $tout
+ echo "|" >> $tout
+ echo "" >> $tout
+ done
+#
+# now for the directories for this library:
+ echo "$subdir\\$libname : " >> $tout
+ echo " -@mkdir $subdir\\$libname" >> $tout
+ echo "" >> $tout
+#
+# now for the clean options for this library:
+ all_clean="$all_clean $libname""_clean"
+ echo "$libname"_clean : >> $tout
+ echo " del $subdir\\$libname\\"'*.obj' >> $tout
+ echo " del $subdir\\$libname\\"'*.il?' >> $tout
+ echo " del $subdir\\$libname\\"'*.csm' >> $tout
+ echo " del $subdir\\$libname\\"'*.tds' >> $tout
+ echo "" >> $tout
+#
+# now for the main target for this library:
+ echo $subdir\\$libname.lib : $all_obj >> $tout
+ echo " tlib @&&|" >> $tout
+ echo "/P128 /C /u /a \$(XSFLAGS) \"$subdir\\$libname.lib\" $all_lib_obj" >> $tout
+ echo "|" >> $tout
+ echo "" >> $tout
+# now the test program:
+ echo "$subdir\\$libname.exe : main.cpp $subdir\\$libname.lib" >> $tout
+ echo " bcc32 \$(INCLUDES) $opts /DBOOST_LIB_DIAGNOSTIC=1 \$(CXXFLAGS) -L./$subdir -e./$subdir/$libname.exe main.cpp" >> $tout
+ echo " echo running test progam $subdir"'\'"$libname.exe" >> $tout
+ echo " $subdir"'\'"$libname.exe" >> $tout
+ echo "" >> $tout
+}
+
+function bcb_gen_dll()
+{
+ all_dep="$all_dep $subdir\\$libname $subdir\\$libname.lib $subdir\\$libname.exe"
+ echo " copy $subdir\\$libname.lib \$(BCROOT)\\lib" >> $iout
+ echo " copy $subdir\\$libname.dll \$(BCROOT)\\bin" >> $iout
+ echo " copy $subdir\\$libname.tds \$(BCROOT)\\bin" >> $iout
+#
+# set up section comments:
+ cat >> $tout << EOF
+########################################################
+#
+# section for $libname.lib
+#
+########################################################
+EOF
+#
+# process source files:
+ all_obj=""
+ for file in $src
+ do
+ obj=`echo "$file" | sed 's/\(.*\)cpp/\1obj/g'`
+ obj="$subdir\\$libname\\$obj"
+ all_obj="$all_obj $obj"
+ echo "$obj: $file \$(ALL_HEADER)" >> $tout
+ echo " bcc32 @&&|" >> $tout
+ echo "-c \$(INCLUDES) $opts \$(CXXFLAGS) -DBOOST_DYN_LINK -o$obj $file" >> $tout
+ echo "|" >> $tout
+ echo "" >> $tout
+ done
+#
+# now for the directories for this library:
+ echo "$subdir\\$libname :" >> $tout
+ echo " -@mkdir $subdir\\$libname" >> $tout
+ echo "" >> $tout
+#
+# now for the clean options for this library:
+ all_clean="$all_clean $libname""_clean"
+ echo "$libname"_clean : >> $tout
+ echo " del $subdir\\$libname\\"'*.obj' >> $tout
+ echo " del $subdir\\$libname\\"'*.il?' >> $tout
+ echo " del $subdir\\$libname\\"'*.csm' >> $tout
+ echo " del $subdir\\$libname\\"'*.tds' >> $tout
+ echo " del $subdir\\"'*.tds' >> $tout
+ echo "" >> $tout
+#
+# now for the main target for this library:
+ echo $subdir\\$libname.lib : $all_obj >> $tout
+ echo " bcc32 @&&|" >> $tout
+ echo "-lw-dup -lw-dpl $opts -e$subdir\\$libname.dll \$(XLFLAGS) $all_obj \$(LIBS)" >> $tout
+ echo "|" >> $tout
+ echo " implib -w $subdir\\$libname.lib $subdir\\$libname.dll" >> $tout
+ echo "" >> $tout
+# now the test program:
+ echo "$subdir\\$libname.exe : main.cpp $subdir\\$libname.lib" >> $tout
+ echo " bcc32 \$(INCLUDES) $opts /DBOOST_LIB_DIAGNOSTIC=1 \$(CXXFLAGS) -DBOOST_DYN_LINK -L./$subdir -e./$subdir/$libname.exe main.cpp" >> $tout
+ echo " echo running test program $subdir"'\'"$libname.exe" >> $tout
+ echo " $subdir"'\'"$libname.exe" >> $tout
+ echo "" >> $tout
+}
+
+
+
+function bcb_gen()
+{
+ tout="temp"
+ iout="temp_install"
+ all_dep="$subdir"
+ all_clean=""
+ echo > $out
+ echo > $tout
+ rm -f $iout
+
+ libname="liblink_test-${subdir}-s-${boost_version}"
+ opts="-tWM- -D_NO_VCL -O2 -Ve -Vx -w-inl -w-aus -w-rch -w-8012 -w-8037 -w-8057 -DSTRICT; -I\$(BCROOT)\include;../../../../"
+ bcb_gen_lib
+
+ libname="liblink_test-${subdir}-mt-s-${boost_version}"
+ opts="-tWM -D_NO_VCL -O2 -Ve -Vx -w-inl -w-aus -w-rch -w-8012 -w-8057 -w-8037 -DSTRICT; -I\$(BCROOT)\include;../../../../"
+ bcb_gen_lib
+
+ libname="link_test-${subdir}-mt-${boost_version}"
+ opts="-tWD -tWM -tWR -D_NO_VCL -D_RTLDLL -O2 -Ve -Vx -w-inl -w-aus -w-rch -w-8012 -w-8057 -w-8037 -DSTRICT; -I\$(BCROOT)\include;../../../../ -L\$(BCROOT)\lib;\$(BCROOT)\lib\release;"
+ bcb_gen_dll
+
+ libname="link_test-${subdir}-${boost_version}"
+ opts="-tWD -tWR -tWM- -D_NO_VCL -D_RTLDLL -O2 -Ve -Vx -w-inl -w-aus -w-rch -w-8012 -w-8057 -w-8037 -DSTRICT; -I\$(BCROOT)\include;../../../../ -L\$(BCROOT)\lib;\$(BCROOT)\lib\release;"
+ bcb_gen_dll
+
+ libname="liblink_test-${subdir}-mt-${boost_version}"
+ opts="-tWD -tWM -tWR -DBOOST_REGEX_STATIC_LINK -D_NO_VCL -D_RTLDLL -O2 -Ve -Vx -w-inl -w-aus -w-rch -w-8012 -w-8057 -w-8037 -DSTRICT; -I\$(BCROOT)\include;../../../../ -L\$(BCROOT)\lib;\$(BCROOT)\lib\release;"
+ bcb_gen_lib
+
+ libname="liblink_test-${subdir}-${boost_version}"
+ opts="-tWD -tWR -tWM- -DBOOST_REGEX_STATIC_LINK -D_NO_VCL -D_RTLDLL -O2 -Ve -Vx -w-inl -w-aus -w-rch -w-8012 -w-8057 -w-8037 -DSTRICT; -I\$(BCROOT)\include;../../../../ -L\$(BCROOT)\lib;\$(BCROOT)\lib\release;"
+ bcb_gen_lib
+ #
+ # debug versions:
+ libname="liblink_test-${subdir}-sd-${boost_version}"
+ opts="-tWM- -D_NO_VCL -v -Ve -Vx -w-inl -w-aus -w-rch -w-8012 -w-8037 -w-8057 -DSTRICT; -I\$(BCROOT)\include;../../../../"
+ bcb_gen_lib
+
+ libname="liblink_test-${subdir}-mt-sd-${boost_version}"
+ opts="-tWM -D_NO_VCL -v -Ve -Vx -w-inl -w-aus -w-rch -w-8012 -w-8057 -w-8037 -DSTRICT; -I\$(BCROOT)\include;../../../../"
+ bcb_gen_lib
+
+ libname="link_test-${subdir}-mt-d-${boost_version}"
+ opts="-tWD -tWM -tWR -D_NO_VCL -D_RTLDLL -v -Ve -Vx -w-inl -w-aus -w-rch -w-8012 -w-8057 -w-8037 -DSTRICT; -I\$(BCROOT)\include;../../../../ -L\$(BCROOT)\lib;\$(BCROOT)\lib\release;"
+ bcb_gen_dll
+
+ libname="link_test-${subdir}-d-${boost_version}"
+ opts="-tWD -tWR -tWM- -D_NO_VCL -D_RTLDLL -v -Ve -Vx -w-inl -w-aus -w-rch -w-8012 -w-8057 -w-8037 -DSTRICT; -I\$(BCROOT)\include;../../../../ -L\$(BCROOT)\lib;\$(BCROOT)\lib\release;"
+ bcb_gen_dll
+
+ libname="liblink_test-${subdir}-mt-d-${boost_version}"
+ opts="-tWD -tWM -tWR -DBOOST_REGEX_STATIC_LINK -D_NO_VCL -D_RTLDLL -v -Ve -Vx -w-inl -w-aus -w-rch -w-8012 -w-8057 -w-8037 -DSTRICT; -I\$(BCROOT)\include;../../../../ -L\$(BCROOT)\lib;\$(BCROOT)\lib\release;"
+ bcb_gen_lib
+
+ libname="liblink_test-${subdir}-d-${boost_version}"
+ opts="-tWD -tWR -tWM- -DBOOST_REGEX_STATIC_LINK -D_NO_VCL -D_RTLDLL -v -Ve -Vx -w-inl -w-aus -w-rch -w-8012 -w-8057 -w-8037 -DSTRICT; -I\$(BCROOT)\include;../../../../ -L\$(BCROOT)\lib;\$(BCROOT)\lib\release;"
+ bcb_gen_lib
+
+
+ cat > $out << EOF
+# copyright John Maddock 2005
+# Use, modification and distribution are subject to the
+# Boost Software License, Version 1.0. (See accompanying file
+# LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+#
+# auto generated makefile for C++ Builder
+#
+# usage:
+# make
+# brings libraries up to date
+# make install
+# brings libraries up to date and copies binaries to your C++ Builder /lib and /bin directories (recomended)
+# make clean
+# removes all temporary files.
+
+#
+# Add additional compiler options here:
+#
+CXXFLAGS=
+#
+# Add additional include directories here:
+#
+INCLUDES=
+#
+# add additional linker flags here:
+#
+XLFLAGS=
+#
+# add additional libraries to link to here:
+#
+LIBS=
+#
+# add additional static-library creation flags here:
+#
+XSFLAGS=
+
+!ifndef BCROOT
+BCROOT=\$(MAKEDIR)\\..
+!endif
+
+EOF
+ echo "" >> $out
+ echo "ALL_HEADER=$header" >> $out
+ echo "" >> $out
+ echo "all : $all_dep" >> $out
+ echo >> $out
+ echo "clean : $all_clean" >> $out
+ echo >> $out
+ echo "install : all" >> $out
+ cat $iout >> $out
+ echo >> $out
+ echo $subdir : >> $out
+ echo " -@mkdir $subdir" >> $out
+ echo "" >> $out
+
+ cat $tout >> $out
+}
+
+. common.sh
+
+#
+# generate C++ Builder 6 files:
+out="borland.mak"
+subdir="borland"
+has_stlport="yes"
+bcb_gen
+
+
+
+
+
+
+
+
diff --git a/libs/config/test/link/borland.mak b/libs/config/test/link/borland.mak
new file mode 100644
index 0000000000..624759c776
--- /dev/null
+++ b/libs/config/test/link/borland.mak
@@ -0,0 +1,429 @@
+# copyright John Maddock 2005
+# Use, modification and distribution are subject to the
+# Boost Software License, Version 1.0. (See accompanying file
+# LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+#
+# auto generated makefile for C++ Builder
+#
+# usage:
+# make
+# brings libraries up to date
+# make install
+# brings libraries up to date and copies binaries to your C++ Builder /lib and /bin directories (recomended)
+# make clean
+# removes all temporary files.
+
+#
+# Add additional compiler options here:
+#
+CXXFLAGS=
+#
+# Add additional include directories here:
+#
+INCLUDES=
+#
+# add additional linker flags here:
+#
+XLFLAGS=
+#
+# add additional libraries to link to here:
+#
+LIBS=
+#
+# add additional static-library creation flags here:
+#
+XSFLAGS=
+
+!ifndef BCROOT
+BCROOT=$(MAKEDIR)\..
+!endif
+
+
+ALL_HEADER=
+
+all : borland borland\liblink_test-borland-s-1_35 borland\liblink_test-borland-s-1_35.lib borland\liblink_test-borland-s-1_35.exe borland\liblink_test-borland-mt-s-1_35 borland\liblink_test-borland-mt-s-1_35.lib borland\liblink_test-borland-mt-s-1_35.exe borland\link_test-borland-mt-1_35 borland\link_test-borland-mt-1_35.lib borland\link_test-borland-mt-1_35.exe borland\link_test-borland-1_35 borland\link_test-borland-1_35.lib borland\link_test-borland-1_35.exe borland\liblink_test-borland-mt-1_35 borland\liblink_test-borland-mt-1_35.lib borland\liblink_test-borland-mt-1_35.exe borland\liblink_test-borland-1_35 borland\liblink_test-borland-1_35.lib borland\liblink_test-borland-1_35.exe borland\liblink_test-borland-sd-1_35 borland\liblink_test-borland-sd-1_35.lib borland\liblink_test-borland-sd-1_35.exe borland\liblink_test-borland-mt-sd-1_35 borland\liblink_test-borland-mt-sd-1_35.lib borland\liblink_test-borland-mt-sd-1_35.exe borland\link_test-borland-mt-d-1_35 borland\link_test-borland-mt-d-1_35.lib borland\link_test-borland-mt-d-1_35.exe borland\link_test-borland-d-1_35 borland\link_test-borland-d-1_35.lib borland\link_test-borland-d-1_35.exe borland\liblink_test-borland-mt-d-1_35 borland\liblink_test-borland-mt-d-1_35.lib borland\liblink_test-borland-mt-d-1_35.exe borland\liblink_test-borland-d-1_35 borland\liblink_test-borland-d-1_35.lib borland\liblink_test-borland-d-1_35.exe
+
+clean : liblink_test-borland-s-1_35_clean liblink_test-borland-mt-s-1_35_clean link_test-borland-mt-1_35_clean link_test-borland-1_35_clean liblink_test-borland-mt-1_35_clean liblink_test-borland-1_35_clean liblink_test-borland-sd-1_35_clean liblink_test-borland-mt-sd-1_35_clean link_test-borland-mt-d-1_35_clean link_test-borland-d-1_35_clean liblink_test-borland-mt-d-1_35_clean liblink_test-borland-d-1_35_clean
+
+install : all
+ copy borland\liblink_test-borland-s-1_35.lib $(BCROOT)\lib
+ copy borland\liblink_test-borland-mt-s-1_35.lib $(BCROOT)\lib
+ copy borland\link_test-borland-mt-1_35.lib $(BCROOT)\lib
+ copy borland\link_test-borland-mt-1_35.dll $(BCROOT)\bin
+ copy borland\link_test-borland-mt-1_35.tds $(BCROOT)\bin
+ copy borland\link_test-borland-1_35.lib $(BCROOT)\lib
+ copy borland\link_test-borland-1_35.dll $(BCROOT)\bin
+ copy borland\link_test-borland-1_35.tds $(BCROOT)\bin
+ copy borland\liblink_test-borland-mt-1_35.lib $(BCROOT)\lib
+ copy borland\liblink_test-borland-1_35.lib $(BCROOT)\lib
+ copy borland\liblink_test-borland-sd-1_35.lib $(BCROOT)\lib
+ copy borland\liblink_test-borland-mt-sd-1_35.lib $(BCROOT)\lib
+ copy borland\link_test-borland-mt-d-1_35.lib $(BCROOT)\lib
+ copy borland\link_test-borland-mt-d-1_35.dll $(BCROOT)\bin
+ copy borland\link_test-borland-mt-d-1_35.tds $(BCROOT)\bin
+ copy borland\link_test-borland-d-1_35.lib $(BCROOT)\lib
+ copy borland\link_test-borland-d-1_35.dll $(BCROOT)\bin
+ copy borland\link_test-borland-d-1_35.tds $(BCROOT)\bin
+ copy borland\liblink_test-borland-mt-d-1_35.lib $(BCROOT)\lib
+ copy borland\liblink_test-borland-d-1_35.lib $(BCROOT)\lib
+
+borland :
+ -@mkdir borland
+
+
+########################################################
+#
+# section for liblink_test-borland-s-1_35.lib
+#
+########################################################
+borland\liblink_test-borland-s-1_35\link_test.obj: link_test.cpp $(ALL_HEADER)
+ bcc32 @&&|
+-c $(INCLUDES) -tWM- -D_NO_VCL -O2 -Ve -Vx -w-inl -w-aus -w-rch -w-8012 -w-8037 -w-8057 -DSTRICT; -I$(BCROOT)\include;../../../../ $(CXXFLAGS) -oborland\liblink_test-borland-s-1_35\link_test.obj link_test.cpp
+|
+
+borland\liblink_test-borland-s-1_35 :
+ -@mkdir borland\liblink_test-borland-s-1_35
+
+liblink_test-borland-s-1_35_clean :
+ del borland\liblink_test-borland-s-1_35\*.obj
+ del borland\liblink_test-borland-s-1_35\*.il?
+ del borland\liblink_test-borland-s-1_35\*.csm
+ del borland\liblink_test-borland-s-1_35\*.tds
+
+borland\liblink_test-borland-s-1_35.lib : borland\liblink_test-borland-s-1_35\link_test.obj
+ tlib @&&|
+/P128 /C /u /a $(XSFLAGS) "borland\liblink_test-borland-s-1_35.lib" "borland\liblink_test-borland-s-1_35\link_test.obj"
+|
+
+borland\liblink_test-borland-s-1_35.exe : main.cpp borland\liblink_test-borland-s-1_35.lib
+ bcc32 $(INCLUDES) -tWM- -D_NO_VCL -O2 -Ve -Vx -w-inl -w-aus -w-rch -w-8012 -w-8037 -w-8057 -DSTRICT; -I$(BCROOT)\include;../../../../ /DBOOST_LIB_DIAGNOSTIC=1 $(CXXFLAGS) -L./borland -e./borland/liblink_test-borland-s-1_35.exe main.cpp
+ echo running test progam borland\liblink_test-borland-s-1_35.exe
+ borland\liblink_test-borland-s-1_35.exe
+
+########################################################
+#
+# section for liblink_test-borland-mt-s-1_35.lib
+#
+########################################################
+borland\liblink_test-borland-mt-s-1_35\link_test.obj: link_test.cpp $(ALL_HEADER)
+ bcc32 @&&|
+-c $(INCLUDES) -tWM -D_NO_VCL -O2 -Ve -Vx -w-inl -w-aus -w-rch -w-8012 -w-8057 -w-8037 -DSTRICT; -I$(BCROOT)\include;../../../../ $(CXXFLAGS) -oborland\liblink_test-borland-mt-s-1_35\link_test.obj link_test.cpp
+|
+
+borland\liblink_test-borland-mt-s-1_35 :
+ -@mkdir borland\liblink_test-borland-mt-s-1_35
+
+liblink_test-borland-mt-s-1_35_clean :
+ del borland\liblink_test-borland-mt-s-1_35\*.obj
+ del borland\liblink_test-borland-mt-s-1_35\*.il?
+ del borland\liblink_test-borland-mt-s-1_35\*.csm
+ del borland\liblink_test-borland-mt-s-1_35\*.tds
+
+borland\liblink_test-borland-mt-s-1_35.lib : borland\liblink_test-borland-mt-s-1_35\link_test.obj
+ tlib @&&|
+/P128 /C /u /a $(XSFLAGS) "borland\liblink_test-borland-mt-s-1_35.lib" "borland\liblink_test-borland-mt-s-1_35\link_test.obj"
+|
+
+borland\liblink_test-borland-mt-s-1_35.exe : main.cpp borland\liblink_test-borland-mt-s-1_35.lib
+ bcc32 $(INCLUDES) -tWM -D_NO_VCL -O2 -Ve -Vx -w-inl -w-aus -w-rch -w-8012 -w-8057 -w-8037 -DSTRICT; -I$(BCROOT)\include;../../../../ /DBOOST_LIB_DIAGNOSTIC=1 $(CXXFLAGS) -L./borland -e./borland/liblink_test-borland-mt-s-1_35.exe main.cpp
+ echo running test progam borland\liblink_test-borland-mt-s-1_35.exe
+ borland\liblink_test-borland-mt-s-1_35.exe
+
+########################################################
+#
+# section for link_test-borland-mt-1_35.lib
+#
+########################################################
+borland\link_test-borland-mt-1_35\link_test.obj: link_test.cpp $(ALL_HEADER)
+ bcc32 @&&|
+-c $(INCLUDES) -tWD -tWM -tWR -D_NO_VCL -D_RTLDLL -O2 -Ve -Vx -w-inl -w-aus -w-rch -w-8012 -w-8057 -w-8037 -DSTRICT; -I$(BCROOT)\include;../../../../ -L$(BCROOT)\lib;$(BCROOT)\lib\release; $(CXXFLAGS) -DBOOST_DYN_LINK -oborland\link_test-borland-mt-1_35\link_test.obj link_test.cpp
+|
+
+borland\link_test-borland-mt-1_35 :
+ -@mkdir borland\link_test-borland-mt-1_35
+
+link_test-borland-mt-1_35_clean :
+ del borland\link_test-borland-mt-1_35\*.obj
+ del borland\link_test-borland-mt-1_35\*.il?
+ del borland\link_test-borland-mt-1_35\*.csm
+ del borland\link_test-borland-mt-1_35\*.tds
+ del borland\*.tds
+
+borland\link_test-borland-mt-1_35.lib : borland\link_test-borland-mt-1_35\link_test.obj
+ bcc32 @&&|
+-lw-dup -lw-dpl -tWD -tWM -tWR -D_NO_VCL -D_RTLDLL -O2 -Ve -Vx -w-inl -w-aus -w-rch -w-8012 -w-8057 -w-8037 -DSTRICT; -I$(BCROOT)\include;../../../../ -L$(BCROOT)\lib;$(BCROOT)\lib\release; -eborland\link_test-borland-mt-1_35.dll $(XLFLAGS) borland\link_test-borland-mt-1_35\link_test.obj $(LIBS)
+|
+ implib -w borland\link_test-borland-mt-1_35.lib borland\link_test-borland-mt-1_35.dll
+
+borland\link_test-borland-mt-1_35.exe : main.cpp borland\link_test-borland-mt-1_35.lib
+ bcc32 $(INCLUDES) -tWD -tWM -tWR -D_NO_VCL -D_RTLDLL -O2 -Ve -Vx -w-inl -w-aus -w-rch -w-8012 -w-8057 -w-8037 -DSTRICT; -I$(BCROOT)\include;../../../../ -L$(BCROOT)\lib;$(BCROOT)\lib\release; /DBOOST_LIB_DIAGNOSTIC=1 $(CXXFLAGS) -DBOOST_DYN_LINK -L./borland -e./borland/link_test-borland-mt-1_35.exe main.cpp
+ echo running test program borland\link_test-borland-mt-1_35.exe
+ borland\link_test-borland-mt-1_35.exe
+
+########################################################
+#
+# section for link_test-borland-1_35.lib
+#
+########################################################
+borland\link_test-borland-1_35\link_test.obj: link_test.cpp $(ALL_HEADER)
+ bcc32 @&&|
+-c $(INCLUDES) -tWD -tWR -tWM- -D_NO_VCL -D_RTLDLL -O2 -Ve -Vx -w-inl -w-aus -w-rch -w-8012 -w-8057 -w-8037 -DSTRICT; -I$(BCROOT)\include;../../../../ -L$(BCROOT)\lib;$(BCROOT)\lib\release; $(CXXFLAGS) -DBOOST_DYN_LINK -oborland\link_test-borland-1_35\link_test.obj link_test.cpp
+|
+
+borland\link_test-borland-1_35 :
+ -@mkdir borland\link_test-borland-1_35
+
+link_test-borland-1_35_clean :
+ del borland\link_test-borland-1_35\*.obj
+ del borland\link_test-borland-1_35\*.il?
+ del borland\link_test-borland-1_35\*.csm
+ del borland\link_test-borland-1_35\*.tds
+ del borland\*.tds
+
+borland\link_test-borland-1_35.lib : borland\link_test-borland-1_35\link_test.obj
+ bcc32 @&&|
+-lw-dup -lw-dpl -tWD -tWR -tWM- -D_NO_VCL -D_RTLDLL -O2 -Ve -Vx -w-inl -w-aus -w-rch -w-8012 -w-8057 -w-8037 -DSTRICT; -I$(BCROOT)\include;../../../../ -L$(BCROOT)\lib;$(BCROOT)\lib\release; -eborland\link_test-borland-1_35.dll $(XLFLAGS) borland\link_test-borland-1_35\link_test.obj $(LIBS)
+|
+ implib -w borland\link_test-borland-1_35.lib borland\link_test-borland-1_35.dll
+
+borland\link_test-borland-1_35.exe : main.cpp borland\link_test-borland-1_35.lib
+ bcc32 $(INCLUDES) -tWD -tWR -tWM- -D_NO_VCL -D_RTLDLL -O2 -Ve -Vx -w-inl -w-aus -w-rch -w-8012 -w-8057 -w-8037 -DSTRICT; -I$(BCROOT)\include;../../../../ -L$(BCROOT)\lib;$(BCROOT)\lib\release; /DBOOST_LIB_DIAGNOSTIC=1 $(CXXFLAGS) -DBOOST_DYN_LINK -L./borland -e./borland/link_test-borland-1_35.exe main.cpp
+ echo running test program borland\link_test-borland-1_35.exe
+ borland\link_test-borland-1_35.exe
+
+########################################################
+#
+# section for liblink_test-borland-mt-1_35.lib
+#
+########################################################
+borland\liblink_test-borland-mt-1_35\link_test.obj: link_test.cpp $(ALL_HEADER)
+ bcc32 @&&|
+-c $(INCLUDES) -tWD -tWM -tWR -DBOOST_REGEX_STATIC_LINK -D_NO_VCL -D_RTLDLL -O2 -Ve -Vx -w-inl -w-aus -w-rch -w-8012 -w-8057 -w-8037 -DSTRICT; -I$(BCROOT)\include;../../../../ -L$(BCROOT)\lib;$(BCROOT)\lib\release; $(CXXFLAGS) -oborland\liblink_test-borland-mt-1_35\link_test.obj link_test.cpp
+|
+
+borland\liblink_test-borland-mt-1_35 :
+ -@mkdir borland\liblink_test-borland-mt-1_35
+
+liblink_test-borland-mt-1_35_clean :
+ del borland\liblink_test-borland-mt-1_35\*.obj
+ del borland\liblink_test-borland-mt-1_35\*.il?
+ del borland\liblink_test-borland-mt-1_35\*.csm
+ del borland\liblink_test-borland-mt-1_35\*.tds
+
+borland\liblink_test-borland-mt-1_35.lib : borland\liblink_test-borland-mt-1_35\link_test.obj
+ tlib @&&|
+/P128 /C /u /a $(XSFLAGS) "borland\liblink_test-borland-mt-1_35.lib" "borland\liblink_test-borland-mt-1_35\link_test.obj"
+|
+
+borland\liblink_test-borland-mt-1_35.exe : main.cpp borland\liblink_test-borland-mt-1_35.lib
+ bcc32 $(INCLUDES) -tWD -tWM -tWR -DBOOST_REGEX_STATIC_LINK -D_NO_VCL -D_RTLDLL -O2 -Ve -Vx -w-inl -w-aus -w-rch -w-8012 -w-8057 -w-8037 -DSTRICT; -I$(BCROOT)\include;../../../../ -L$(BCROOT)\lib;$(BCROOT)\lib\release; /DBOOST_LIB_DIAGNOSTIC=1 $(CXXFLAGS) -L./borland -e./borland/liblink_test-borland-mt-1_35.exe main.cpp
+ echo running test progam borland\liblink_test-borland-mt-1_35.exe
+ borland\liblink_test-borland-mt-1_35.exe
+
+########################################################
+#
+# section for liblink_test-borland-1_35.lib
+#
+########################################################
+borland\liblink_test-borland-1_35\link_test.obj: link_test.cpp $(ALL_HEADER)
+ bcc32 @&&|
+-c $(INCLUDES) -tWD -tWR -tWM- -DBOOST_REGEX_STATIC_LINK -D_NO_VCL -D_RTLDLL -O2 -Ve -Vx -w-inl -w-aus -w-rch -w-8012 -w-8057 -w-8037 -DSTRICT; -I$(BCROOT)\include;../../../../ -L$(BCROOT)\lib;$(BCROOT)\lib\release; $(CXXFLAGS) -oborland\liblink_test-borland-1_35\link_test.obj link_test.cpp
+|
+
+borland\liblink_test-borland-1_35 :
+ -@mkdir borland\liblink_test-borland-1_35
+
+liblink_test-borland-1_35_clean :
+ del borland\liblink_test-borland-1_35\*.obj
+ del borland\liblink_test-borland-1_35\*.il?
+ del borland\liblink_test-borland-1_35\*.csm
+ del borland\liblink_test-borland-1_35\*.tds
+
+borland\liblink_test-borland-1_35.lib : borland\liblink_test-borland-1_35\link_test.obj
+ tlib @&&|
+/P128 /C /u /a $(XSFLAGS) "borland\liblink_test-borland-1_35.lib" "borland\liblink_test-borland-1_35\link_test.obj"
+|
+
+borland\liblink_test-borland-1_35.exe : main.cpp borland\liblink_test-borland-1_35.lib
+ bcc32 $(INCLUDES) -tWD -tWR -tWM- -DBOOST_REGEX_STATIC_LINK -D_NO_VCL -D_RTLDLL -O2 -Ve -Vx -w-inl -w-aus -w-rch -w-8012 -w-8057 -w-8037 -DSTRICT; -I$(BCROOT)\include;../../../../ -L$(BCROOT)\lib;$(BCROOT)\lib\release; /DBOOST_LIB_DIAGNOSTIC=1 $(CXXFLAGS) -L./borland -e./borland/liblink_test-borland-1_35.exe main.cpp
+ echo running test progam borland\liblink_test-borland-1_35.exe
+ borland\liblink_test-borland-1_35.exe
+
+########################################################
+#
+# section for liblink_test-borland-sd-1_35.lib
+#
+########################################################
+borland\liblink_test-borland-sd-1_35\link_test.obj: link_test.cpp $(ALL_HEADER)
+ bcc32 @&&|
+-c $(INCLUDES) -tWM- -D_NO_VCL -v -Ve -Vx -w-inl -w-aus -w-rch -w-8012 -w-8037 -w-8057 -DSTRICT; -I$(BCROOT)\include;../../../../ $(CXXFLAGS) -oborland\liblink_test-borland-sd-1_35\link_test.obj link_test.cpp
+|
+
+borland\liblink_test-borland-sd-1_35 :
+ -@mkdir borland\liblink_test-borland-sd-1_35
+
+liblink_test-borland-sd-1_35_clean :
+ del borland\liblink_test-borland-sd-1_35\*.obj
+ del borland\liblink_test-borland-sd-1_35\*.il?
+ del borland\liblink_test-borland-sd-1_35\*.csm
+ del borland\liblink_test-borland-sd-1_35\*.tds
+
+borland\liblink_test-borland-sd-1_35.lib : borland\liblink_test-borland-sd-1_35\link_test.obj
+ tlib @&&|
+/P128 /C /u /a $(XSFLAGS) "borland\liblink_test-borland-sd-1_35.lib" "borland\liblink_test-borland-sd-1_35\link_test.obj"
+|
+
+borland\liblink_test-borland-sd-1_35.exe : main.cpp borland\liblink_test-borland-sd-1_35.lib
+ bcc32 $(INCLUDES) -tWM- -D_NO_VCL -v -Ve -Vx -w-inl -w-aus -w-rch -w-8012 -w-8037 -w-8057 -DSTRICT; -I$(BCROOT)\include;../../../../ /DBOOST_LIB_DIAGNOSTIC=1 $(CXXFLAGS) -L./borland -e./borland/liblink_test-borland-sd-1_35.exe main.cpp
+ echo running test progam borland\liblink_test-borland-sd-1_35.exe
+ borland\liblink_test-borland-sd-1_35.exe
+
+########################################################
+#
+# section for liblink_test-borland-mt-sd-1_35.lib
+#
+########################################################
+borland\liblink_test-borland-mt-sd-1_35\link_test.obj: link_test.cpp $(ALL_HEADER)
+ bcc32 @&&|
+-c $(INCLUDES) -tWM -D_NO_VCL -v -Ve -Vx -w-inl -w-aus -w-rch -w-8012 -w-8057 -w-8037 -DSTRICT; -I$(BCROOT)\include;../../../../ $(CXXFLAGS) -oborland\liblink_test-borland-mt-sd-1_35\link_test.obj link_test.cpp
+|
+
+borland\liblink_test-borland-mt-sd-1_35 :
+ -@mkdir borland\liblink_test-borland-mt-sd-1_35
+
+liblink_test-borland-mt-sd-1_35_clean :
+ del borland\liblink_test-borland-mt-sd-1_35\*.obj
+ del borland\liblink_test-borland-mt-sd-1_35\*.il?
+ del borland\liblink_test-borland-mt-sd-1_35\*.csm
+ del borland\liblink_test-borland-mt-sd-1_35\*.tds
+
+borland\liblink_test-borland-mt-sd-1_35.lib : borland\liblink_test-borland-mt-sd-1_35\link_test.obj
+ tlib @&&|
+/P128 /C /u /a $(XSFLAGS) "borland\liblink_test-borland-mt-sd-1_35.lib" "borland\liblink_test-borland-mt-sd-1_35\link_test.obj"
+|
+
+borland\liblink_test-borland-mt-sd-1_35.exe : main.cpp borland\liblink_test-borland-mt-sd-1_35.lib
+ bcc32 $(INCLUDES) -tWM -D_NO_VCL -v -Ve -Vx -w-inl -w-aus -w-rch -w-8012 -w-8057 -w-8037 -DSTRICT; -I$(BCROOT)\include;../../../../ /DBOOST_LIB_DIAGNOSTIC=1 $(CXXFLAGS) -L./borland -e./borland/liblink_test-borland-mt-sd-1_35.exe main.cpp
+ echo running test progam borland\liblink_test-borland-mt-sd-1_35.exe
+ borland\liblink_test-borland-mt-sd-1_35.exe
+
+########################################################
+#
+# section for link_test-borland-mt-d-1_35.lib
+#
+########################################################
+borland\link_test-borland-mt-d-1_35\link_test.obj: link_test.cpp $(ALL_HEADER)
+ bcc32 @&&|
+-c $(INCLUDES) -tWD -tWM -tWR -D_NO_VCL -D_RTLDLL -v -Ve -Vx -w-inl -w-aus -w-rch -w-8012 -w-8057 -w-8037 -DSTRICT; -I$(BCROOT)\include;../../../../ -L$(BCROOT)\lib;$(BCROOT)\lib\release; $(CXXFLAGS) -DBOOST_DYN_LINK -oborland\link_test-borland-mt-d-1_35\link_test.obj link_test.cpp
+|
+
+borland\link_test-borland-mt-d-1_35 :
+ -@mkdir borland\link_test-borland-mt-d-1_35
+
+link_test-borland-mt-d-1_35_clean :
+ del borland\link_test-borland-mt-d-1_35\*.obj
+ del borland\link_test-borland-mt-d-1_35\*.il?
+ del borland\link_test-borland-mt-d-1_35\*.csm
+ del borland\link_test-borland-mt-d-1_35\*.tds
+ del borland\*.tds
+
+borland\link_test-borland-mt-d-1_35.lib : borland\link_test-borland-mt-d-1_35\link_test.obj
+ bcc32 @&&|
+-lw-dup -lw-dpl -tWD -tWM -tWR -D_NO_VCL -D_RTLDLL -v -Ve -Vx -w-inl -w-aus -w-rch -w-8012 -w-8057 -w-8037 -DSTRICT; -I$(BCROOT)\include;../../../../ -L$(BCROOT)\lib;$(BCROOT)\lib\release; -eborland\link_test-borland-mt-d-1_35.dll $(XLFLAGS) borland\link_test-borland-mt-d-1_35\link_test.obj $(LIBS)
+|
+ implib -w borland\link_test-borland-mt-d-1_35.lib borland\link_test-borland-mt-d-1_35.dll
+
+borland\link_test-borland-mt-d-1_35.exe : main.cpp borland\link_test-borland-mt-d-1_35.lib
+ bcc32 $(INCLUDES) -tWD -tWM -tWR -D_NO_VCL -D_RTLDLL -v -Ve -Vx -w-inl -w-aus -w-rch -w-8012 -w-8057 -w-8037 -DSTRICT; -I$(BCROOT)\include;../../../../ -L$(BCROOT)\lib;$(BCROOT)\lib\release; /DBOOST_LIB_DIAGNOSTIC=1 $(CXXFLAGS) -DBOOST_DYN_LINK -L./borland -e./borland/link_test-borland-mt-d-1_35.exe main.cpp
+ echo running test program borland\link_test-borland-mt-d-1_35.exe
+ borland\link_test-borland-mt-d-1_35.exe
+
+########################################################
+#
+# section for link_test-borland-d-1_35.lib
+#
+########################################################
+borland\link_test-borland-d-1_35\link_test.obj: link_test.cpp $(ALL_HEADER)
+ bcc32 @&&|
+-c $(INCLUDES) -tWD -tWR -tWM- -D_NO_VCL -D_RTLDLL -v -Ve -Vx -w-inl -w-aus -w-rch -w-8012 -w-8057 -w-8037 -DSTRICT; -I$(BCROOT)\include;../../../../ -L$(BCROOT)\lib;$(BCROOT)\lib\release; $(CXXFLAGS) -DBOOST_DYN_LINK -oborland\link_test-borland-d-1_35\link_test.obj link_test.cpp
+|
+
+borland\link_test-borland-d-1_35 :
+ -@mkdir borland\link_test-borland-d-1_35
+
+link_test-borland-d-1_35_clean :
+ del borland\link_test-borland-d-1_35\*.obj
+ del borland\link_test-borland-d-1_35\*.il?
+ del borland\link_test-borland-d-1_35\*.csm
+ del borland\link_test-borland-d-1_35\*.tds
+ del borland\*.tds
+
+borland\link_test-borland-d-1_35.lib : borland\link_test-borland-d-1_35\link_test.obj
+ bcc32 @&&|
+-lw-dup -lw-dpl -tWD -tWR -tWM- -D_NO_VCL -D_RTLDLL -v -Ve -Vx -w-inl -w-aus -w-rch -w-8012 -w-8057 -w-8037 -DSTRICT; -I$(BCROOT)\include;../../../../ -L$(BCROOT)\lib;$(BCROOT)\lib\release; -eborland\link_test-borland-d-1_35.dll $(XLFLAGS) borland\link_test-borland-d-1_35\link_test.obj $(LIBS)
+|
+ implib -w borland\link_test-borland-d-1_35.lib borland\link_test-borland-d-1_35.dll
+
+borland\link_test-borland-d-1_35.exe : main.cpp borland\link_test-borland-d-1_35.lib
+ bcc32 $(INCLUDES) -tWD -tWR -tWM- -D_NO_VCL -D_RTLDLL -v -Ve -Vx -w-inl -w-aus -w-rch -w-8012 -w-8057 -w-8037 -DSTRICT; -I$(BCROOT)\include;../../../../ -L$(BCROOT)\lib;$(BCROOT)\lib\release; /DBOOST_LIB_DIAGNOSTIC=1 $(CXXFLAGS) -DBOOST_DYN_LINK -L./borland -e./borland/link_test-borland-d-1_35.exe main.cpp
+ echo running test program borland\link_test-borland-d-1_35.exe
+ borland\link_test-borland-d-1_35.exe
+
+########################################################
+#
+# section for liblink_test-borland-mt-d-1_35.lib
+#
+########################################################
+borland\liblink_test-borland-mt-d-1_35\link_test.obj: link_test.cpp $(ALL_HEADER)
+ bcc32 @&&|
+-c $(INCLUDES) -tWD -tWM -tWR -DBOOST_REGEX_STATIC_LINK -D_NO_VCL -D_RTLDLL -v -Ve -Vx -w-inl -w-aus -w-rch -w-8012 -w-8057 -w-8037 -DSTRICT; -I$(BCROOT)\include;../../../../ -L$(BCROOT)\lib;$(BCROOT)\lib\release; $(CXXFLAGS) -oborland\liblink_test-borland-mt-d-1_35\link_test.obj link_test.cpp
+|
+
+borland\liblink_test-borland-mt-d-1_35 :
+ -@mkdir borland\liblink_test-borland-mt-d-1_35
+
+liblink_test-borland-mt-d-1_35_clean :
+ del borland\liblink_test-borland-mt-d-1_35\*.obj
+ del borland\liblink_test-borland-mt-d-1_35\*.il?
+ del borland\liblink_test-borland-mt-d-1_35\*.csm
+ del borland\liblink_test-borland-mt-d-1_35\*.tds
+
+borland\liblink_test-borland-mt-d-1_35.lib : borland\liblink_test-borland-mt-d-1_35\link_test.obj
+ tlib @&&|
+/P128 /C /u /a $(XSFLAGS) "borland\liblink_test-borland-mt-d-1_35.lib" "borland\liblink_test-borland-mt-d-1_35\link_test.obj"
+|
+
+borland\liblink_test-borland-mt-d-1_35.exe : main.cpp borland\liblink_test-borland-mt-d-1_35.lib
+ bcc32 $(INCLUDES) -tWD -tWM -tWR -DBOOST_REGEX_STATIC_LINK -D_NO_VCL -D_RTLDLL -v -Ve -Vx -w-inl -w-aus -w-rch -w-8012 -w-8057 -w-8037 -DSTRICT; -I$(BCROOT)\include;../../../../ -L$(BCROOT)\lib;$(BCROOT)\lib\release; /DBOOST_LIB_DIAGNOSTIC=1 $(CXXFLAGS) -L./borland -e./borland/liblink_test-borland-mt-d-1_35.exe main.cpp
+ echo running test progam borland\liblink_test-borland-mt-d-1_35.exe
+ borland\liblink_test-borland-mt-d-1_35.exe
+
+########################################################
+#
+# section for liblink_test-borland-d-1_35.lib
+#
+########################################################
+borland\liblink_test-borland-d-1_35\link_test.obj: link_test.cpp $(ALL_HEADER)
+ bcc32 @&&|
+-c $(INCLUDES) -tWD -tWR -tWM- -DBOOST_REGEX_STATIC_LINK -D_NO_VCL -D_RTLDLL -v -Ve -Vx -w-inl -w-aus -w-rch -w-8012 -w-8057 -w-8037 -DSTRICT; -I$(BCROOT)\include;../../../../ -L$(BCROOT)\lib;$(BCROOT)\lib\release; $(CXXFLAGS) -oborland\liblink_test-borland-d-1_35\link_test.obj link_test.cpp
+|
+
+borland\liblink_test-borland-d-1_35 :
+ -@mkdir borland\liblink_test-borland-d-1_35
+
+liblink_test-borland-d-1_35_clean :
+ del borland\liblink_test-borland-d-1_35\*.obj
+ del borland\liblink_test-borland-d-1_35\*.il?
+ del borland\liblink_test-borland-d-1_35\*.csm
+ del borland\liblink_test-borland-d-1_35\*.tds
+
+borland\liblink_test-borland-d-1_35.lib : borland\liblink_test-borland-d-1_35\link_test.obj
+ tlib @&&|
+/P128 /C /u /a $(XSFLAGS) "borland\liblink_test-borland-d-1_35.lib" "borland\liblink_test-borland-d-1_35\link_test.obj"
+|
+
+borland\liblink_test-borland-d-1_35.exe : main.cpp borland\liblink_test-borland-d-1_35.lib
+ bcc32 $(INCLUDES) -tWD -tWR -tWM- -DBOOST_REGEX_STATIC_LINK -D_NO_VCL -D_RTLDLL -v -Ve -Vx -w-inl -w-aus -w-rch -w-8012 -w-8057 -w-8037 -DSTRICT; -I$(BCROOT)\include;../../../../ -L$(BCROOT)\lib;$(BCROOT)\lib\release; /DBOOST_LIB_DIAGNOSTIC=1 $(CXXFLAGS) -L./borland -e./borland/liblink_test-borland-d-1_35.exe main.cpp
+ echo running test progam borland\liblink_test-borland-d-1_35.exe
+ borland\liblink_test-borland-d-1_35.exe
+
diff --git a/libs/config/test/link/common.sh b/libs/config/test/link/common.sh
new file mode 100644
index 0000000000..9725a5c362
--- /dev/null
+++ b/libs/config/test/link/common.sh
@@ -0,0 +1,19 @@
+# copyright John Maddock 2005
+# Use, modification and distribution are subject to the
+# Boost Software License, Version 1.0. (See accompanying file
+# LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+#
+# locate all the header dependencies:
+header=""
+#
+# locate all the source files:
+src=link_test.cpp
+
+boost_version=$(grep 'define.*BOOST_LIB_VERSION' ../../../../boost/version.hpp | sed 's/.*"\([^"]*\)".*/\1/')
+
+
+
+
+
+
+
diff --git a/libs/config/test/link/link_test.cpp b/libs/config/test/link/link_test.cpp
new file mode 100644
index 0000000000..be80bfcdcf
--- /dev/null
+++ b/libs/config/test/link/link_test.cpp
@@ -0,0 +1,54 @@
+// (C) Copyright John Maddock 2003.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+
+#define BOOST_CONFIG_SOURCE
+
+#include "link_test.hpp"
+#include <iostream>
+#include <iomanip>
+
+bool BOOST_CONFIG_DECL check_options(
+ bool m_dyn_link,
+ bool m_dyn_rtl,
+ bool m_has_threads,
+ bool m_debug,
+ bool m_stlp_debug)
+{
+ if(m_dyn_link != dyn_link)
+ {
+ std::cout << "Dynamic link options do not match" << std::endl;
+ std::cout << "Application setting = " << m_dyn_link << " Library setting = " << dyn_link << std::endl;
+ return false;
+ }
+ if(m_dyn_rtl != dyn_rtl)
+ {
+ std::cout << "Runtime library options do not match" << std::endl;
+ std::cout << "Application setting = " << m_dyn_rtl << " Library setting = " << dyn_rtl << std::endl;
+ return false;
+ }
+ if(m_has_threads != has_threads)
+ {
+ std::cout << "Threading options do not match" << std::endl;
+ std::cout << "Application setting = " << m_has_threads << " Library setting = " << has_threads << std::endl;
+ return false;
+ }
+ if(m_debug != debug)
+ {
+ std::cout << "Debug options do not match" << std::endl;
+ std::cout << "Application setting = " << m_debug << " Library setting = " << debug << std::endl;
+ return false;
+ }
+ if(m_stlp_debug != stl_debug)
+ {
+ std::cout << "STLPort debug options do not match" << std::endl;
+ std::cout << "Application setting = " << m_stlp_debug << " Library setting = " << stl_debug << std::endl;
+ return false;
+ }
+ return true;
+}
+
diff --git a/libs/config/test/link/link_test.hpp b/libs/config/test/link/link_test.hpp
new file mode 100644
index 0000000000..8d6333bba6
--- /dev/null
+++ b/libs/config/test/link/link_test.hpp
@@ -0,0 +1,108 @@
+// (C) Copyright John Maddock 2003.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+#ifndef BOOST_LINK_TEST_HPP
+#define BOOST_LINK_TEST_HPP
+
+#include <boost/config.hpp>
+
+//
+// set up code to determine our compilers options,
+// we will check that these are the same in the
+// .exe and the .dll:
+//
+#ifdef BOOST_DYN_LINK
+static const bool dyn_link = true;
+#else
+static const bool dyn_link = false;
+#endif
+#if defined(_DLL) || defined(_RTLDLL)
+static const bool dyn_rtl = true;
+#else
+static const bool dyn_rtl = false;
+#endif
+#if defined(BOOST_HAS_THREADS)
+static const bool has_threads = true;
+#else
+static const bool has_threads = false;
+#endif
+#if defined(_DEBUG)
+static const bool debug = true;
+#else
+static const bool debug = false;
+#endif
+#if defined(__STL_DEBUG) || defined(_STLP_DEBUG)
+static const bool stl_debug = true;
+#else
+static const bool stl_debug = false;
+#endif
+
+//
+// set up import and export options:
+//
+#if defined(BOOST_DYN_LINK)
+# ifdef BOOST_CONFIG_SOURCE
+# define BOOST_CONFIG_DECL BOOST_SYMBOL_EXPORT
+# else
+# define BOOST_CONFIG_DECL BOOST_SYMBOL_IMPORT
+# endif
+#endif
+#ifndef BOOST_CONFIG_DECL
+# define BOOST_CONFIG_DECL
+#endif
+
+//
+// define our entry point:
+//
+bool BOOST_CONFIG_DECL check_options(
+ bool m_dyn_link,
+ bool m_dyn_rtl,
+ bool m_has_threads,
+ bool m_debug,
+ bool m_stlp_debug);
+
+//
+// set up automatic linking:
+//
+#if !defined(BOOST_CONFIG_SOURCE) && !defined(BOOST_CONFIG_NO_LIB)
+# define BOOST_LIB_NAME link_test
+# include <boost/config/auto_link.hpp>
+#endif
+
+#ifndef BOOST_NO_EXTERN_TEMPLATE
+
+template <class T>
+T test_free_proc(T v)
+{
+ return v;
+}
+
+template <class T>
+struct tester
+{
+ static int test();
+};
+
+template <class T>
+int tester<T>::test()
+{
+ return 0;
+}
+
+#ifdef BOOST_CONFIG_SOURCE
+template BOOST_SYMBOL_EXPORT int test_free_proc<int>(int);
+template BOOST_SYMBOL_EXPORT int tester<int>::test();
+#else
+extern template BOOST_SYMBOL_IMPORT int test_free_proc<int>(int);
+extern template BOOST_SYMBOL_IMPORT int tester<int>::test();
+#endif
+
+#endif // BOOST_NO_EXTERN_TEMPLATE
+
+#endif // BOOST_LINK_TEST_HPP
+
+
diff --git a/libs/config/test/link/main.cpp b/libs/config/test/link/main.cpp
new file mode 100644
index 0000000000..3926684ac4
--- /dev/null
+++ b/libs/config/test/link/main.cpp
@@ -0,0 +1,19 @@
+// (C) Copyright John Maddock 2003.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+#include "link_test.hpp"
+
+int main()
+{
+#ifndef BOOST_NO_EXTERN_TEMPLATE
+ test_free_proc<int>(0);
+ tester<int>::test();
+#endif
+ return check_options(dyn_link, dyn_rtl, has_threads, debug, stl_debug) ? 0 : -1;
+}
+
+
diff --git a/libs/config/test/link/test/Jamfile.v2 b/libs/config/test/link/test/Jamfile.v2
new file mode 100644
index 0000000000..22668af24a
--- /dev/null
+++ b/libs/config/test/link/test/Jamfile.v2
@@ -0,0 +1,117 @@
+# copyright John Maddock 2006
+# Use, modification and distribution are subject to the
+# Boost Software License, Version 1.0. (See accompanying file
+# LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+import type ;
+
+type.register AUTOLINK_LIB ;
+
+import generators ;
+import "class" : new ;
+
+# This generator creates library using standard generators,
+# and then add <library-path> usage requirements with the
+# path of the created library.
+class autolink-generator : generator
+{
+ import generators ;
+ import "class" ;
+ import property-set ;
+ import path ;
+
+ rule run ( project name ? : property-set : sources + )
+ {
+ local result = [ generators.construct $(project) $(name)
+ : LIB : $(property-set) : $(sources) ] ;
+
+ local targets ;
+ local usage-requirements ;
+
+ if [ class.is-a $(result[1]) : property-set ]
+ {
+ usage-requirements = $(result[1]) ;
+ targets = $(result[2-]) ;
+ }
+ else
+ {
+ usage-requirements = [ property-set.empty ] ;
+ targets = $(result) ;
+ }
+
+ local extra ;
+ local paths ;
+ local pwd = [ path.pwd ] ;
+ for local t in $(targets)
+ {
+ if [ type.is-derived [ $(t).type ] LIB ]
+ {
+ paths += [ path.root [ path.make [ $(t).path ] ] $(pwd) ] ;
+ }
+ }
+ extra += $(paths:G=<library-path>) ;
+ if $(extra)
+ {
+ extra = [ sequence.unique $(extra) ] ;
+ usage-requirements = [ $(usage-requirements).add-raw $(extra) ] ;
+ }
+ return $(usage-requirements) $(targets) ;
+ }
+}
+
+generators.register [
+ new autolink-generator $(__name__).autolink : : AUTOLINK_LIB ] ;
+
+project : requirements -<threading>multi <hardcode-dll-paths>false ;
+
+autolink-lib link_test : ../link_test.cpp
+ : <link>shared:<define>BOOST_DYN_LINK=1
+ :
+ ;
+
+
+explicit link_test ;
+
+run ../main.cpp link_test
+ : : : <toolset>msvc-8.0:<build>no <toolset>msvc-9.0:<build>no <toolset>msvc-10.0:<build>no <link>static <runtime-link>static <threading>single debug : link_test_ssd ;
+
+run ../main.cpp link_test
+ : : : <toolset>msvc-8.0:<build>no <toolset>msvc-9.0:<build>no <toolset>msvc-10.0:<build>no <link>static <runtime-link>static <threading>single release : link_test_ssr ;
+
+run ../main.cpp link_test
+ : : : <link>static <runtime-link>static <threading>multi debug : link_test_smd ;
+
+run ../main.cpp link_test
+ : : : <link>static <runtime-link>static <threading>multi release : link_test_smr ;
+
+run ../main.cpp link_test
+ : : : <link>static <runtime-link>shared <threading>multi debug : link_test_dmd ;
+
+run ../main.cpp link_test
+ : : : <link>static <runtime-link>shared <threading>multi release : link_test_dmr ;
+
+run ../main.cpp link_test
+ : : : <link>static <runtime-link>shared <threading>single debug : link_test_dsd ;
+
+run ../main.cpp link_test
+ : : : <link>static <runtime-link>shared <threading>single release : link_test_dsr ;
+
+run ../main.cpp link_test
+ : : : <define>BOOST_DYN_LINK=1 <link>shared <runtime-link>shared <threading>multi debug : link_test_dll_dmd ;
+
+run ../main.cpp link_test
+ : : : <define>BOOST_DYN_LINK=1 <link>shared <runtime-link>shared <threading>multi release : link_test_dll_dmr ;
+
+run ../main.cpp link_test
+ : : : <define>BOOST_DYN_LINK=1 <link>shared <runtime-link>shared <threading>single debug : link_test_dll_dsd ;
+
+run ../main.cpp link_test
+ : : : <define>BOOST_DYN_LINK=1 <link>shared <runtime-link>shared <threading>single release : link_test_dll_dsr ;
+
+
+
+
+
+
+
+
diff --git a/libs/config/test/link/vc6-stlport.mak b/libs/config/test/link/vc6-stlport.mak
new file mode 100644
index 0000000000..3eb3dc56dc
--- /dev/null
+++ b/libs/config/test/link/vc6-stlport.mak
@@ -0,0 +1,292 @@
+# copyright John Maddock 2005
+# Use, modification and distribution are subject to the
+# Boost Software License, Version 1.0. (See accompanying file
+# LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+#
+# auto generated makefile for VC6+STLPort
+#
+# usage:
+# make
+# brings libraries up to date
+# make install
+# brings libraries up to date and copies binaries to your VC6 /lib and /bin directories (recomended)
+#
+
+#
+# Add additional compiler options here:
+#
+CXXFLAGS=
+#
+# Add additional include directories here:
+#
+INCLUDES=
+#
+# add additional linker flags here:
+#
+XLFLAGS=
+#
+# add additional static-library creation flags here:
+#
+XSFLAGS=
+
+!IF "$(OS)" == "Windows_NT"
+NULL=
+!ELSE
+NULL=nul
+!ENDIF
+
+!IF "$(MSVCDIR)" == ""
+!ERROR Variable MSVCDIR not set.
+!ENDIF
+
+!IF "$(STLPORT_PATH)" == ""
+!ERROR Variable STLPORT_PATH not set.
+!ENDIF
+
+
+ALL_HEADER=
+
+all : main_dir liblink_test-vc6-stlport-mt-s-1_35_dir ./vc6-stlport/liblink_test-vc6-stlport-mt-s-1_35.lib ./vc6-stlport/liblink_test-vc6-stlport-mt-s-1_35.exe liblink_test-vc6-stlport-mt-sgd-1_35_dir ./vc6-stlport/liblink_test-vc6-stlport-mt-sgd-1_35.lib ./vc6-stlport/liblink_test-vc6-stlport-mt-sgd-1_35.exe link_test-vc6-stlport-mt-gd-1_35_dir ./vc6-stlport/link_test-vc6-stlport-mt-gd-1_35.lib ./vc6-stlport/link_test-vc6-stlport-mt-gd-1_35.exe link_test-vc6-stlport-mt-1_35_dir ./vc6-stlport/link_test-vc6-stlport-mt-1_35.lib ./vc6-stlport/link_test-vc6-stlport-mt-1_35.exe liblink_test-vc6-stlport-mt-1_35_dir ./vc6-stlport/liblink_test-vc6-stlport-mt-1_35.lib ./vc6-stlport/liblink_test-vc6-stlport-mt-1_35.exe liblink_test-vc6-stlport-mt-gd-1_35_dir ./vc6-stlport/liblink_test-vc6-stlport-mt-gd-1_35.lib ./vc6-stlport/liblink_test-vc6-stlport-mt-gd-1_35.exe link_test-vc6-stlport-mt-pgd-1_35_dir ./vc6-stlport/link_test-vc6-stlport-mt-pgd-1_35.lib ./vc6-stlport/link_test-vc6-stlport-mt-pgd-1_35.exe liblink_test-vc6-stlport-mt-spgd-1_35_dir ./vc6-stlport/liblink_test-vc6-stlport-mt-spgd-1_35.lib ./vc6-stlport/liblink_test-vc6-stlport-mt-spgd-1_35.exe liblink_test-vc6-stlport-mt-pgd-1_35_dir ./vc6-stlport/liblink_test-vc6-stlport-mt-pgd-1_35.lib ./vc6-stlport/liblink_test-vc6-stlport-mt-pgd-1_35.exe
+
+clean : liblink_test-vc6-stlport-mt-s-1_35_clean liblink_test-vc6-stlport-mt-sgd-1_35_clean link_test-vc6-stlport-mt-gd-1_35_clean link_test-vc6-stlport-mt-1_35_clean liblink_test-vc6-stlport-mt-1_35_clean liblink_test-vc6-stlport-mt-gd-1_35_clean link_test-vc6-stlport-mt-pgd-1_35_clean liblink_test-vc6-stlport-mt-spgd-1_35_clean liblink_test-vc6-stlport-mt-pgd-1_35_clean
+
+install : stlport_check all
+ copy vc6-stlport\liblink_test-vc6-stlport-mt-s-1_35.lib "$(MSVCDIR)\lib"
+ copy vc6-stlport\liblink_test-vc6-stlport-mt-sgd-1_35.lib "$(MSVCDIR)\lib"
+ copy vc6-stlport\link_test-vc6-stlport-mt-gd-1_35.lib "$(MSVCDIR)\lib"
+ copy vc6-stlport\link_test-vc6-stlport-mt-gd-1_35.dll "$(MSVCDIR)\bin"
+ copy vc6-stlport\link_test-vc6-stlport-mt-1_35.lib "$(MSVCDIR)\lib"
+ copy vc6-stlport\link_test-vc6-stlport-mt-1_35.dll "$(MSVCDIR)\bin"
+ copy vc6-stlport\liblink_test-vc6-stlport-mt-1_35.lib "$(MSVCDIR)\lib"
+ copy vc6-stlport\liblink_test-vc6-stlport-mt-gd-1_35.lib "$(MSVCDIR)\lib"
+ copy vc6-stlport\link_test-vc6-stlport-mt-pgd-1_35.lib "$(MSVCDIR)\lib"
+ copy vc6-stlport\link_test-vc6-stlport-mt-pgd-1_35.dll "$(MSVCDIR)\bin"
+ copy vc6-stlport\link_test-vc6-stlport-mt-pgd-1_35.pdb "$(MSVCDIR)\lib"
+ copy vc6-stlport\liblink_test-vc6-stlport-mt-spgd-1_35.lib "$(MSVCDIR)\lib"
+ copy vc6-stlport\liblink_test-vc6-stlport-mt-spgd-1_35.pdb "$(MSVCDIR)\lib"
+ copy vc6-stlport\liblink_test-vc6-stlport-mt-pgd-1_35.lib "$(MSVCDIR)\lib"
+ copy vc6-stlport\liblink_test-vc6-stlport-mt-pgd-1_35.pdb "$(MSVCDIR)\lib"
+
+main_dir :
+ @if not exist "vc6-stlport\$(NULL)" mkdir vc6-stlport
+
+stlport_check : $(STLPORT_PATH)\stlport\string
+ echo
+
+
+########################################################
+#
+# section for liblink_test-vc6-stlport-mt-s-1_35.lib
+#
+########################################################
+vc6-stlport/liblink_test-vc6-stlport-mt-s-1_35/link_test.obj: link_test.cpp $(ALL_HEADER)
+ cl /c $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I..\..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB $(CXXFLAGS) -Y- -Fo./vc6-stlport/liblink_test-vc6-stlport-mt-s-1_35/ -Fdvc6-stlport/liblink_test-vc6-stlport-mt-s-1_35.pdb link_test.cpp
+
+liblink_test-vc6-stlport-mt-s-1_35_dir :
+ @if not exist "vc6-stlport\liblink_test-vc6-stlport-mt-s-1_35\$(NULL)" mkdir vc6-stlport\liblink_test-vc6-stlport-mt-s-1_35
+
+liblink_test-vc6-stlport-mt-s-1_35_clean :
+ del vc6-stlport\liblink_test-vc6-stlport-mt-s-1_35\*.obj
+ del vc6-stlport\liblink_test-vc6-stlport-mt-s-1_35\*.idb
+ del vc6-stlport\liblink_test-vc6-stlport-mt-s-1_35\*.exp
+ del vc6-stlport\liblink_test-vc6-stlport-mt-s-1_35\*.pch
+
+./vc6-stlport/liblink_test-vc6-stlport-mt-s-1_35.lib : vc6-stlport/liblink_test-vc6-stlport-mt-s-1_35/link_test.obj
+ link -lib /nologo /out:vc6-stlport/liblink_test-vc6-stlport-mt-s-1_35.lib $(XSFLAGS) vc6-stlport/liblink_test-vc6-stlport-mt-s-1_35/link_test.obj
+
+./vc6-stlport/liblink_test-vc6-stlport-mt-s-1_35.exe : main.cpp ./vc6-stlport/liblink_test-vc6-stlport-mt-s-1_35.lib
+ cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I..\..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /DBOOST_LIB_DIAGNOSTIC=1 $(CXXFLAGS) -o ./vc6-stlport/liblink_test-vc6-stlport-mt-s-1_35.exe main.cpp /link /LIBPATH:./vc6-stlport
+ vc6-stlport\liblink_test-vc6-stlport-mt-s-1_35.exe
+
+########################################################
+#
+# section for liblink_test-vc6-stlport-mt-sgd-1_35.lib
+#
+########################################################
+vc6-stlport/liblink_test-vc6-stlport-mt-sgd-1_35/link_test.obj: link_test.cpp $(ALL_HEADER)
+ cl /c $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\..\ /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /GX $(CXXFLAGS) -Y- -Fo./vc6-stlport/liblink_test-vc6-stlport-mt-sgd-1_35/ -Fdvc6-stlport/liblink_test-vc6-stlport-mt-sgd-1_35.pdb link_test.cpp
+
+liblink_test-vc6-stlport-mt-sgd-1_35_dir :
+ @if not exist "vc6-stlport\liblink_test-vc6-stlport-mt-sgd-1_35\$(NULL)" mkdir vc6-stlport\liblink_test-vc6-stlport-mt-sgd-1_35
+
+liblink_test-vc6-stlport-mt-sgd-1_35_clean :
+ del vc6-stlport\liblink_test-vc6-stlport-mt-sgd-1_35\*.obj
+ del vc6-stlport\liblink_test-vc6-stlport-mt-sgd-1_35\*.idb
+ del vc6-stlport\liblink_test-vc6-stlport-mt-sgd-1_35\*.exp
+ del vc6-stlport\liblink_test-vc6-stlport-mt-sgd-1_35\*.pch
+
+./vc6-stlport/liblink_test-vc6-stlport-mt-sgd-1_35.lib : vc6-stlport/liblink_test-vc6-stlport-mt-sgd-1_35/link_test.obj
+ link -lib /nologo /out:vc6-stlport/liblink_test-vc6-stlport-mt-sgd-1_35.lib $(XSFLAGS) vc6-stlport/liblink_test-vc6-stlport-mt-sgd-1_35/link_test.obj
+
+./vc6-stlport/liblink_test-vc6-stlport-mt-sgd-1_35.exe : main.cpp ./vc6-stlport/liblink_test-vc6-stlport-mt-sgd-1_35.lib
+ cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\..\ /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /GX /DBOOST_LIB_DIAGNOSTIC=1 $(CXXFLAGS) -o ./vc6-stlport/liblink_test-vc6-stlport-mt-sgd-1_35.exe main.cpp /link /LIBPATH:./vc6-stlport
+ vc6-stlport\liblink_test-vc6-stlport-mt-sgd-1_35.exe
+
+########################################################
+#
+# section for link_test-vc6-stlport-mt-gd-1_35.lib
+#
+########################################################
+vc6-stlport/link_test-vc6-stlport-mt-gd-1_35/link_test.obj: link_test.cpp $(ALL_HEADER)
+ cl /c $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\..\ /DBOOST_DYN_LINK /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX $(CXXFLAGS) -Y- -Fo./vc6-stlport/link_test-vc6-stlport-mt-gd-1_35/ -Fdvc6-stlport/link_test-vc6-stlport-mt-gd-1_35.pdb link_test.cpp
+
+link_test-vc6-stlport-mt-gd-1_35_dir :
+ @if not exist "vc6-stlport\link_test-vc6-stlport-mt-gd-1_35\$(NULL)" mkdir vc6-stlport\link_test-vc6-stlport-mt-gd-1_35
+
+link_test-vc6-stlport-mt-gd-1_35_clean :
+ del vc6-stlport\link_test-vc6-stlport-mt-gd-1_35\*.obj
+ del vc6-stlport\link_test-vc6-stlport-mt-gd-1_35\*.idb
+ del vc6-stlport\link_test-vc6-stlport-mt-gd-1_35\*.exp
+ del vc6-stlport\link_test-vc6-stlport-mt-gd-1_35\*.pch
+
+./vc6-stlport/link_test-vc6-stlport-mt-gd-1_35.lib : vc6-stlport/link_test-vc6-stlport-mt-gd-1_35/link_test.obj
+ link kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /incremental:yes /pdb:"vc6-stlport/link_test-vc6-stlport-mt-gd-1_35.pdb" /debug /machine:I386 /out:"vc6-stlport/link_test-vc6-stlport-mt-gd-1_35.dll" /implib:"vc6-stlport/link_test-vc6-stlport-mt-gd-1_35.lib" /LIBPATH:$(STLPORT_PATH)\lib $(XLFLAGS) vc6-stlport/link_test-vc6-stlport-mt-gd-1_35/link_test.obj
+
+./vc6-stlport/link_test-vc6-stlport-mt-gd-1_35.exe : main.cpp ./vc6-stlport/link_test-vc6-stlport-mt-gd-1_35.lib
+ cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\..\ /DBOOST_DYN_LINK /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /DBOOST_LIB_DIAGNOSTIC=1 $(CXXFLAGS) -o ./vc6-stlport/link_test-vc6-stlport-mt-gd-1_35.exe main.cpp /link /LIBPATH:./vc6-stlport
+ vc6-stlport\link_test-vc6-stlport-mt-gd-1_35.exe
+
+########################################################
+#
+# section for link_test-vc6-stlport-mt-1_35.lib
+#
+########################################################
+vc6-stlport/link_test-vc6-stlport-mt-1_35/link_test.obj: link_test.cpp $(ALL_HEADER)
+ cl /c $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /I$(STLPORT_PATH)\stlport /Gy /I..\..\..\..\ /DBOOST_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL $(CXXFLAGS) -Y- -Fo./vc6-stlport/link_test-vc6-stlport-mt-1_35/ -Fdvc6-stlport/link_test-vc6-stlport-mt-1_35.pdb link_test.cpp
+
+link_test-vc6-stlport-mt-1_35_dir :
+ @if not exist "vc6-stlport\link_test-vc6-stlport-mt-1_35\$(NULL)" mkdir vc6-stlport\link_test-vc6-stlport-mt-1_35
+
+link_test-vc6-stlport-mt-1_35_clean :
+ del vc6-stlport\link_test-vc6-stlport-mt-1_35\*.obj
+ del vc6-stlport\link_test-vc6-stlport-mt-1_35\*.idb
+ del vc6-stlport\link_test-vc6-stlport-mt-1_35\*.exp
+ del vc6-stlport\link_test-vc6-stlport-mt-1_35\*.pch
+
+./vc6-stlport/link_test-vc6-stlport-mt-1_35.lib : vc6-stlport/link_test-vc6-stlport-mt-1_35/link_test.obj
+ link kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /incremental:yes /pdb:"vc6-stlport/link_test-vc6-stlport-mt-1_35.pdb" /debug /machine:I386 /out:"vc6-stlport/link_test-vc6-stlport-mt-1_35.dll" /implib:"vc6-stlport/link_test-vc6-stlport-mt-1_35.lib" /LIBPATH:$(STLPORT_PATH)\lib $(XLFLAGS) vc6-stlport/link_test-vc6-stlport-mt-1_35/link_test.obj
+
+./vc6-stlport/link_test-vc6-stlport-mt-1_35.exe : main.cpp ./vc6-stlport/link_test-vc6-stlport-mt-1_35.lib
+ cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /I$(STLPORT_PATH)\stlport /Gy /I..\..\..\..\ /DBOOST_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /DBOOST_LIB_DIAGNOSTIC=1 $(CXXFLAGS) -o ./vc6-stlport/link_test-vc6-stlport-mt-1_35.exe main.cpp /link /LIBPATH:./vc6-stlport
+ vc6-stlport\link_test-vc6-stlport-mt-1_35.exe
+
+########################################################
+#
+# section for liblink_test-vc6-stlport-mt-1_35.lib
+#
+########################################################
+vc6-stlport/liblink_test-vc6-stlport-mt-1_35/link_test.obj: link_test.cpp $(ALL_HEADER)
+ cl /c $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I..\..\..\..\ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL $(CXXFLAGS) -Y- -Fo./vc6-stlport/liblink_test-vc6-stlport-mt-1_35/ -Fdvc6-stlport/liblink_test-vc6-stlport-mt-1_35.pdb link_test.cpp
+
+liblink_test-vc6-stlport-mt-1_35_dir :
+ @if not exist "vc6-stlport\liblink_test-vc6-stlport-mt-1_35\$(NULL)" mkdir vc6-stlport\liblink_test-vc6-stlport-mt-1_35
+
+liblink_test-vc6-stlport-mt-1_35_clean :
+ del vc6-stlport\liblink_test-vc6-stlport-mt-1_35\*.obj
+ del vc6-stlport\liblink_test-vc6-stlport-mt-1_35\*.idb
+ del vc6-stlport\liblink_test-vc6-stlport-mt-1_35\*.exp
+ del vc6-stlport\liblink_test-vc6-stlport-mt-1_35\*.pch
+
+./vc6-stlport/liblink_test-vc6-stlport-mt-1_35.lib : vc6-stlport/liblink_test-vc6-stlport-mt-1_35/link_test.obj
+ link -lib /nologo /out:vc6-stlport/liblink_test-vc6-stlport-mt-1_35.lib $(XSFLAGS) vc6-stlport/liblink_test-vc6-stlport-mt-1_35/link_test.obj
+
+./vc6-stlport/liblink_test-vc6-stlport-mt-1_35.exe : main.cpp ./vc6-stlport/liblink_test-vc6-stlport-mt-1_35.lib
+ cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I..\..\..\..\ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /DBOOST_LIB_DIAGNOSTIC=1 $(CXXFLAGS) -o ./vc6-stlport/liblink_test-vc6-stlport-mt-1_35.exe main.cpp /link /LIBPATH:./vc6-stlport
+ vc6-stlport\liblink_test-vc6-stlport-mt-1_35.exe
+
+########################################################
+#
+# section for liblink_test-vc6-stlport-mt-gd-1_35.lib
+#
+########################################################
+vc6-stlport/liblink_test-vc6-stlport-mt-gd-1_35/link_test.obj: link_test.cpp $(ALL_HEADER)
+ cl /c $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\..\ /DBOOST_REGEX_STATIC_LINK /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX $(CXXFLAGS) -Y- -Fo./vc6-stlport/liblink_test-vc6-stlport-mt-gd-1_35/ -Fdvc6-stlport/liblink_test-vc6-stlport-mt-gd-1_35.pdb link_test.cpp
+
+liblink_test-vc6-stlport-mt-gd-1_35_dir :
+ @if not exist "vc6-stlport\liblink_test-vc6-stlport-mt-gd-1_35\$(NULL)" mkdir vc6-stlport\liblink_test-vc6-stlport-mt-gd-1_35
+
+liblink_test-vc6-stlport-mt-gd-1_35_clean :
+ del vc6-stlport\liblink_test-vc6-stlport-mt-gd-1_35\*.obj
+ del vc6-stlport\liblink_test-vc6-stlport-mt-gd-1_35\*.idb
+ del vc6-stlport\liblink_test-vc6-stlport-mt-gd-1_35\*.exp
+ del vc6-stlport\liblink_test-vc6-stlport-mt-gd-1_35\*.pch
+
+./vc6-stlport/liblink_test-vc6-stlport-mt-gd-1_35.lib : vc6-stlport/liblink_test-vc6-stlport-mt-gd-1_35/link_test.obj
+ link -lib /nologo /out:vc6-stlport/liblink_test-vc6-stlport-mt-gd-1_35.lib $(XSFLAGS) vc6-stlport/liblink_test-vc6-stlport-mt-gd-1_35/link_test.obj
+
+./vc6-stlport/liblink_test-vc6-stlport-mt-gd-1_35.exe : main.cpp ./vc6-stlport/liblink_test-vc6-stlport-mt-gd-1_35.lib
+ cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\..\ /DBOOST_REGEX_STATIC_LINK /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /DBOOST_LIB_DIAGNOSTIC=1 $(CXXFLAGS) -o ./vc6-stlport/liblink_test-vc6-stlport-mt-gd-1_35.exe main.cpp /link /LIBPATH:./vc6-stlport
+ vc6-stlport\liblink_test-vc6-stlport-mt-gd-1_35.exe
+
+########################################################
+#
+# section for link_test-vc6-stlport-mt-pgd-1_35.lib
+#
+########################################################
+vc6-stlport/link_test-vc6-stlport-mt-pgd-1_35/link_test.obj: link_test.cpp $(ALL_HEADER)
+ cl /c $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\..\ /DBOOST_DYN_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX $(CXXFLAGS) -Y- -Fo./vc6-stlport/link_test-vc6-stlport-mt-pgd-1_35/ -Fdvc6-stlport/link_test-vc6-stlport-mt-pgd-1_35.pdb link_test.cpp
+
+link_test-vc6-stlport-mt-pgd-1_35_dir :
+ @if not exist "vc6-stlport\link_test-vc6-stlport-mt-pgd-1_35\$(NULL)" mkdir vc6-stlport\link_test-vc6-stlport-mt-pgd-1_35
+
+link_test-vc6-stlport-mt-pgd-1_35_clean :
+ del vc6-stlport\link_test-vc6-stlport-mt-pgd-1_35\*.obj
+ del vc6-stlport\link_test-vc6-stlport-mt-pgd-1_35\*.idb
+ del vc6-stlport\link_test-vc6-stlport-mt-pgd-1_35\*.exp
+ del vc6-stlport\link_test-vc6-stlport-mt-pgd-1_35\*.pch
+
+./vc6-stlport/link_test-vc6-stlport-mt-pgd-1_35.lib : vc6-stlport/link_test-vc6-stlport-mt-pgd-1_35/link_test.obj
+ link kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /incremental:yes /pdb:"vc6-stlport/link_test-vc6-stlport-mt-pgd-1_35.pdb" /debug /machine:I386 /out:"vc6-stlport/link_test-vc6-stlport-mt-pgd-1_35.dll" /implib:"vc6-stlport/link_test-vc6-stlport-mt-pgd-1_35.lib" /LIBPATH:$(STLPORT_PATH)\lib $(XLFLAGS) vc6-stlport/link_test-vc6-stlport-mt-pgd-1_35/link_test.obj
+
+./vc6-stlport/link_test-vc6-stlport-mt-pgd-1_35.exe : main.cpp ./vc6-stlport/link_test-vc6-stlport-mt-pgd-1_35.lib
+ cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\..\ /DBOOST_DYN_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /DBOOST_LIB_DIAGNOSTIC=1 $(CXXFLAGS) -o ./vc6-stlport/link_test-vc6-stlport-mt-pgd-1_35.exe main.cpp /link /LIBPATH:./vc6-stlport
+ vc6-stlport\link_test-vc6-stlport-mt-pgd-1_35.exe
+
+########################################################
+#
+# section for liblink_test-vc6-stlport-mt-spgd-1_35.lib
+#
+########################################################
+vc6-stlport/liblink_test-vc6-stlport-mt-spgd-1_35/link_test.obj: link_test.cpp $(ALL_HEADER)
+ cl /c $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\..\ /D__STL_DEBUG /D_STLP_DEBUG /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /GX $(CXXFLAGS) -Y- -Fo./vc6-stlport/liblink_test-vc6-stlport-mt-spgd-1_35/ -Fdvc6-stlport/liblink_test-vc6-stlport-mt-spgd-1_35.pdb link_test.cpp
+
+liblink_test-vc6-stlport-mt-spgd-1_35_dir :
+ @if not exist "vc6-stlport\liblink_test-vc6-stlport-mt-spgd-1_35\$(NULL)" mkdir vc6-stlport\liblink_test-vc6-stlport-mt-spgd-1_35
+
+liblink_test-vc6-stlport-mt-spgd-1_35_clean :
+ del vc6-stlport\liblink_test-vc6-stlport-mt-spgd-1_35\*.obj
+ del vc6-stlport\liblink_test-vc6-stlport-mt-spgd-1_35\*.idb
+ del vc6-stlport\liblink_test-vc6-stlport-mt-spgd-1_35\*.exp
+ del vc6-stlport\liblink_test-vc6-stlport-mt-spgd-1_35\*.pch
+
+./vc6-stlport/liblink_test-vc6-stlport-mt-spgd-1_35.lib : vc6-stlport/liblink_test-vc6-stlport-mt-spgd-1_35/link_test.obj
+ link -lib /nologo /out:vc6-stlport/liblink_test-vc6-stlport-mt-spgd-1_35.lib $(XSFLAGS) vc6-stlport/liblink_test-vc6-stlport-mt-spgd-1_35/link_test.obj
+
+./vc6-stlport/liblink_test-vc6-stlport-mt-spgd-1_35.exe : main.cpp ./vc6-stlport/liblink_test-vc6-stlport-mt-spgd-1_35.lib
+ cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\..\ /D__STL_DEBUG /D_STLP_DEBUG /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /GX /DBOOST_LIB_DIAGNOSTIC=1 $(CXXFLAGS) -o ./vc6-stlport/liblink_test-vc6-stlport-mt-spgd-1_35.exe main.cpp /link /LIBPATH:./vc6-stlport
+ vc6-stlport\liblink_test-vc6-stlport-mt-spgd-1_35.exe
+
+########################################################
+#
+# section for liblink_test-vc6-stlport-mt-pgd-1_35.lib
+#
+########################################################
+vc6-stlport/liblink_test-vc6-stlport-mt-pgd-1_35/link_test.obj: link_test.cpp $(ALL_HEADER)
+ cl /c $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\..\ /DBOOST_REGEX_STATIC_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX $(CXXFLAGS) -Y- -Fo./vc6-stlport/liblink_test-vc6-stlport-mt-pgd-1_35/ -Fdvc6-stlport/liblink_test-vc6-stlport-mt-pgd-1_35.pdb link_test.cpp
+
+liblink_test-vc6-stlport-mt-pgd-1_35_dir :
+ @if not exist "vc6-stlport\liblink_test-vc6-stlport-mt-pgd-1_35\$(NULL)" mkdir vc6-stlport\liblink_test-vc6-stlport-mt-pgd-1_35
+
+liblink_test-vc6-stlport-mt-pgd-1_35_clean :
+ del vc6-stlport\liblink_test-vc6-stlport-mt-pgd-1_35\*.obj
+ del vc6-stlport\liblink_test-vc6-stlport-mt-pgd-1_35\*.idb
+ del vc6-stlport\liblink_test-vc6-stlport-mt-pgd-1_35\*.exp
+ del vc6-stlport\liblink_test-vc6-stlport-mt-pgd-1_35\*.pch
+
+./vc6-stlport/liblink_test-vc6-stlport-mt-pgd-1_35.lib : vc6-stlport/liblink_test-vc6-stlport-mt-pgd-1_35/link_test.obj
+ link -lib /nologo /out:vc6-stlport/liblink_test-vc6-stlport-mt-pgd-1_35.lib $(XSFLAGS) vc6-stlport/liblink_test-vc6-stlport-mt-pgd-1_35/link_test.obj
+
+./vc6-stlport/liblink_test-vc6-stlport-mt-pgd-1_35.exe : main.cpp ./vc6-stlport/liblink_test-vc6-stlport-mt-pgd-1_35.lib
+ cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\..\ /DBOOST_REGEX_STATIC_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /DBOOST_LIB_DIAGNOSTIC=1 $(CXXFLAGS) -o ./vc6-stlport/liblink_test-vc6-stlport-mt-pgd-1_35.exe main.cpp /link /LIBPATH:./vc6-stlport
+ vc6-stlport\liblink_test-vc6-stlport-mt-pgd-1_35.exe
+
diff --git a/libs/config/test/link/vc6.mak b/libs/config/test/link/vc6.mak
new file mode 100644
index 0000000000..b5a7798f20
--- /dev/null
+++ b/libs/config/test/link/vc6.mak
@@ -0,0 +1,260 @@
+# copyright John Maddock 2005
+# Use, modification and distribution are subject to the
+# Boost Software License, Version 1.0. (See accompanying file
+# LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+#
+# auto generated makefile for VC6 compiler
+#
+# usage:
+# make
+# brings libraries up to date
+# make install
+# brings libraries up to date and copies binaries to your VC6 /lib and /bin directories (recomended)
+#
+
+#
+# Add additional compiler options here:
+#
+CXXFLAGS=
+#
+# Add additional include directories here:
+#
+INCLUDES=
+#
+# add additional linker flags here:
+#
+XLFLAGS=
+#
+# add additional static-library creation flags here:
+#
+XSFLAGS=
+
+!IF "$(OS)" == "Windows_NT"
+NULL=
+!ELSE
+NULL=nul
+!ENDIF
+
+!IF "$(MSVCDIR)" == ""
+!ERROR Variable MSVCDIR not set.
+!ENDIF
+
+
+ALL_HEADER=
+
+all : main_dir liblink_test-vc6-s-1_35_dir ./vc6/liblink_test-vc6-s-1_35.lib ./vc6/liblink_test-vc6-s-1_35.exe liblink_test-vc6-mt-s-1_35_dir ./vc6/liblink_test-vc6-mt-s-1_35.lib ./vc6/liblink_test-vc6-mt-s-1_35.exe liblink_test-vc6-sgd-1_35_dir ./vc6/liblink_test-vc6-sgd-1_35.lib ./vc6/liblink_test-vc6-sgd-1_35.exe liblink_test-vc6-mt-sgd-1_35_dir ./vc6/liblink_test-vc6-mt-sgd-1_35.lib ./vc6/liblink_test-vc6-mt-sgd-1_35.exe link_test-vc6-mt-gd-1_35_dir ./vc6/link_test-vc6-mt-gd-1_35.lib ./vc6/link_test-vc6-mt-gd-1_35.exe link_test-vc6-mt-1_35_dir ./vc6/link_test-vc6-mt-1_35.lib ./vc6/link_test-vc6-mt-1_35.exe liblink_test-vc6-mt-1_35_dir ./vc6/liblink_test-vc6-mt-1_35.lib ./vc6/liblink_test-vc6-mt-1_35.exe liblink_test-vc6-mt-gd-1_35_dir ./vc6/liblink_test-vc6-mt-gd-1_35.lib ./vc6/liblink_test-vc6-mt-gd-1_35.exe
+
+clean : liblink_test-vc6-s-1_35_clean liblink_test-vc6-mt-s-1_35_clean liblink_test-vc6-sgd-1_35_clean liblink_test-vc6-mt-sgd-1_35_clean link_test-vc6-mt-gd-1_35_clean link_test-vc6-mt-1_35_clean liblink_test-vc6-mt-1_35_clean liblink_test-vc6-mt-gd-1_35_clean
+
+install : all
+ copy vc6\liblink_test-vc6-s-1_35.lib "$(MSVCDIR)\lib"
+ copy vc6\liblink_test-vc6-mt-s-1_35.lib "$(MSVCDIR)\lib"
+ copy vc6\liblink_test-vc6-sgd-1_35.lib "$(MSVCDIR)\lib"
+ copy vc6\liblink_test-vc6-sgd-1_35.pdb "$(MSVCDIR)\lib"
+ copy vc6\liblink_test-vc6-mt-sgd-1_35.lib "$(MSVCDIR)\lib"
+ copy vc6\liblink_test-vc6-mt-sgd-1_35.pdb "$(MSVCDIR)\lib"
+ copy vc6\link_test-vc6-mt-gd-1_35.lib "$(MSVCDIR)\lib"
+ copy vc6\link_test-vc6-mt-gd-1_35.dll "$(MSVCDIR)\bin"
+ copy vc6\link_test-vc6-mt-gd-1_35.pdb "$(MSVCDIR)\lib"
+ copy vc6\link_test-vc6-mt-1_35.lib "$(MSVCDIR)\lib"
+ copy vc6\link_test-vc6-mt-1_35.dll "$(MSVCDIR)\bin"
+ copy vc6\liblink_test-vc6-mt-1_35.lib "$(MSVCDIR)\lib"
+ copy vc6\liblink_test-vc6-mt-gd-1_35.lib "$(MSVCDIR)\lib"
+ copy vc6\liblink_test-vc6-mt-gd-1_35.pdb "$(MSVCDIR)\lib"
+
+main_dir :
+ @if not exist "vc6\$(NULL)" mkdir vc6
+
+
+########################################################
+#
+# section for liblink_test-vc6-s-1_35.lib
+#
+########################################################
+vc6/liblink_test-vc6-s-1_35/link_test.obj: link_test.cpp $(ALL_HEADER)
+ cl /c $(INCLUDES) /nologo /ML /W3 /GX /O2 /GB /GF /Gy /I..\..\..\..\ /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD $(CXXFLAGS) -Y- -Fo./vc6/liblink_test-vc6-s-1_35/ -Fdvc6/liblink_test-vc6-s-1_35.pdb link_test.cpp
+
+liblink_test-vc6-s-1_35_dir :
+ @if not exist "vc6\liblink_test-vc6-s-1_35\$(NULL)" mkdir vc6\liblink_test-vc6-s-1_35
+
+liblink_test-vc6-s-1_35_clean :
+ del vc6\liblink_test-vc6-s-1_35\*.obj
+ del vc6\liblink_test-vc6-s-1_35\*.idb
+ del vc6\liblink_test-vc6-s-1_35\*.exp
+ del vc6\liblink_test-vc6-s-1_35\*.pch
+
+./vc6/liblink_test-vc6-s-1_35.lib : vc6/liblink_test-vc6-s-1_35/link_test.obj
+ link -lib /nologo /out:vc6/liblink_test-vc6-s-1_35.lib $(XSFLAGS) vc6/liblink_test-vc6-s-1_35/link_test.obj
+
+./vc6/liblink_test-vc6-s-1_35.exe : main.cpp ./vc6/liblink_test-vc6-s-1_35.lib
+ cl $(INCLUDES) /nologo /ML /W3 /GX /O2 /GB /GF /Gy /I..\..\..\..\ /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD /DBOOST_LIB_DIAGNOSTIC=1 $(CXXFLAGS) -o ./vc6/liblink_test-vc6-s-1_35.exe main.cpp /link /LIBPATH:./vc6
+ vc6\liblink_test-vc6-s-1_35.exe
+
+########################################################
+#
+# section for liblink_test-vc6-mt-s-1_35.lib
+#
+########################################################
+vc6/liblink_test-vc6-mt-s-1_35/link_test.obj: link_test.cpp $(ALL_HEADER)
+ cl /c $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I..\..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD $(CXXFLAGS) -Y- -Fo./vc6/liblink_test-vc6-mt-s-1_35/ -Fdvc6/liblink_test-vc6-mt-s-1_35.pdb link_test.cpp
+
+liblink_test-vc6-mt-s-1_35_dir :
+ @if not exist "vc6\liblink_test-vc6-mt-s-1_35\$(NULL)" mkdir vc6\liblink_test-vc6-mt-s-1_35
+
+liblink_test-vc6-mt-s-1_35_clean :
+ del vc6\liblink_test-vc6-mt-s-1_35\*.obj
+ del vc6\liblink_test-vc6-mt-s-1_35\*.idb
+ del vc6\liblink_test-vc6-mt-s-1_35\*.exp
+ del vc6\liblink_test-vc6-mt-s-1_35\*.pch
+
+./vc6/liblink_test-vc6-mt-s-1_35.lib : vc6/liblink_test-vc6-mt-s-1_35/link_test.obj
+ link -lib /nologo /out:vc6/liblink_test-vc6-mt-s-1_35.lib $(XSFLAGS) vc6/liblink_test-vc6-mt-s-1_35/link_test.obj
+
+./vc6/liblink_test-vc6-mt-s-1_35.exe : main.cpp ./vc6/liblink_test-vc6-mt-s-1_35.lib
+ cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I..\..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD /DBOOST_LIB_DIAGNOSTIC=1 $(CXXFLAGS) -o ./vc6/liblink_test-vc6-mt-s-1_35.exe main.cpp /link /LIBPATH:./vc6
+ vc6\liblink_test-vc6-mt-s-1_35.exe
+
+########################################################
+#
+# section for liblink_test-vc6-sgd-1_35.lib
+#
+########################################################
+vc6/liblink_test-vc6-sgd-1_35/link_test.obj: link_test.cpp $(ALL_HEADER)
+ cl /c $(INCLUDES) /nologo /MLd /W3 /Gm /GX /Zi /Od /I..\..\..\..\ /DWIN32 /D_DEBUG /D_MBCS /D_LIB /FD /GX $(CXXFLAGS) -Y- -Fo./vc6/liblink_test-vc6-sgd-1_35/ -Fdvc6/liblink_test-vc6-sgd-1_35.pdb link_test.cpp
+
+liblink_test-vc6-sgd-1_35_dir :
+ @if not exist "vc6\liblink_test-vc6-sgd-1_35\$(NULL)" mkdir vc6\liblink_test-vc6-sgd-1_35
+
+liblink_test-vc6-sgd-1_35_clean :
+ del vc6\liblink_test-vc6-sgd-1_35\*.obj
+ del vc6\liblink_test-vc6-sgd-1_35\*.idb
+ del vc6\liblink_test-vc6-sgd-1_35\*.exp
+ del vc6\liblink_test-vc6-sgd-1_35\*.pch
+
+./vc6/liblink_test-vc6-sgd-1_35.lib : vc6/liblink_test-vc6-sgd-1_35/link_test.obj
+ link -lib /nologo /out:vc6/liblink_test-vc6-sgd-1_35.lib $(XSFLAGS) vc6/liblink_test-vc6-sgd-1_35/link_test.obj
+
+./vc6/liblink_test-vc6-sgd-1_35.exe : main.cpp ./vc6/liblink_test-vc6-sgd-1_35.lib
+ cl $(INCLUDES) /nologo /MLd /W3 /Gm /GX /Zi /Od /I..\..\..\..\ /DWIN32 /D_DEBUG /D_MBCS /D_LIB /FD /GX /DBOOST_LIB_DIAGNOSTIC=1 $(CXXFLAGS) -o ./vc6/liblink_test-vc6-sgd-1_35.exe main.cpp /link /LIBPATH:./vc6
+ vc6\liblink_test-vc6-sgd-1_35.exe
+
+########################################################
+#
+# section for liblink_test-vc6-mt-sgd-1_35.lib
+#
+########################################################
+vc6/liblink_test-vc6-mt-sgd-1_35/link_test.obj: link_test.cpp $(ALL_HEADER)
+ cl /c $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I..\..\..\..\ /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /FD /GX $(CXXFLAGS) -Y- -Fo./vc6/liblink_test-vc6-mt-sgd-1_35/ -Fdvc6/liblink_test-vc6-mt-sgd-1_35.pdb link_test.cpp
+
+liblink_test-vc6-mt-sgd-1_35_dir :
+ @if not exist "vc6\liblink_test-vc6-mt-sgd-1_35\$(NULL)" mkdir vc6\liblink_test-vc6-mt-sgd-1_35
+
+liblink_test-vc6-mt-sgd-1_35_clean :
+ del vc6\liblink_test-vc6-mt-sgd-1_35\*.obj
+ del vc6\liblink_test-vc6-mt-sgd-1_35\*.idb
+ del vc6\liblink_test-vc6-mt-sgd-1_35\*.exp
+ del vc6\liblink_test-vc6-mt-sgd-1_35\*.pch
+
+./vc6/liblink_test-vc6-mt-sgd-1_35.lib : vc6/liblink_test-vc6-mt-sgd-1_35/link_test.obj
+ link -lib /nologo /out:vc6/liblink_test-vc6-mt-sgd-1_35.lib $(XSFLAGS) vc6/liblink_test-vc6-mt-sgd-1_35/link_test.obj
+
+./vc6/liblink_test-vc6-mt-sgd-1_35.exe : main.cpp ./vc6/liblink_test-vc6-mt-sgd-1_35.lib
+ cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I..\..\..\..\ /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /FD /GX /DBOOST_LIB_DIAGNOSTIC=1 $(CXXFLAGS) -o ./vc6/liblink_test-vc6-mt-sgd-1_35.exe main.cpp /link /LIBPATH:./vc6
+ vc6\liblink_test-vc6-mt-sgd-1_35.exe
+
+########################################################
+#
+# section for link_test-vc6-mt-gd-1_35.lib
+#
+########################################################
+vc6/link_test-vc6-mt-gd-1_35/link_test.obj: link_test.cpp $(ALL_HEADER)
+ cl /c $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I..\..\..\..\ /D_DEBUG /DBOOST_DYN_LINK /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX $(CXXFLAGS) -Y- -Fo./vc6/link_test-vc6-mt-gd-1_35/ -Fdvc6/link_test-vc6-mt-gd-1_35.pdb link_test.cpp
+
+link_test-vc6-mt-gd-1_35_dir :
+ @if not exist "vc6\link_test-vc6-mt-gd-1_35\$(NULL)" mkdir vc6\link_test-vc6-mt-gd-1_35
+
+link_test-vc6-mt-gd-1_35_clean :
+ del vc6\link_test-vc6-mt-gd-1_35\*.obj
+ del vc6\link_test-vc6-mt-gd-1_35\*.idb
+ del vc6\link_test-vc6-mt-gd-1_35\*.exp
+ del vc6\link_test-vc6-mt-gd-1_35\*.pch
+
+./vc6/link_test-vc6-mt-gd-1_35.lib : vc6/link_test-vc6-mt-gd-1_35/link_test.obj
+ link kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /incremental:yes /pdb:"vc6/link_test-vc6-mt-gd-1_35.pdb" /debug /machine:I386 /out:"vc6/link_test-vc6-mt-gd-1_35.dll" /implib:"vc6/link_test-vc6-mt-gd-1_35.lib" /LIBPATH:$(STLPORT_PATH)\lib $(XLFLAGS) vc6/link_test-vc6-mt-gd-1_35/link_test.obj
+
+./vc6/link_test-vc6-mt-gd-1_35.exe : main.cpp ./vc6/link_test-vc6-mt-gd-1_35.lib
+ cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I..\..\..\..\ /D_DEBUG /DBOOST_DYN_LINK /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /DBOOST_LIB_DIAGNOSTIC=1 $(CXXFLAGS) -o ./vc6/link_test-vc6-mt-gd-1_35.exe main.cpp /link /LIBPATH:./vc6
+ vc6\link_test-vc6-mt-gd-1_35.exe
+
+########################################################
+#
+# section for link_test-vc6-mt-1_35.lib
+#
+########################################################
+vc6/link_test-vc6-mt-1_35/link_test.obj: link_test.cpp $(ALL_HEADER)
+ cl /c $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I..\..\..\..\ /DBOOST_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD $(CXXFLAGS) -Y- -Fo./vc6/link_test-vc6-mt-1_35/ -Fdvc6/link_test-vc6-mt-1_35.pdb link_test.cpp
+
+link_test-vc6-mt-1_35_dir :
+ @if not exist "vc6\link_test-vc6-mt-1_35\$(NULL)" mkdir vc6\link_test-vc6-mt-1_35
+
+link_test-vc6-mt-1_35_clean :
+ del vc6\link_test-vc6-mt-1_35\*.obj
+ del vc6\link_test-vc6-mt-1_35\*.idb
+ del vc6\link_test-vc6-mt-1_35\*.exp
+ del vc6\link_test-vc6-mt-1_35\*.pch
+
+./vc6/link_test-vc6-mt-1_35.lib : vc6/link_test-vc6-mt-1_35/link_test.obj
+ link kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /incremental:yes /pdb:"vc6/link_test-vc6-mt-1_35.pdb" /debug /machine:I386 /out:"vc6/link_test-vc6-mt-1_35.dll" /implib:"vc6/link_test-vc6-mt-1_35.lib" /LIBPATH:$(STLPORT_PATH)\lib $(XLFLAGS) vc6/link_test-vc6-mt-1_35/link_test.obj
+
+./vc6/link_test-vc6-mt-1_35.exe : main.cpp ./vc6/link_test-vc6-mt-1_35.lib
+ cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I..\..\..\..\ /DBOOST_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /DBOOST_LIB_DIAGNOSTIC=1 $(CXXFLAGS) -o ./vc6/link_test-vc6-mt-1_35.exe main.cpp /link /LIBPATH:./vc6
+ vc6\link_test-vc6-mt-1_35.exe
+
+########################################################
+#
+# section for liblink_test-vc6-mt-1_35.lib
+#
+########################################################
+vc6/liblink_test-vc6-mt-1_35/link_test.obj: link_test.cpp $(ALL_HEADER)
+ cl /c $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I..\..\..\..\ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD $(CXXFLAGS) -Y- -Fo./vc6/liblink_test-vc6-mt-1_35/ -Fdvc6/liblink_test-vc6-mt-1_35.pdb link_test.cpp
+
+liblink_test-vc6-mt-1_35_dir :
+ @if not exist "vc6\liblink_test-vc6-mt-1_35\$(NULL)" mkdir vc6\liblink_test-vc6-mt-1_35
+
+liblink_test-vc6-mt-1_35_clean :
+ del vc6\liblink_test-vc6-mt-1_35\*.obj
+ del vc6\liblink_test-vc6-mt-1_35\*.idb
+ del vc6\liblink_test-vc6-mt-1_35\*.exp
+ del vc6\liblink_test-vc6-mt-1_35\*.pch
+
+./vc6/liblink_test-vc6-mt-1_35.lib : vc6/liblink_test-vc6-mt-1_35/link_test.obj
+ link -lib /nologo /out:vc6/liblink_test-vc6-mt-1_35.lib $(XSFLAGS) vc6/liblink_test-vc6-mt-1_35/link_test.obj
+
+./vc6/liblink_test-vc6-mt-1_35.exe : main.cpp ./vc6/liblink_test-vc6-mt-1_35.lib
+ cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I..\..\..\..\ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /DBOOST_LIB_DIAGNOSTIC=1 $(CXXFLAGS) -o ./vc6/liblink_test-vc6-mt-1_35.exe main.cpp /link /LIBPATH:./vc6
+ vc6\liblink_test-vc6-mt-1_35.exe
+
+########################################################
+#
+# section for liblink_test-vc6-mt-gd-1_35.lib
+#
+########################################################
+vc6/liblink_test-vc6-mt-gd-1_35/link_test.obj: link_test.cpp $(ALL_HEADER)
+ cl /c $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I..\..\..\..\ /DBOOST_REGEX_STATIC_LINK /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX $(CXXFLAGS) -Y- -Fo./vc6/liblink_test-vc6-mt-gd-1_35/ -Fdvc6/liblink_test-vc6-mt-gd-1_35.pdb link_test.cpp
+
+liblink_test-vc6-mt-gd-1_35_dir :
+ @if not exist "vc6\liblink_test-vc6-mt-gd-1_35\$(NULL)" mkdir vc6\liblink_test-vc6-mt-gd-1_35
+
+liblink_test-vc6-mt-gd-1_35_clean :
+ del vc6\liblink_test-vc6-mt-gd-1_35\*.obj
+ del vc6\liblink_test-vc6-mt-gd-1_35\*.idb
+ del vc6\liblink_test-vc6-mt-gd-1_35\*.exp
+ del vc6\liblink_test-vc6-mt-gd-1_35\*.pch
+
+./vc6/liblink_test-vc6-mt-gd-1_35.lib : vc6/liblink_test-vc6-mt-gd-1_35/link_test.obj
+ link -lib /nologo /out:vc6/liblink_test-vc6-mt-gd-1_35.lib $(XSFLAGS) vc6/liblink_test-vc6-mt-gd-1_35/link_test.obj
+
+./vc6/liblink_test-vc6-mt-gd-1_35.exe : main.cpp ./vc6/liblink_test-vc6-mt-gd-1_35.lib
+ cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I..\..\..\..\ /DBOOST_REGEX_STATIC_LINK /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /DBOOST_LIB_DIAGNOSTIC=1 $(CXXFLAGS) -o ./vc6/liblink_test-vc6-mt-gd-1_35.exe main.cpp /link /LIBPATH:./vc6
+ vc6\liblink_test-vc6-mt-gd-1_35.exe
+
diff --git a/libs/config/test/link/vc7-stlport.mak b/libs/config/test/link/vc7-stlport.mak
new file mode 100644
index 0000000000..5e500f1972
--- /dev/null
+++ b/libs/config/test/link/vc7-stlport.mak
@@ -0,0 +1,292 @@
+# copyright John Maddock 2005
+# Use, modification and distribution are subject to the
+# Boost Software License, Version 1.0. (See accompanying file
+# LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+#
+# auto generated makefile for VC6+STLPort
+#
+# usage:
+# make
+# brings libraries up to date
+# make install
+# brings libraries up to date and copies binaries to your VC6 /lib and /bin directories (recomended)
+#
+
+#
+# Add additional compiler options here:
+#
+CXXFLAGS=
+#
+# Add additional include directories here:
+#
+INCLUDES=
+#
+# add additional linker flags here:
+#
+XLFLAGS=
+#
+# add additional static-library creation flags here:
+#
+XSFLAGS=
+
+!IF "$(OS)" == "Windows_NT"
+NULL=
+!ELSE
+NULL=nul
+!ENDIF
+
+!IF "$(MSVCDIR)" == ""
+!ERROR Variable MSVCDIR not set.
+!ENDIF
+
+!IF "$(STLPORT_PATH)" == ""
+!ERROR Variable STLPORT_PATH not set.
+!ENDIF
+
+
+ALL_HEADER=
+
+all : main_dir liblink_test-vc7-stlport-mt-s-1_35_dir ./vc7-stlport/liblink_test-vc7-stlport-mt-s-1_35.lib ./vc7-stlport/liblink_test-vc7-stlport-mt-s-1_35.exe liblink_test-vc7-stlport-mt-sgd-1_35_dir ./vc7-stlport/liblink_test-vc7-stlport-mt-sgd-1_35.lib ./vc7-stlport/liblink_test-vc7-stlport-mt-sgd-1_35.exe link_test-vc7-stlport-mt-gd-1_35_dir ./vc7-stlport/link_test-vc7-stlport-mt-gd-1_35.lib ./vc7-stlport/link_test-vc7-stlport-mt-gd-1_35.exe link_test-vc7-stlport-mt-1_35_dir ./vc7-stlport/link_test-vc7-stlport-mt-1_35.lib ./vc7-stlport/link_test-vc7-stlport-mt-1_35.exe liblink_test-vc7-stlport-mt-1_35_dir ./vc7-stlport/liblink_test-vc7-stlport-mt-1_35.lib ./vc7-stlport/liblink_test-vc7-stlport-mt-1_35.exe liblink_test-vc7-stlport-mt-gd-1_35_dir ./vc7-stlport/liblink_test-vc7-stlport-mt-gd-1_35.lib ./vc7-stlport/liblink_test-vc7-stlport-mt-gd-1_35.exe link_test-vc7-stlport-mt-pgd-1_35_dir ./vc7-stlport/link_test-vc7-stlport-mt-pgd-1_35.lib ./vc7-stlport/link_test-vc7-stlport-mt-pgd-1_35.exe liblink_test-vc7-stlport-mt-spgd-1_35_dir ./vc7-stlport/liblink_test-vc7-stlport-mt-spgd-1_35.lib ./vc7-stlport/liblink_test-vc7-stlport-mt-spgd-1_35.exe liblink_test-vc7-stlport-mt-pgd-1_35_dir ./vc7-stlport/liblink_test-vc7-stlport-mt-pgd-1_35.lib ./vc7-stlport/liblink_test-vc7-stlport-mt-pgd-1_35.exe
+
+clean : liblink_test-vc7-stlport-mt-s-1_35_clean liblink_test-vc7-stlport-mt-sgd-1_35_clean link_test-vc7-stlport-mt-gd-1_35_clean link_test-vc7-stlport-mt-1_35_clean liblink_test-vc7-stlport-mt-1_35_clean liblink_test-vc7-stlport-mt-gd-1_35_clean link_test-vc7-stlport-mt-pgd-1_35_clean liblink_test-vc7-stlport-mt-spgd-1_35_clean liblink_test-vc7-stlport-mt-pgd-1_35_clean
+
+install : stlport_check all
+ copy vc7-stlport\liblink_test-vc7-stlport-mt-s-1_35.lib "$(MSVCDIR)\lib"
+ copy vc7-stlport\liblink_test-vc7-stlport-mt-sgd-1_35.lib "$(MSVCDIR)\lib"
+ copy vc7-stlport\link_test-vc7-stlport-mt-gd-1_35.lib "$(MSVCDIR)\lib"
+ copy vc7-stlport\link_test-vc7-stlport-mt-gd-1_35.dll "$(MSVCDIR)\bin"
+ copy vc7-stlport\link_test-vc7-stlport-mt-1_35.lib "$(MSVCDIR)\lib"
+ copy vc7-stlport\link_test-vc7-stlport-mt-1_35.dll "$(MSVCDIR)\bin"
+ copy vc7-stlport\liblink_test-vc7-stlport-mt-1_35.lib "$(MSVCDIR)\lib"
+ copy vc7-stlport\liblink_test-vc7-stlport-mt-gd-1_35.lib "$(MSVCDIR)\lib"
+ copy vc7-stlport\link_test-vc7-stlport-mt-pgd-1_35.lib "$(MSVCDIR)\lib"
+ copy vc7-stlport\link_test-vc7-stlport-mt-pgd-1_35.dll "$(MSVCDIR)\bin"
+ copy vc7-stlport\link_test-vc7-stlport-mt-pgd-1_35.pdb "$(MSVCDIR)\lib"
+ copy vc7-stlport\liblink_test-vc7-stlport-mt-spgd-1_35.lib "$(MSVCDIR)\lib"
+ copy vc7-stlport\liblink_test-vc7-stlport-mt-spgd-1_35.pdb "$(MSVCDIR)\lib"
+ copy vc7-stlport\liblink_test-vc7-stlport-mt-pgd-1_35.lib "$(MSVCDIR)\lib"
+ copy vc7-stlport\liblink_test-vc7-stlport-mt-pgd-1_35.pdb "$(MSVCDIR)\lib"
+
+main_dir :
+ @if not exist "vc7-stlport\$(NULL)" mkdir vc7-stlport
+
+stlport_check : $(STLPORT_PATH)\stlport\string
+ echo
+
+
+########################################################
+#
+# section for liblink_test-vc7-stlport-mt-s-1_35.lib
+#
+########################################################
+vc7-stlport/liblink_test-vc7-stlport-mt-s-1_35/link_test.obj: link_test.cpp $(ALL_HEADER)
+ cl /c $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I..\..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB $(CXXFLAGS) -Y- -Fo./vc7-stlport/liblink_test-vc7-stlport-mt-s-1_35/ -Fdvc7-stlport/liblink_test-vc7-stlport-mt-s-1_35.pdb link_test.cpp
+
+liblink_test-vc7-stlport-mt-s-1_35_dir :
+ @if not exist "vc7-stlport\liblink_test-vc7-stlport-mt-s-1_35\$(NULL)" mkdir vc7-stlport\liblink_test-vc7-stlport-mt-s-1_35
+
+liblink_test-vc7-stlport-mt-s-1_35_clean :
+ del vc7-stlport\liblink_test-vc7-stlport-mt-s-1_35\*.obj
+ del vc7-stlport\liblink_test-vc7-stlport-mt-s-1_35\*.idb
+ del vc7-stlport\liblink_test-vc7-stlport-mt-s-1_35\*.exp
+ del vc7-stlport\liblink_test-vc7-stlport-mt-s-1_35\*.pch
+
+./vc7-stlport/liblink_test-vc7-stlport-mt-s-1_35.lib : vc7-stlport/liblink_test-vc7-stlport-mt-s-1_35/link_test.obj
+ link -lib /nologo /out:vc7-stlport/liblink_test-vc7-stlport-mt-s-1_35.lib $(XSFLAGS) vc7-stlport/liblink_test-vc7-stlport-mt-s-1_35/link_test.obj
+
+./vc7-stlport/liblink_test-vc7-stlport-mt-s-1_35.exe : main.cpp ./vc7-stlport/liblink_test-vc7-stlport-mt-s-1_35.lib
+ cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I..\..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /DBOOST_LIB_DIAGNOSTIC=1 $(CXXFLAGS) -o ./vc7-stlport/liblink_test-vc7-stlport-mt-s-1_35.exe main.cpp /link /LIBPATH:./vc7-stlport
+ vc7-stlport\liblink_test-vc7-stlport-mt-s-1_35.exe
+
+########################################################
+#
+# section for liblink_test-vc7-stlport-mt-sgd-1_35.lib
+#
+########################################################
+vc7-stlport/liblink_test-vc7-stlport-mt-sgd-1_35/link_test.obj: link_test.cpp $(ALL_HEADER)
+ cl /c $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\..\ /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /GX /RTC1 $(CXXFLAGS) -Y- -Fo./vc7-stlport/liblink_test-vc7-stlport-mt-sgd-1_35/ -Fdvc7-stlport/liblink_test-vc7-stlport-mt-sgd-1_35.pdb link_test.cpp
+
+liblink_test-vc7-stlport-mt-sgd-1_35_dir :
+ @if not exist "vc7-stlport\liblink_test-vc7-stlport-mt-sgd-1_35\$(NULL)" mkdir vc7-stlport\liblink_test-vc7-stlport-mt-sgd-1_35
+
+liblink_test-vc7-stlport-mt-sgd-1_35_clean :
+ del vc7-stlport\liblink_test-vc7-stlport-mt-sgd-1_35\*.obj
+ del vc7-stlport\liblink_test-vc7-stlport-mt-sgd-1_35\*.idb
+ del vc7-stlport\liblink_test-vc7-stlport-mt-sgd-1_35\*.exp
+ del vc7-stlport\liblink_test-vc7-stlport-mt-sgd-1_35\*.pch
+
+./vc7-stlport/liblink_test-vc7-stlport-mt-sgd-1_35.lib : vc7-stlport/liblink_test-vc7-stlport-mt-sgd-1_35/link_test.obj
+ link -lib /nologo /out:vc7-stlport/liblink_test-vc7-stlport-mt-sgd-1_35.lib $(XSFLAGS) vc7-stlport/liblink_test-vc7-stlport-mt-sgd-1_35/link_test.obj
+
+./vc7-stlport/liblink_test-vc7-stlport-mt-sgd-1_35.exe : main.cpp ./vc7-stlport/liblink_test-vc7-stlport-mt-sgd-1_35.lib
+ cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\..\ /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /GX /RTC1 /DBOOST_LIB_DIAGNOSTIC=1 $(CXXFLAGS) -o ./vc7-stlport/liblink_test-vc7-stlport-mt-sgd-1_35.exe main.cpp /link /LIBPATH:./vc7-stlport
+ vc7-stlport\liblink_test-vc7-stlport-mt-sgd-1_35.exe
+
+########################################################
+#
+# section for link_test-vc7-stlport-mt-gd-1_35.lib
+#
+########################################################
+vc7-stlport/link_test-vc7-stlport-mt-gd-1_35/link_test.obj: link_test.cpp $(ALL_HEADER)
+ cl /c $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\..\ /DBOOST_DYN_LINK /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /RTC1 $(CXXFLAGS) -Y- -Fo./vc7-stlport/link_test-vc7-stlport-mt-gd-1_35/ -Fdvc7-stlport/link_test-vc7-stlport-mt-gd-1_35.pdb link_test.cpp
+
+link_test-vc7-stlport-mt-gd-1_35_dir :
+ @if not exist "vc7-stlport\link_test-vc7-stlport-mt-gd-1_35\$(NULL)" mkdir vc7-stlport\link_test-vc7-stlport-mt-gd-1_35
+
+link_test-vc7-stlport-mt-gd-1_35_clean :
+ del vc7-stlport\link_test-vc7-stlport-mt-gd-1_35\*.obj
+ del vc7-stlport\link_test-vc7-stlport-mt-gd-1_35\*.idb
+ del vc7-stlport\link_test-vc7-stlport-mt-gd-1_35\*.exp
+ del vc7-stlport\link_test-vc7-stlport-mt-gd-1_35\*.pch
+
+./vc7-stlport/link_test-vc7-stlport-mt-gd-1_35.lib : vc7-stlport/link_test-vc7-stlport-mt-gd-1_35/link_test.obj
+ link kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /incremental:yes /pdb:"vc7-stlport/link_test-vc7-stlport-mt-gd-1_35.pdb" /debug /machine:I386 /out:"vc7-stlport/link_test-vc7-stlport-mt-gd-1_35.dll" /implib:"vc7-stlport/link_test-vc7-stlport-mt-gd-1_35.lib" /LIBPATH:$(STLPORT_PATH)\lib $(XLFLAGS) vc7-stlport/link_test-vc7-stlport-mt-gd-1_35/link_test.obj
+
+./vc7-stlport/link_test-vc7-stlport-mt-gd-1_35.exe : main.cpp ./vc7-stlport/link_test-vc7-stlport-mt-gd-1_35.lib
+ cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\..\ /DBOOST_DYN_LINK /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /RTC1 /DBOOST_LIB_DIAGNOSTIC=1 $(CXXFLAGS) -o ./vc7-stlport/link_test-vc7-stlport-mt-gd-1_35.exe main.cpp /link /LIBPATH:./vc7-stlport
+ vc7-stlport\link_test-vc7-stlport-mt-gd-1_35.exe
+
+########################################################
+#
+# section for link_test-vc7-stlport-mt-1_35.lib
+#
+########################################################
+vc7-stlport/link_test-vc7-stlport-mt-1_35/link_test.obj: link_test.cpp $(ALL_HEADER)
+ cl /c $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /I$(STLPORT_PATH)\stlport /Gy /I..\..\..\..\ /DBOOST_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL $(CXXFLAGS) -Y- -Fo./vc7-stlport/link_test-vc7-stlport-mt-1_35/ -Fdvc7-stlport/link_test-vc7-stlport-mt-1_35.pdb link_test.cpp
+
+link_test-vc7-stlport-mt-1_35_dir :
+ @if not exist "vc7-stlport\link_test-vc7-stlport-mt-1_35\$(NULL)" mkdir vc7-stlport\link_test-vc7-stlport-mt-1_35
+
+link_test-vc7-stlport-mt-1_35_clean :
+ del vc7-stlport\link_test-vc7-stlport-mt-1_35\*.obj
+ del vc7-stlport\link_test-vc7-stlport-mt-1_35\*.idb
+ del vc7-stlport\link_test-vc7-stlport-mt-1_35\*.exp
+ del vc7-stlport\link_test-vc7-stlport-mt-1_35\*.pch
+
+./vc7-stlport/link_test-vc7-stlport-mt-1_35.lib : vc7-stlport/link_test-vc7-stlport-mt-1_35/link_test.obj
+ link kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /incremental:yes /pdb:"vc7-stlport/link_test-vc7-stlport-mt-1_35.pdb" /debug /machine:I386 /out:"vc7-stlport/link_test-vc7-stlport-mt-1_35.dll" /implib:"vc7-stlport/link_test-vc7-stlport-mt-1_35.lib" /LIBPATH:$(STLPORT_PATH)\lib $(XLFLAGS) vc7-stlport/link_test-vc7-stlport-mt-1_35/link_test.obj
+
+./vc7-stlport/link_test-vc7-stlport-mt-1_35.exe : main.cpp ./vc7-stlport/link_test-vc7-stlport-mt-1_35.lib
+ cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /I$(STLPORT_PATH)\stlport /Gy /I..\..\..\..\ /DBOOST_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /DBOOST_LIB_DIAGNOSTIC=1 $(CXXFLAGS) -o ./vc7-stlport/link_test-vc7-stlport-mt-1_35.exe main.cpp /link /LIBPATH:./vc7-stlport
+ vc7-stlport\link_test-vc7-stlport-mt-1_35.exe
+
+########################################################
+#
+# section for liblink_test-vc7-stlport-mt-1_35.lib
+#
+########################################################
+vc7-stlport/liblink_test-vc7-stlport-mt-1_35/link_test.obj: link_test.cpp $(ALL_HEADER)
+ cl /c $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I..\..\..\..\ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL $(CXXFLAGS) -Y- -Fo./vc7-stlport/liblink_test-vc7-stlport-mt-1_35/ -Fdvc7-stlport/liblink_test-vc7-stlport-mt-1_35.pdb link_test.cpp
+
+liblink_test-vc7-stlport-mt-1_35_dir :
+ @if not exist "vc7-stlport\liblink_test-vc7-stlport-mt-1_35\$(NULL)" mkdir vc7-stlport\liblink_test-vc7-stlport-mt-1_35
+
+liblink_test-vc7-stlport-mt-1_35_clean :
+ del vc7-stlport\liblink_test-vc7-stlport-mt-1_35\*.obj
+ del vc7-stlport\liblink_test-vc7-stlport-mt-1_35\*.idb
+ del vc7-stlport\liblink_test-vc7-stlport-mt-1_35\*.exp
+ del vc7-stlport\liblink_test-vc7-stlport-mt-1_35\*.pch
+
+./vc7-stlport/liblink_test-vc7-stlport-mt-1_35.lib : vc7-stlport/liblink_test-vc7-stlport-mt-1_35/link_test.obj
+ link -lib /nologo /out:vc7-stlport/liblink_test-vc7-stlport-mt-1_35.lib $(XSFLAGS) vc7-stlport/liblink_test-vc7-stlport-mt-1_35/link_test.obj
+
+./vc7-stlport/liblink_test-vc7-stlport-mt-1_35.exe : main.cpp ./vc7-stlport/liblink_test-vc7-stlport-mt-1_35.lib
+ cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I..\..\..\..\ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /DBOOST_LIB_DIAGNOSTIC=1 $(CXXFLAGS) -o ./vc7-stlport/liblink_test-vc7-stlport-mt-1_35.exe main.cpp /link /LIBPATH:./vc7-stlport
+ vc7-stlport\liblink_test-vc7-stlport-mt-1_35.exe
+
+########################################################
+#
+# section for liblink_test-vc7-stlport-mt-gd-1_35.lib
+#
+########################################################
+vc7-stlport/liblink_test-vc7-stlport-mt-gd-1_35/link_test.obj: link_test.cpp $(ALL_HEADER)
+ cl /c $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\..\ /DBOOST_REGEX_STATIC_LINK /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /RTC1 $(CXXFLAGS) -Y- -Fo./vc7-stlport/liblink_test-vc7-stlport-mt-gd-1_35/ -Fdvc7-stlport/liblink_test-vc7-stlport-mt-gd-1_35.pdb link_test.cpp
+
+liblink_test-vc7-stlport-mt-gd-1_35_dir :
+ @if not exist "vc7-stlport\liblink_test-vc7-stlport-mt-gd-1_35\$(NULL)" mkdir vc7-stlport\liblink_test-vc7-stlport-mt-gd-1_35
+
+liblink_test-vc7-stlport-mt-gd-1_35_clean :
+ del vc7-stlport\liblink_test-vc7-stlport-mt-gd-1_35\*.obj
+ del vc7-stlport\liblink_test-vc7-stlport-mt-gd-1_35\*.idb
+ del vc7-stlport\liblink_test-vc7-stlport-mt-gd-1_35\*.exp
+ del vc7-stlport\liblink_test-vc7-stlport-mt-gd-1_35\*.pch
+
+./vc7-stlport/liblink_test-vc7-stlport-mt-gd-1_35.lib : vc7-stlport/liblink_test-vc7-stlport-mt-gd-1_35/link_test.obj
+ link -lib /nologo /out:vc7-stlport/liblink_test-vc7-stlport-mt-gd-1_35.lib $(XSFLAGS) vc7-stlport/liblink_test-vc7-stlport-mt-gd-1_35/link_test.obj
+
+./vc7-stlport/liblink_test-vc7-stlport-mt-gd-1_35.exe : main.cpp ./vc7-stlport/liblink_test-vc7-stlport-mt-gd-1_35.lib
+ cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\..\ /DBOOST_REGEX_STATIC_LINK /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /RTC1 /DBOOST_LIB_DIAGNOSTIC=1 $(CXXFLAGS) -o ./vc7-stlport/liblink_test-vc7-stlport-mt-gd-1_35.exe main.cpp /link /LIBPATH:./vc7-stlport
+ vc7-stlport\liblink_test-vc7-stlport-mt-gd-1_35.exe
+
+########################################################
+#
+# section for link_test-vc7-stlport-mt-pgd-1_35.lib
+#
+########################################################
+vc7-stlport/link_test-vc7-stlport-mt-pgd-1_35/link_test.obj: link_test.cpp $(ALL_HEADER)
+ cl /c $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\..\ /DBOOST_DYN_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /RTC1 $(CXXFLAGS) -Y- -Fo./vc7-stlport/link_test-vc7-stlport-mt-pgd-1_35/ -Fdvc7-stlport/link_test-vc7-stlport-mt-pgd-1_35.pdb link_test.cpp
+
+link_test-vc7-stlport-mt-pgd-1_35_dir :
+ @if not exist "vc7-stlport\link_test-vc7-stlport-mt-pgd-1_35\$(NULL)" mkdir vc7-stlport\link_test-vc7-stlport-mt-pgd-1_35
+
+link_test-vc7-stlport-mt-pgd-1_35_clean :
+ del vc7-stlport\link_test-vc7-stlport-mt-pgd-1_35\*.obj
+ del vc7-stlport\link_test-vc7-stlport-mt-pgd-1_35\*.idb
+ del vc7-stlport\link_test-vc7-stlport-mt-pgd-1_35\*.exp
+ del vc7-stlport\link_test-vc7-stlport-mt-pgd-1_35\*.pch
+
+./vc7-stlport/link_test-vc7-stlport-mt-pgd-1_35.lib : vc7-stlport/link_test-vc7-stlport-mt-pgd-1_35/link_test.obj
+ link kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /incremental:yes /pdb:"vc7-stlport/link_test-vc7-stlport-mt-pgd-1_35.pdb" /debug /machine:I386 /out:"vc7-stlport/link_test-vc7-stlport-mt-pgd-1_35.dll" /implib:"vc7-stlport/link_test-vc7-stlport-mt-pgd-1_35.lib" /LIBPATH:$(STLPORT_PATH)\lib $(XLFLAGS) vc7-stlport/link_test-vc7-stlport-mt-pgd-1_35/link_test.obj
+
+./vc7-stlport/link_test-vc7-stlport-mt-pgd-1_35.exe : main.cpp ./vc7-stlport/link_test-vc7-stlport-mt-pgd-1_35.lib
+ cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\..\ /DBOOST_DYN_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /RTC1 /DBOOST_LIB_DIAGNOSTIC=1 $(CXXFLAGS) -o ./vc7-stlport/link_test-vc7-stlport-mt-pgd-1_35.exe main.cpp /link /LIBPATH:./vc7-stlport
+ vc7-stlport\link_test-vc7-stlport-mt-pgd-1_35.exe
+
+########################################################
+#
+# section for liblink_test-vc7-stlport-mt-spgd-1_35.lib
+#
+########################################################
+vc7-stlport/liblink_test-vc7-stlport-mt-spgd-1_35/link_test.obj: link_test.cpp $(ALL_HEADER)
+ cl /c $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\..\ /D__STL_DEBUG /D_STLP_DEBUG /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /GX /RTC1 $(CXXFLAGS) -Y- -Fo./vc7-stlport/liblink_test-vc7-stlport-mt-spgd-1_35/ -Fdvc7-stlport/liblink_test-vc7-stlport-mt-spgd-1_35.pdb link_test.cpp
+
+liblink_test-vc7-stlport-mt-spgd-1_35_dir :
+ @if not exist "vc7-stlport\liblink_test-vc7-stlport-mt-spgd-1_35\$(NULL)" mkdir vc7-stlport\liblink_test-vc7-stlport-mt-spgd-1_35
+
+liblink_test-vc7-stlport-mt-spgd-1_35_clean :
+ del vc7-stlport\liblink_test-vc7-stlport-mt-spgd-1_35\*.obj
+ del vc7-stlport\liblink_test-vc7-stlport-mt-spgd-1_35\*.idb
+ del vc7-stlport\liblink_test-vc7-stlport-mt-spgd-1_35\*.exp
+ del vc7-stlport\liblink_test-vc7-stlport-mt-spgd-1_35\*.pch
+
+./vc7-stlport/liblink_test-vc7-stlport-mt-spgd-1_35.lib : vc7-stlport/liblink_test-vc7-stlport-mt-spgd-1_35/link_test.obj
+ link -lib /nologo /out:vc7-stlport/liblink_test-vc7-stlport-mt-spgd-1_35.lib $(XSFLAGS) vc7-stlport/liblink_test-vc7-stlport-mt-spgd-1_35/link_test.obj
+
+./vc7-stlport/liblink_test-vc7-stlport-mt-spgd-1_35.exe : main.cpp ./vc7-stlport/liblink_test-vc7-stlport-mt-spgd-1_35.lib
+ cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\..\ /D__STL_DEBUG /D_STLP_DEBUG /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /GX /RTC1 /DBOOST_LIB_DIAGNOSTIC=1 $(CXXFLAGS) -o ./vc7-stlport/liblink_test-vc7-stlport-mt-spgd-1_35.exe main.cpp /link /LIBPATH:./vc7-stlport
+ vc7-stlport\liblink_test-vc7-stlport-mt-spgd-1_35.exe
+
+########################################################
+#
+# section for liblink_test-vc7-stlport-mt-pgd-1_35.lib
+#
+########################################################
+vc7-stlport/liblink_test-vc7-stlport-mt-pgd-1_35/link_test.obj: link_test.cpp $(ALL_HEADER)
+ cl /c $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\..\ /DBOOST_REGEX_STATIC_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /RTC1 $(CXXFLAGS) -Y- -Fo./vc7-stlport/liblink_test-vc7-stlport-mt-pgd-1_35/ -Fdvc7-stlport/liblink_test-vc7-stlport-mt-pgd-1_35.pdb link_test.cpp
+
+liblink_test-vc7-stlport-mt-pgd-1_35_dir :
+ @if not exist "vc7-stlport\liblink_test-vc7-stlport-mt-pgd-1_35\$(NULL)" mkdir vc7-stlport\liblink_test-vc7-stlport-mt-pgd-1_35
+
+liblink_test-vc7-stlport-mt-pgd-1_35_clean :
+ del vc7-stlport\liblink_test-vc7-stlport-mt-pgd-1_35\*.obj
+ del vc7-stlport\liblink_test-vc7-stlport-mt-pgd-1_35\*.idb
+ del vc7-stlport\liblink_test-vc7-stlport-mt-pgd-1_35\*.exp
+ del vc7-stlport\liblink_test-vc7-stlport-mt-pgd-1_35\*.pch
+
+./vc7-stlport/liblink_test-vc7-stlport-mt-pgd-1_35.lib : vc7-stlport/liblink_test-vc7-stlport-mt-pgd-1_35/link_test.obj
+ link -lib /nologo /out:vc7-stlport/liblink_test-vc7-stlport-mt-pgd-1_35.lib $(XSFLAGS) vc7-stlport/liblink_test-vc7-stlport-mt-pgd-1_35/link_test.obj
+
+./vc7-stlport/liblink_test-vc7-stlport-mt-pgd-1_35.exe : main.cpp ./vc7-stlport/liblink_test-vc7-stlport-mt-pgd-1_35.lib
+ cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\..\ /DBOOST_REGEX_STATIC_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /RTC1 /DBOOST_LIB_DIAGNOSTIC=1 $(CXXFLAGS) -o ./vc7-stlport/liblink_test-vc7-stlport-mt-pgd-1_35.exe main.cpp /link /LIBPATH:./vc7-stlport
+ vc7-stlport\liblink_test-vc7-stlport-mt-pgd-1_35.exe
+
diff --git a/libs/config/test/link/vc7.mak b/libs/config/test/link/vc7.mak
new file mode 100644
index 0000000000..afae0c5715
--- /dev/null
+++ b/libs/config/test/link/vc7.mak
@@ -0,0 +1,260 @@
+# copyright John Maddock 2005
+# Use, modification and distribution are subject to the
+# Boost Software License, Version 1.0. (See accompanying file
+# LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+#
+# auto generated makefile for VC6 compiler
+#
+# usage:
+# make
+# brings libraries up to date
+# make install
+# brings libraries up to date and copies binaries to your VC6 /lib and /bin directories (recomended)
+#
+
+#
+# Add additional compiler options here:
+#
+CXXFLAGS=
+#
+# Add additional include directories here:
+#
+INCLUDES=
+#
+# add additional linker flags here:
+#
+XLFLAGS=
+#
+# add additional static-library creation flags here:
+#
+XSFLAGS=
+
+!IF "$(OS)" == "Windows_NT"
+NULL=
+!ELSE
+NULL=nul
+!ENDIF
+
+!IF "$(MSVCDIR)" == ""
+!ERROR Variable MSVCDIR not set.
+!ENDIF
+
+
+ALL_HEADER=
+
+all : main_dir liblink_test-vc7-s-1_35_dir ./vc7/liblink_test-vc7-s-1_35.lib ./vc7/liblink_test-vc7-s-1_35.exe liblink_test-vc7-mt-s-1_35_dir ./vc7/liblink_test-vc7-mt-s-1_35.lib ./vc7/liblink_test-vc7-mt-s-1_35.exe liblink_test-vc7-sgd-1_35_dir ./vc7/liblink_test-vc7-sgd-1_35.lib ./vc7/liblink_test-vc7-sgd-1_35.exe liblink_test-vc7-mt-sgd-1_35_dir ./vc7/liblink_test-vc7-mt-sgd-1_35.lib ./vc7/liblink_test-vc7-mt-sgd-1_35.exe link_test-vc7-mt-gd-1_35_dir ./vc7/link_test-vc7-mt-gd-1_35.lib ./vc7/link_test-vc7-mt-gd-1_35.exe link_test-vc7-mt-1_35_dir ./vc7/link_test-vc7-mt-1_35.lib ./vc7/link_test-vc7-mt-1_35.exe liblink_test-vc7-mt-1_35_dir ./vc7/liblink_test-vc7-mt-1_35.lib ./vc7/liblink_test-vc7-mt-1_35.exe liblink_test-vc7-mt-gd-1_35_dir ./vc7/liblink_test-vc7-mt-gd-1_35.lib ./vc7/liblink_test-vc7-mt-gd-1_35.exe
+
+clean : liblink_test-vc7-s-1_35_clean liblink_test-vc7-mt-s-1_35_clean liblink_test-vc7-sgd-1_35_clean liblink_test-vc7-mt-sgd-1_35_clean link_test-vc7-mt-gd-1_35_clean link_test-vc7-mt-1_35_clean liblink_test-vc7-mt-1_35_clean liblink_test-vc7-mt-gd-1_35_clean
+
+install : all
+ copy vc7\liblink_test-vc7-s-1_35.lib "$(MSVCDIR)\lib"
+ copy vc7\liblink_test-vc7-mt-s-1_35.lib "$(MSVCDIR)\lib"
+ copy vc7\liblink_test-vc7-sgd-1_35.lib "$(MSVCDIR)\lib"
+ copy vc7\liblink_test-vc7-sgd-1_35.pdb "$(MSVCDIR)\lib"
+ copy vc7\liblink_test-vc7-mt-sgd-1_35.lib "$(MSVCDIR)\lib"
+ copy vc7\liblink_test-vc7-mt-sgd-1_35.pdb "$(MSVCDIR)\lib"
+ copy vc7\link_test-vc7-mt-gd-1_35.lib "$(MSVCDIR)\lib"
+ copy vc7\link_test-vc7-mt-gd-1_35.dll "$(MSVCDIR)\bin"
+ copy vc7\link_test-vc7-mt-gd-1_35.pdb "$(MSVCDIR)\lib"
+ copy vc7\link_test-vc7-mt-1_35.lib "$(MSVCDIR)\lib"
+ copy vc7\link_test-vc7-mt-1_35.dll "$(MSVCDIR)\bin"
+ copy vc7\liblink_test-vc7-mt-1_35.lib "$(MSVCDIR)\lib"
+ copy vc7\liblink_test-vc7-mt-gd-1_35.lib "$(MSVCDIR)\lib"
+ copy vc7\liblink_test-vc7-mt-gd-1_35.pdb "$(MSVCDIR)\lib"
+
+main_dir :
+ @if not exist "vc7\$(NULL)" mkdir vc7
+
+
+########################################################
+#
+# section for liblink_test-vc7-s-1_35.lib
+#
+########################################################
+vc7/liblink_test-vc7-s-1_35/link_test.obj: link_test.cpp $(ALL_HEADER)
+ cl /c $(INCLUDES) /nologo /ML /W3 /GX /O2 /GB /GF /Gy /I..\..\..\..\ /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD $(CXXFLAGS) -Y- -Fo./vc7/liblink_test-vc7-s-1_35/ -Fdvc7/liblink_test-vc7-s-1_35.pdb link_test.cpp
+
+liblink_test-vc7-s-1_35_dir :
+ @if not exist "vc7\liblink_test-vc7-s-1_35\$(NULL)" mkdir vc7\liblink_test-vc7-s-1_35
+
+liblink_test-vc7-s-1_35_clean :
+ del vc7\liblink_test-vc7-s-1_35\*.obj
+ del vc7\liblink_test-vc7-s-1_35\*.idb
+ del vc7\liblink_test-vc7-s-1_35\*.exp
+ del vc7\liblink_test-vc7-s-1_35\*.pch
+
+./vc7/liblink_test-vc7-s-1_35.lib : vc7/liblink_test-vc7-s-1_35/link_test.obj
+ link -lib /nologo /out:vc7/liblink_test-vc7-s-1_35.lib $(XSFLAGS) vc7/liblink_test-vc7-s-1_35/link_test.obj
+
+./vc7/liblink_test-vc7-s-1_35.exe : main.cpp ./vc7/liblink_test-vc7-s-1_35.lib
+ cl $(INCLUDES) /nologo /ML /W3 /GX /O2 /GB /GF /Gy /I..\..\..\..\ /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD /DBOOST_LIB_DIAGNOSTIC=1 $(CXXFLAGS) -o ./vc7/liblink_test-vc7-s-1_35.exe main.cpp /link /LIBPATH:./vc7
+ vc7\liblink_test-vc7-s-1_35.exe
+
+########################################################
+#
+# section for liblink_test-vc7-mt-s-1_35.lib
+#
+########################################################
+vc7/liblink_test-vc7-mt-s-1_35/link_test.obj: link_test.cpp $(ALL_HEADER)
+ cl /c $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I..\..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD $(CXXFLAGS) -Y- -Fo./vc7/liblink_test-vc7-mt-s-1_35/ -Fdvc7/liblink_test-vc7-mt-s-1_35.pdb link_test.cpp
+
+liblink_test-vc7-mt-s-1_35_dir :
+ @if not exist "vc7\liblink_test-vc7-mt-s-1_35\$(NULL)" mkdir vc7\liblink_test-vc7-mt-s-1_35
+
+liblink_test-vc7-mt-s-1_35_clean :
+ del vc7\liblink_test-vc7-mt-s-1_35\*.obj
+ del vc7\liblink_test-vc7-mt-s-1_35\*.idb
+ del vc7\liblink_test-vc7-mt-s-1_35\*.exp
+ del vc7\liblink_test-vc7-mt-s-1_35\*.pch
+
+./vc7/liblink_test-vc7-mt-s-1_35.lib : vc7/liblink_test-vc7-mt-s-1_35/link_test.obj
+ link -lib /nologo /out:vc7/liblink_test-vc7-mt-s-1_35.lib $(XSFLAGS) vc7/liblink_test-vc7-mt-s-1_35/link_test.obj
+
+./vc7/liblink_test-vc7-mt-s-1_35.exe : main.cpp ./vc7/liblink_test-vc7-mt-s-1_35.lib
+ cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I..\..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD /DBOOST_LIB_DIAGNOSTIC=1 $(CXXFLAGS) -o ./vc7/liblink_test-vc7-mt-s-1_35.exe main.cpp /link /LIBPATH:./vc7
+ vc7\liblink_test-vc7-mt-s-1_35.exe
+
+########################################################
+#
+# section for liblink_test-vc7-sgd-1_35.lib
+#
+########################################################
+vc7/liblink_test-vc7-sgd-1_35/link_test.obj: link_test.cpp $(ALL_HEADER)
+ cl /c $(INCLUDES) /nologo /MLd /W3 /Gm /GX /Zi /Od /I..\..\..\..\ /DWIN32 /D_DEBUG /D_MBCS /D_LIB /FD /GX /RTC1 $(CXXFLAGS) -Y- -Fo./vc7/liblink_test-vc7-sgd-1_35/ -Fdvc7/liblink_test-vc7-sgd-1_35.pdb link_test.cpp
+
+liblink_test-vc7-sgd-1_35_dir :
+ @if not exist "vc7\liblink_test-vc7-sgd-1_35\$(NULL)" mkdir vc7\liblink_test-vc7-sgd-1_35
+
+liblink_test-vc7-sgd-1_35_clean :
+ del vc7\liblink_test-vc7-sgd-1_35\*.obj
+ del vc7\liblink_test-vc7-sgd-1_35\*.idb
+ del vc7\liblink_test-vc7-sgd-1_35\*.exp
+ del vc7\liblink_test-vc7-sgd-1_35\*.pch
+
+./vc7/liblink_test-vc7-sgd-1_35.lib : vc7/liblink_test-vc7-sgd-1_35/link_test.obj
+ link -lib /nologo /out:vc7/liblink_test-vc7-sgd-1_35.lib $(XSFLAGS) vc7/liblink_test-vc7-sgd-1_35/link_test.obj
+
+./vc7/liblink_test-vc7-sgd-1_35.exe : main.cpp ./vc7/liblink_test-vc7-sgd-1_35.lib
+ cl $(INCLUDES) /nologo /MLd /W3 /Gm /GX /Zi /Od /I..\..\..\..\ /DWIN32 /D_DEBUG /D_MBCS /D_LIB /FD /GX /RTC1 /DBOOST_LIB_DIAGNOSTIC=1 $(CXXFLAGS) -o ./vc7/liblink_test-vc7-sgd-1_35.exe main.cpp /link /LIBPATH:./vc7
+ vc7\liblink_test-vc7-sgd-1_35.exe
+
+########################################################
+#
+# section for liblink_test-vc7-mt-sgd-1_35.lib
+#
+########################################################
+vc7/liblink_test-vc7-mt-sgd-1_35/link_test.obj: link_test.cpp $(ALL_HEADER)
+ cl /c $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I..\..\..\..\ /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /FD /GX /RTC1 $(CXXFLAGS) -Y- -Fo./vc7/liblink_test-vc7-mt-sgd-1_35/ -Fdvc7/liblink_test-vc7-mt-sgd-1_35.pdb link_test.cpp
+
+liblink_test-vc7-mt-sgd-1_35_dir :
+ @if not exist "vc7\liblink_test-vc7-mt-sgd-1_35\$(NULL)" mkdir vc7\liblink_test-vc7-mt-sgd-1_35
+
+liblink_test-vc7-mt-sgd-1_35_clean :
+ del vc7\liblink_test-vc7-mt-sgd-1_35\*.obj
+ del vc7\liblink_test-vc7-mt-sgd-1_35\*.idb
+ del vc7\liblink_test-vc7-mt-sgd-1_35\*.exp
+ del vc7\liblink_test-vc7-mt-sgd-1_35\*.pch
+
+./vc7/liblink_test-vc7-mt-sgd-1_35.lib : vc7/liblink_test-vc7-mt-sgd-1_35/link_test.obj
+ link -lib /nologo /out:vc7/liblink_test-vc7-mt-sgd-1_35.lib $(XSFLAGS) vc7/liblink_test-vc7-mt-sgd-1_35/link_test.obj
+
+./vc7/liblink_test-vc7-mt-sgd-1_35.exe : main.cpp ./vc7/liblink_test-vc7-mt-sgd-1_35.lib
+ cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I..\..\..\..\ /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /FD /GX /RTC1 /DBOOST_LIB_DIAGNOSTIC=1 $(CXXFLAGS) -o ./vc7/liblink_test-vc7-mt-sgd-1_35.exe main.cpp /link /LIBPATH:./vc7
+ vc7\liblink_test-vc7-mt-sgd-1_35.exe
+
+########################################################
+#
+# section for link_test-vc7-mt-gd-1_35.lib
+#
+########################################################
+vc7/link_test-vc7-mt-gd-1_35/link_test.obj: link_test.cpp $(ALL_HEADER)
+ cl /c $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I..\..\..\..\ /D_DEBUG /DBOOST_DYN_LINK /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /RTC1 $(CXXFLAGS) -Y- -Fo./vc7/link_test-vc7-mt-gd-1_35/ -Fdvc7/link_test-vc7-mt-gd-1_35.pdb link_test.cpp
+
+link_test-vc7-mt-gd-1_35_dir :
+ @if not exist "vc7\link_test-vc7-mt-gd-1_35\$(NULL)" mkdir vc7\link_test-vc7-mt-gd-1_35
+
+link_test-vc7-mt-gd-1_35_clean :
+ del vc7\link_test-vc7-mt-gd-1_35\*.obj
+ del vc7\link_test-vc7-mt-gd-1_35\*.idb
+ del vc7\link_test-vc7-mt-gd-1_35\*.exp
+ del vc7\link_test-vc7-mt-gd-1_35\*.pch
+
+./vc7/link_test-vc7-mt-gd-1_35.lib : vc7/link_test-vc7-mt-gd-1_35/link_test.obj
+ link kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /incremental:yes /pdb:"vc7/link_test-vc7-mt-gd-1_35.pdb" /debug /machine:I386 /out:"vc7/link_test-vc7-mt-gd-1_35.dll" /implib:"vc7/link_test-vc7-mt-gd-1_35.lib" /LIBPATH:$(STLPORT_PATH)\lib $(XLFLAGS) vc7/link_test-vc7-mt-gd-1_35/link_test.obj
+
+./vc7/link_test-vc7-mt-gd-1_35.exe : main.cpp ./vc7/link_test-vc7-mt-gd-1_35.lib
+ cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I..\..\..\..\ /D_DEBUG /DBOOST_DYN_LINK /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /RTC1 /DBOOST_LIB_DIAGNOSTIC=1 $(CXXFLAGS) -o ./vc7/link_test-vc7-mt-gd-1_35.exe main.cpp /link /LIBPATH:./vc7
+ vc7\link_test-vc7-mt-gd-1_35.exe
+
+########################################################
+#
+# section for link_test-vc7-mt-1_35.lib
+#
+########################################################
+vc7/link_test-vc7-mt-1_35/link_test.obj: link_test.cpp $(ALL_HEADER)
+ cl /c $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I..\..\..\..\ /DBOOST_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD $(CXXFLAGS) -Y- -Fo./vc7/link_test-vc7-mt-1_35/ -Fdvc7/link_test-vc7-mt-1_35.pdb link_test.cpp
+
+link_test-vc7-mt-1_35_dir :
+ @if not exist "vc7\link_test-vc7-mt-1_35\$(NULL)" mkdir vc7\link_test-vc7-mt-1_35
+
+link_test-vc7-mt-1_35_clean :
+ del vc7\link_test-vc7-mt-1_35\*.obj
+ del vc7\link_test-vc7-mt-1_35\*.idb
+ del vc7\link_test-vc7-mt-1_35\*.exp
+ del vc7\link_test-vc7-mt-1_35\*.pch
+
+./vc7/link_test-vc7-mt-1_35.lib : vc7/link_test-vc7-mt-1_35/link_test.obj
+ link kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /incremental:yes /pdb:"vc7/link_test-vc7-mt-1_35.pdb" /debug /machine:I386 /out:"vc7/link_test-vc7-mt-1_35.dll" /implib:"vc7/link_test-vc7-mt-1_35.lib" /LIBPATH:$(STLPORT_PATH)\lib $(XLFLAGS) vc7/link_test-vc7-mt-1_35/link_test.obj
+
+./vc7/link_test-vc7-mt-1_35.exe : main.cpp ./vc7/link_test-vc7-mt-1_35.lib
+ cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I..\..\..\..\ /DBOOST_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /DBOOST_LIB_DIAGNOSTIC=1 $(CXXFLAGS) -o ./vc7/link_test-vc7-mt-1_35.exe main.cpp /link /LIBPATH:./vc7
+ vc7\link_test-vc7-mt-1_35.exe
+
+########################################################
+#
+# section for liblink_test-vc7-mt-1_35.lib
+#
+########################################################
+vc7/liblink_test-vc7-mt-1_35/link_test.obj: link_test.cpp $(ALL_HEADER)
+ cl /c $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I..\..\..\..\ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD $(CXXFLAGS) -Y- -Fo./vc7/liblink_test-vc7-mt-1_35/ -Fdvc7/liblink_test-vc7-mt-1_35.pdb link_test.cpp
+
+liblink_test-vc7-mt-1_35_dir :
+ @if not exist "vc7\liblink_test-vc7-mt-1_35\$(NULL)" mkdir vc7\liblink_test-vc7-mt-1_35
+
+liblink_test-vc7-mt-1_35_clean :
+ del vc7\liblink_test-vc7-mt-1_35\*.obj
+ del vc7\liblink_test-vc7-mt-1_35\*.idb
+ del vc7\liblink_test-vc7-mt-1_35\*.exp
+ del vc7\liblink_test-vc7-mt-1_35\*.pch
+
+./vc7/liblink_test-vc7-mt-1_35.lib : vc7/liblink_test-vc7-mt-1_35/link_test.obj
+ link -lib /nologo /out:vc7/liblink_test-vc7-mt-1_35.lib $(XSFLAGS) vc7/liblink_test-vc7-mt-1_35/link_test.obj
+
+./vc7/liblink_test-vc7-mt-1_35.exe : main.cpp ./vc7/liblink_test-vc7-mt-1_35.lib
+ cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I..\..\..\..\ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /DBOOST_LIB_DIAGNOSTIC=1 $(CXXFLAGS) -o ./vc7/liblink_test-vc7-mt-1_35.exe main.cpp /link /LIBPATH:./vc7
+ vc7\liblink_test-vc7-mt-1_35.exe
+
+########################################################
+#
+# section for liblink_test-vc7-mt-gd-1_35.lib
+#
+########################################################
+vc7/liblink_test-vc7-mt-gd-1_35/link_test.obj: link_test.cpp $(ALL_HEADER)
+ cl /c $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I..\..\..\..\ /DBOOST_REGEX_STATIC_LINK /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /RTC1 $(CXXFLAGS) -Y- -Fo./vc7/liblink_test-vc7-mt-gd-1_35/ -Fdvc7/liblink_test-vc7-mt-gd-1_35.pdb link_test.cpp
+
+liblink_test-vc7-mt-gd-1_35_dir :
+ @if not exist "vc7\liblink_test-vc7-mt-gd-1_35\$(NULL)" mkdir vc7\liblink_test-vc7-mt-gd-1_35
+
+liblink_test-vc7-mt-gd-1_35_clean :
+ del vc7\liblink_test-vc7-mt-gd-1_35\*.obj
+ del vc7\liblink_test-vc7-mt-gd-1_35\*.idb
+ del vc7\liblink_test-vc7-mt-gd-1_35\*.exp
+ del vc7\liblink_test-vc7-mt-gd-1_35\*.pch
+
+./vc7/liblink_test-vc7-mt-gd-1_35.lib : vc7/liblink_test-vc7-mt-gd-1_35/link_test.obj
+ link -lib /nologo /out:vc7/liblink_test-vc7-mt-gd-1_35.lib $(XSFLAGS) vc7/liblink_test-vc7-mt-gd-1_35/link_test.obj
+
+./vc7/liblink_test-vc7-mt-gd-1_35.exe : main.cpp ./vc7/liblink_test-vc7-mt-gd-1_35.lib
+ cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I..\..\..\..\ /DBOOST_REGEX_STATIC_LINK /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /RTC1 /DBOOST_LIB_DIAGNOSTIC=1 $(CXXFLAGS) -o ./vc7/liblink_test-vc7-mt-gd-1_35.exe main.cpp /link /LIBPATH:./vc7
+ vc7\liblink_test-vc7-mt-gd-1_35.exe
+
diff --git a/libs/config/test/link/vc71-stlport.mak b/libs/config/test/link/vc71-stlport.mak
new file mode 100644
index 0000000000..5725e4cd68
--- /dev/null
+++ b/libs/config/test/link/vc71-stlport.mak
@@ -0,0 +1,292 @@
+# copyright John Maddock 2005
+# Use, modification and distribution are subject to the
+# Boost Software License, Version 1.0. (See accompanying file
+# LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+#
+# auto generated makefile for VC6+STLPort
+#
+# usage:
+# make
+# brings libraries up to date
+# make install
+# brings libraries up to date and copies binaries to your VC6 /lib and /bin directories (recomended)
+#
+
+#
+# Add additional compiler options here:
+#
+CXXFLAGS=
+#
+# Add additional include directories here:
+#
+INCLUDES=
+#
+# add additional linker flags here:
+#
+XLFLAGS=
+#
+# add additional static-library creation flags here:
+#
+XSFLAGS=
+
+!IF "$(OS)" == "Windows_NT"
+NULL=
+!ELSE
+NULL=nul
+!ENDIF
+
+!IF "$(MSVCDIR)" == ""
+!ERROR Variable MSVCDIR not set.
+!ENDIF
+
+!IF "$(STLPORT_PATH)" == ""
+!ERROR Variable STLPORT_PATH not set.
+!ENDIF
+
+
+ALL_HEADER=
+
+all : main_dir liblink_test-vc71-stlport-mt-s-1_35_dir ./vc71-stlport/liblink_test-vc71-stlport-mt-s-1_35.lib ./vc71-stlport/liblink_test-vc71-stlport-mt-s-1_35.exe liblink_test-vc71-stlport-mt-sgd-1_35_dir ./vc71-stlport/liblink_test-vc71-stlport-mt-sgd-1_35.lib ./vc71-stlport/liblink_test-vc71-stlport-mt-sgd-1_35.exe link_test-vc71-stlport-mt-gd-1_35_dir ./vc71-stlport/link_test-vc71-stlport-mt-gd-1_35.lib ./vc71-stlport/link_test-vc71-stlport-mt-gd-1_35.exe link_test-vc71-stlport-mt-1_35_dir ./vc71-stlport/link_test-vc71-stlport-mt-1_35.lib ./vc71-stlport/link_test-vc71-stlport-mt-1_35.exe liblink_test-vc71-stlport-mt-1_35_dir ./vc71-stlport/liblink_test-vc71-stlport-mt-1_35.lib ./vc71-stlport/liblink_test-vc71-stlport-mt-1_35.exe liblink_test-vc71-stlport-mt-gd-1_35_dir ./vc71-stlport/liblink_test-vc71-stlport-mt-gd-1_35.lib ./vc71-stlport/liblink_test-vc71-stlport-mt-gd-1_35.exe link_test-vc71-stlport-mt-pgd-1_35_dir ./vc71-stlport/link_test-vc71-stlport-mt-pgd-1_35.lib ./vc71-stlport/link_test-vc71-stlport-mt-pgd-1_35.exe liblink_test-vc71-stlport-mt-spgd-1_35_dir ./vc71-stlport/liblink_test-vc71-stlport-mt-spgd-1_35.lib ./vc71-stlport/liblink_test-vc71-stlport-mt-spgd-1_35.exe liblink_test-vc71-stlport-mt-pgd-1_35_dir ./vc71-stlport/liblink_test-vc71-stlport-mt-pgd-1_35.lib ./vc71-stlport/liblink_test-vc71-stlport-mt-pgd-1_35.exe
+
+clean : liblink_test-vc71-stlport-mt-s-1_35_clean liblink_test-vc71-stlport-mt-sgd-1_35_clean link_test-vc71-stlport-mt-gd-1_35_clean link_test-vc71-stlport-mt-1_35_clean liblink_test-vc71-stlport-mt-1_35_clean liblink_test-vc71-stlport-mt-gd-1_35_clean link_test-vc71-stlport-mt-pgd-1_35_clean liblink_test-vc71-stlport-mt-spgd-1_35_clean liblink_test-vc71-stlport-mt-pgd-1_35_clean
+
+install : stlport_check all
+ copy vc71-stlport\liblink_test-vc71-stlport-mt-s-1_35.lib "$(MSVCDIR)\lib"
+ copy vc71-stlport\liblink_test-vc71-stlport-mt-sgd-1_35.lib "$(MSVCDIR)\lib"
+ copy vc71-stlport\link_test-vc71-stlport-mt-gd-1_35.lib "$(MSVCDIR)\lib"
+ copy vc71-stlport\link_test-vc71-stlport-mt-gd-1_35.dll "$(MSVCDIR)\bin"
+ copy vc71-stlport\link_test-vc71-stlport-mt-1_35.lib "$(MSVCDIR)\lib"
+ copy vc71-stlport\link_test-vc71-stlport-mt-1_35.dll "$(MSVCDIR)\bin"
+ copy vc71-stlport\liblink_test-vc71-stlport-mt-1_35.lib "$(MSVCDIR)\lib"
+ copy vc71-stlport\liblink_test-vc71-stlport-mt-gd-1_35.lib "$(MSVCDIR)\lib"
+ copy vc71-stlport\link_test-vc71-stlport-mt-pgd-1_35.lib "$(MSVCDIR)\lib"
+ copy vc71-stlport\link_test-vc71-stlport-mt-pgd-1_35.dll "$(MSVCDIR)\bin"
+ copy vc71-stlport\link_test-vc71-stlport-mt-pgd-1_35.pdb "$(MSVCDIR)\lib"
+ copy vc71-stlport\liblink_test-vc71-stlport-mt-spgd-1_35.lib "$(MSVCDIR)\lib"
+ copy vc71-stlport\liblink_test-vc71-stlport-mt-spgd-1_35.pdb "$(MSVCDIR)\lib"
+ copy vc71-stlport\liblink_test-vc71-stlport-mt-pgd-1_35.lib "$(MSVCDIR)\lib"
+ copy vc71-stlport\liblink_test-vc71-stlport-mt-pgd-1_35.pdb "$(MSVCDIR)\lib"
+
+main_dir :
+ @if not exist "vc71-stlport\$(NULL)" mkdir vc71-stlport
+
+stlport_check : $(STLPORT_PATH)\stlport\string
+ echo
+
+
+########################################################
+#
+# section for liblink_test-vc71-stlport-mt-s-1_35.lib
+#
+########################################################
+vc71-stlport/liblink_test-vc71-stlport-mt-s-1_35/link_test.obj: link_test.cpp $(ALL_HEADER)
+ cl /c $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I..\..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB $(CXXFLAGS) -Y- -Fo./vc71-stlport/liblink_test-vc71-stlport-mt-s-1_35/ -Fdvc71-stlport/liblink_test-vc71-stlport-mt-s-1_35.pdb link_test.cpp
+
+liblink_test-vc71-stlport-mt-s-1_35_dir :
+ @if not exist "vc71-stlport\liblink_test-vc71-stlport-mt-s-1_35\$(NULL)" mkdir vc71-stlport\liblink_test-vc71-stlport-mt-s-1_35
+
+liblink_test-vc71-stlport-mt-s-1_35_clean :
+ del vc71-stlport\liblink_test-vc71-stlport-mt-s-1_35\*.obj
+ del vc71-stlport\liblink_test-vc71-stlport-mt-s-1_35\*.idb
+ del vc71-stlport\liblink_test-vc71-stlport-mt-s-1_35\*.exp
+ del vc71-stlport\liblink_test-vc71-stlport-mt-s-1_35\*.pch
+
+./vc71-stlport/liblink_test-vc71-stlport-mt-s-1_35.lib : vc71-stlport/liblink_test-vc71-stlport-mt-s-1_35/link_test.obj
+ link -lib /nologo /out:vc71-stlport/liblink_test-vc71-stlport-mt-s-1_35.lib $(XSFLAGS) vc71-stlport/liblink_test-vc71-stlport-mt-s-1_35/link_test.obj
+
+./vc71-stlport/liblink_test-vc71-stlport-mt-s-1_35.exe : main.cpp ./vc71-stlport/liblink_test-vc71-stlport-mt-s-1_35.lib
+ cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I..\..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /DBOOST_LIB_DIAGNOSTIC=1 $(CXXFLAGS) -o ./vc71-stlport/liblink_test-vc71-stlport-mt-s-1_35.exe main.cpp /link /LIBPATH:./vc71-stlport
+ vc71-stlport\liblink_test-vc71-stlport-mt-s-1_35.exe
+
+########################################################
+#
+# section for liblink_test-vc71-stlport-mt-sgd-1_35.lib
+#
+########################################################
+vc71-stlport/liblink_test-vc71-stlport-mt-sgd-1_35/link_test.obj: link_test.cpp $(ALL_HEADER)
+ cl /c $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\..\ /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /GX /RTC1 $(CXXFLAGS) -Y- -Fo./vc71-stlport/liblink_test-vc71-stlport-mt-sgd-1_35/ -Fdvc71-stlport/liblink_test-vc71-stlport-mt-sgd-1_35.pdb link_test.cpp
+
+liblink_test-vc71-stlport-mt-sgd-1_35_dir :
+ @if not exist "vc71-stlport\liblink_test-vc71-stlport-mt-sgd-1_35\$(NULL)" mkdir vc71-stlport\liblink_test-vc71-stlport-mt-sgd-1_35
+
+liblink_test-vc71-stlport-mt-sgd-1_35_clean :
+ del vc71-stlport\liblink_test-vc71-stlport-mt-sgd-1_35\*.obj
+ del vc71-stlport\liblink_test-vc71-stlport-mt-sgd-1_35\*.idb
+ del vc71-stlport\liblink_test-vc71-stlport-mt-sgd-1_35\*.exp
+ del vc71-stlport\liblink_test-vc71-stlport-mt-sgd-1_35\*.pch
+
+./vc71-stlport/liblink_test-vc71-stlport-mt-sgd-1_35.lib : vc71-stlport/liblink_test-vc71-stlport-mt-sgd-1_35/link_test.obj
+ link -lib /nologo /out:vc71-stlport/liblink_test-vc71-stlport-mt-sgd-1_35.lib $(XSFLAGS) vc71-stlport/liblink_test-vc71-stlport-mt-sgd-1_35/link_test.obj
+
+./vc71-stlport/liblink_test-vc71-stlport-mt-sgd-1_35.exe : main.cpp ./vc71-stlport/liblink_test-vc71-stlport-mt-sgd-1_35.lib
+ cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\..\ /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /GX /RTC1 /DBOOST_LIB_DIAGNOSTIC=1 $(CXXFLAGS) -o ./vc71-stlport/liblink_test-vc71-stlport-mt-sgd-1_35.exe main.cpp /link /LIBPATH:./vc71-stlport
+ vc71-stlport\liblink_test-vc71-stlport-mt-sgd-1_35.exe
+
+########################################################
+#
+# section for link_test-vc71-stlport-mt-gd-1_35.lib
+#
+########################################################
+vc71-stlport/link_test-vc71-stlport-mt-gd-1_35/link_test.obj: link_test.cpp $(ALL_HEADER)
+ cl /c $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\..\ /DBOOST_DYN_LINK /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /RTC1 $(CXXFLAGS) -Y- -Fo./vc71-stlport/link_test-vc71-stlport-mt-gd-1_35/ -Fdvc71-stlport/link_test-vc71-stlport-mt-gd-1_35.pdb link_test.cpp
+
+link_test-vc71-stlport-mt-gd-1_35_dir :
+ @if not exist "vc71-stlport\link_test-vc71-stlport-mt-gd-1_35\$(NULL)" mkdir vc71-stlport\link_test-vc71-stlport-mt-gd-1_35
+
+link_test-vc71-stlport-mt-gd-1_35_clean :
+ del vc71-stlport\link_test-vc71-stlport-mt-gd-1_35\*.obj
+ del vc71-stlport\link_test-vc71-stlport-mt-gd-1_35\*.idb
+ del vc71-stlport\link_test-vc71-stlport-mt-gd-1_35\*.exp
+ del vc71-stlport\link_test-vc71-stlport-mt-gd-1_35\*.pch
+
+./vc71-stlport/link_test-vc71-stlport-mt-gd-1_35.lib : vc71-stlport/link_test-vc71-stlport-mt-gd-1_35/link_test.obj
+ link kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /incremental:yes /pdb:"vc71-stlport/link_test-vc71-stlport-mt-gd-1_35.pdb" /debug /machine:I386 /out:"vc71-stlport/link_test-vc71-stlport-mt-gd-1_35.dll" /implib:"vc71-stlport/link_test-vc71-stlport-mt-gd-1_35.lib" /LIBPATH:$(STLPORT_PATH)\lib $(XLFLAGS) vc71-stlport/link_test-vc71-stlport-mt-gd-1_35/link_test.obj
+
+./vc71-stlport/link_test-vc71-stlport-mt-gd-1_35.exe : main.cpp ./vc71-stlport/link_test-vc71-stlport-mt-gd-1_35.lib
+ cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\..\ /DBOOST_DYN_LINK /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /RTC1 /DBOOST_LIB_DIAGNOSTIC=1 $(CXXFLAGS) -o ./vc71-stlport/link_test-vc71-stlport-mt-gd-1_35.exe main.cpp /link /LIBPATH:./vc71-stlport
+ vc71-stlport\link_test-vc71-stlport-mt-gd-1_35.exe
+
+########################################################
+#
+# section for link_test-vc71-stlport-mt-1_35.lib
+#
+########################################################
+vc71-stlport/link_test-vc71-stlport-mt-1_35/link_test.obj: link_test.cpp $(ALL_HEADER)
+ cl /c $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /I$(STLPORT_PATH)\stlport /Gy /I..\..\..\..\ /DBOOST_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL $(CXXFLAGS) -Y- -Fo./vc71-stlport/link_test-vc71-stlport-mt-1_35/ -Fdvc71-stlport/link_test-vc71-stlport-mt-1_35.pdb link_test.cpp
+
+link_test-vc71-stlport-mt-1_35_dir :
+ @if not exist "vc71-stlport\link_test-vc71-stlport-mt-1_35\$(NULL)" mkdir vc71-stlport\link_test-vc71-stlport-mt-1_35
+
+link_test-vc71-stlport-mt-1_35_clean :
+ del vc71-stlport\link_test-vc71-stlport-mt-1_35\*.obj
+ del vc71-stlport\link_test-vc71-stlport-mt-1_35\*.idb
+ del vc71-stlport\link_test-vc71-stlport-mt-1_35\*.exp
+ del vc71-stlport\link_test-vc71-stlport-mt-1_35\*.pch
+
+./vc71-stlport/link_test-vc71-stlport-mt-1_35.lib : vc71-stlport/link_test-vc71-stlport-mt-1_35/link_test.obj
+ link kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /incremental:yes /pdb:"vc71-stlport/link_test-vc71-stlport-mt-1_35.pdb" /debug /machine:I386 /out:"vc71-stlport/link_test-vc71-stlport-mt-1_35.dll" /implib:"vc71-stlport/link_test-vc71-stlport-mt-1_35.lib" /LIBPATH:$(STLPORT_PATH)\lib $(XLFLAGS) vc71-stlport/link_test-vc71-stlport-mt-1_35/link_test.obj
+
+./vc71-stlport/link_test-vc71-stlport-mt-1_35.exe : main.cpp ./vc71-stlport/link_test-vc71-stlport-mt-1_35.lib
+ cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /I$(STLPORT_PATH)\stlport /Gy /I..\..\..\..\ /DBOOST_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /DBOOST_LIB_DIAGNOSTIC=1 $(CXXFLAGS) -o ./vc71-stlport/link_test-vc71-stlport-mt-1_35.exe main.cpp /link /LIBPATH:./vc71-stlport
+ vc71-stlport\link_test-vc71-stlport-mt-1_35.exe
+
+########################################################
+#
+# section for liblink_test-vc71-stlport-mt-1_35.lib
+#
+########################################################
+vc71-stlport/liblink_test-vc71-stlport-mt-1_35/link_test.obj: link_test.cpp $(ALL_HEADER)
+ cl /c $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I..\..\..\..\ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL $(CXXFLAGS) -Y- -Fo./vc71-stlport/liblink_test-vc71-stlport-mt-1_35/ -Fdvc71-stlport/liblink_test-vc71-stlport-mt-1_35.pdb link_test.cpp
+
+liblink_test-vc71-stlport-mt-1_35_dir :
+ @if not exist "vc71-stlport\liblink_test-vc71-stlport-mt-1_35\$(NULL)" mkdir vc71-stlport\liblink_test-vc71-stlport-mt-1_35
+
+liblink_test-vc71-stlport-mt-1_35_clean :
+ del vc71-stlport\liblink_test-vc71-stlport-mt-1_35\*.obj
+ del vc71-stlport\liblink_test-vc71-stlport-mt-1_35\*.idb
+ del vc71-stlport\liblink_test-vc71-stlport-mt-1_35\*.exp
+ del vc71-stlport\liblink_test-vc71-stlport-mt-1_35\*.pch
+
+./vc71-stlport/liblink_test-vc71-stlport-mt-1_35.lib : vc71-stlport/liblink_test-vc71-stlport-mt-1_35/link_test.obj
+ link -lib /nologo /out:vc71-stlport/liblink_test-vc71-stlport-mt-1_35.lib $(XSFLAGS) vc71-stlport/liblink_test-vc71-stlport-mt-1_35/link_test.obj
+
+./vc71-stlport/liblink_test-vc71-stlport-mt-1_35.exe : main.cpp ./vc71-stlport/liblink_test-vc71-stlport-mt-1_35.lib
+ cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I..\..\..\..\ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /DBOOST_LIB_DIAGNOSTIC=1 $(CXXFLAGS) -o ./vc71-stlport/liblink_test-vc71-stlport-mt-1_35.exe main.cpp /link /LIBPATH:./vc71-stlport
+ vc71-stlport\liblink_test-vc71-stlport-mt-1_35.exe
+
+########################################################
+#
+# section for liblink_test-vc71-stlport-mt-gd-1_35.lib
+#
+########################################################
+vc71-stlport/liblink_test-vc71-stlport-mt-gd-1_35/link_test.obj: link_test.cpp $(ALL_HEADER)
+ cl /c $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\..\ /DBOOST_REGEX_STATIC_LINK /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /RTC1 $(CXXFLAGS) -Y- -Fo./vc71-stlport/liblink_test-vc71-stlport-mt-gd-1_35/ -Fdvc71-stlport/liblink_test-vc71-stlport-mt-gd-1_35.pdb link_test.cpp
+
+liblink_test-vc71-stlport-mt-gd-1_35_dir :
+ @if not exist "vc71-stlport\liblink_test-vc71-stlport-mt-gd-1_35\$(NULL)" mkdir vc71-stlport\liblink_test-vc71-stlport-mt-gd-1_35
+
+liblink_test-vc71-stlport-mt-gd-1_35_clean :
+ del vc71-stlport\liblink_test-vc71-stlport-mt-gd-1_35\*.obj
+ del vc71-stlport\liblink_test-vc71-stlport-mt-gd-1_35\*.idb
+ del vc71-stlport\liblink_test-vc71-stlport-mt-gd-1_35\*.exp
+ del vc71-stlport\liblink_test-vc71-stlport-mt-gd-1_35\*.pch
+
+./vc71-stlport/liblink_test-vc71-stlport-mt-gd-1_35.lib : vc71-stlport/liblink_test-vc71-stlport-mt-gd-1_35/link_test.obj
+ link -lib /nologo /out:vc71-stlport/liblink_test-vc71-stlport-mt-gd-1_35.lib $(XSFLAGS) vc71-stlport/liblink_test-vc71-stlport-mt-gd-1_35/link_test.obj
+
+./vc71-stlport/liblink_test-vc71-stlport-mt-gd-1_35.exe : main.cpp ./vc71-stlport/liblink_test-vc71-stlport-mt-gd-1_35.lib
+ cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\..\ /DBOOST_REGEX_STATIC_LINK /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /RTC1 /DBOOST_LIB_DIAGNOSTIC=1 $(CXXFLAGS) -o ./vc71-stlport/liblink_test-vc71-stlport-mt-gd-1_35.exe main.cpp /link /LIBPATH:./vc71-stlport
+ vc71-stlport\liblink_test-vc71-stlport-mt-gd-1_35.exe
+
+########################################################
+#
+# section for link_test-vc71-stlport-mt-pgd-1_35.lib
+#
+########################################################
+vc71-stlport/link_test-vc71-stlport-mt-pgd-1_35/link_test.obj: link_test.cpp $(ALL_HEADER)
+ cl /c $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\..\ /DBOOST_DYN_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /RTC1 $(CXXFLAGS) -Y- -Fo./vc71-stlport/link_test-vc71-stlport-mt-pgd-1_35/ -Fdvc71-stlport/link_test-vc71-stlport-mt-pgd-1_35.pdb link_test.cpp
+
+link_test-vc71-stlport-mt-pgd-1_35_dir :
+ @if not exist "vc71-stlport\link_test-vc71-stlport-mt-pgd-1_35\$(NULL)" mkdir vc71-stlport\link_test-vc71-stlport-mt-pgd-1_35
+
+link_test-vc71-stlport-mt-pgd-1_35_clean :
+ del vc71-stlport\link_test-vc71-stlport-mt-pgd-1_35\*.obj
+ del vc71-stlport\link_test-vc71-stlport-mt-pgd-1_35\*.idb
+ del vc71-stlport\link_test-vc71-stlport-mt-pgd-1_35\*.exp
+ del vc71-stlport\link_test-vc71-stlport-mt-pgd-1_35\*.pch
+
+./vc71-stlport/link_test-vc71-stlport-mt-pgd-1_35.lib : vc71-stlport/link_test-vc71-stlport-mt-pgd-1_35/link_test.obj
+ link kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /incremental:yes /pdb:"vc71-stlport/link_test-vc71-stlport-mt-pgd-1_35.pdb" /debug /machine:I386 /out:"vc71-stlport/link_test-vc71-stlport-mt-pgd-1_35.dll" /implib:"vc71-stlport/link_test-vc71-stlport-mt-pgd-1_35.lib" /LIBPATH:$(STLPORT_PATH)\lib $(XLFLAGS) vc71-stlport/link_test-vc71-stlport-mt-pgd-1_35/link_test.obj
+
+./vc71-stlport/link_test-vc71-stlport-mt-pgd-1_35.exe : main.cpp ./vc71-stlport/link_test-vc71-stlport-mt-pgd-1_35.lib
+ cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\..\ /DBOOST_DYN_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /RTC1 /DBOOST_LIB_DIAGNOSTIC=1 $(CXXFLAGS) -o ./vc71-stlport/link_test-vc71-stlport-mt-pgd-1_35.exe main.cpp /link /LIBPATH:./vc71-stlport
+ vc71-stlport\link_test-vc71-stlport-mt-pgd-1_35.exe
+
+########################################################
+#
+# section for liblink_test-vc71-stlport-mt-spgd-1_35.lib
+#
+########################################################
+vc71-stlport/liblink_test-vc71-stlport-mt-spgd-1_35/link_test.obj: link_test.cpp $(ALL_HEADER)
+ cl /c $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\..\ /D__STL_DEBUG /D_STLP_DEBUG /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /GX /RTC1 $(CXXFLAGS) -Y- -Fo./vc71-stlport/liblink_test-vc71-stlport-mt-spgd-1_35/ -Fdvc71-stlport/liblink_test-vc71-stlport-mt-spgd-1_35.pdb link_test.cpp
+
+liblink_test-vc71-stlport-mt-spgd-1_35_dir :
+ @if not exist "vc71-stlport\liblink_test-vc71-stlport-mt-spgd-1_35\$(NULL)" mkdir vc71-stlport\liblink_test-vc71-stlport-mt-spgd-1_35
+
+liblink_test-vc71-stlport-mt-spgd-1_35_clean :
+ del vc71-stlport\liblink_test-vc71-stlport-mt-spgd-1_35\*.obj
+ del vc71-stlport\liblink_test-vc71-stlport-mt-spgd-1_35\*.idb
+ del vc71-stlport\liblink_test-vc71-stlport-mt-spgd-1_35\*.exp
+ del vc71-stlport\liblink_test-vc71-stlport-mt-spgd-1_35\*.pch
+
+./vc71-stlport/liblink_test-vc71-stlport-mt-spgd-1_35.lib : vc71-stlport/liblink_test-vc71-stlport-mt-spgd-1_35/link_test.obj
+ link -lib /nologo /out:vc71-stlport/liblink_test-vc71-stlport-mt-spgd-1_35.lib $(XSFLAGS) vc71-stlport/liblink_test-vc71-stlport-mt-spgd-1_35/link_test.obj
+
+./vc71-stlport/liblink_test-vc71-stlport-mt-spgd-1_35.exe : main.cpp ./vc71-stlport/liblink_test-vc71-stlport-mt-spgd-1_35.lib
+ cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\..\ /D__STL_DEBUG /D_STLP_DEBUG /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /GX /RTC1 /DBOOST_LIB_DIAGNOSTIC=1 $(CXXFLAGS) -o ./vc71-stlport/liblink_test-vc71-stlport-mt-spgd-1_35.exe main.cpp /link /LIBPATH:./vc71-stlport
+ vc71-stlport\liblink_test-vc71-stlport-mt-spgd-1_35.exe
+
+########################################################
+#
+# section for liblink_test-vc71-stlport-mt-pgd-1_35.lib
+#
+########################################################
+vc71-stlport/liblink_test-vc71-stlport-mt-pgd-1_35/link_test.obj: link_test.cpp $(ALL_HEADER)
+ cl /c $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\..\ /DBOOST_REGEX_STATIC_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /RTC1 $(CXXFLAGS) -Y- -Fo./vc71-stlport/liblink_test-vc71-stlport-mt-pgd-1_35/ -Fdvc71-stlport/liblink_test-vc71-stlport-mt-pgd-1_35.pdb link_test.cpp
+
+liblink_test-vc71-stlport-mt-pgd-1_35_dir :
+ @if not exist "vc71-stlport\liblink_test-vc71-stlport-mt-pgd-1_35\$(NULL)" mkdir vc71-stlport\liblink_test-vc71-stlport-mt-pgd-1_35
+
+liblink_test-vc71-stlport-mt-pgd-1_35_clean :
+ del vc71-stlport\liblink_test-vc71-stlport-mt-pgd-1_35\*.obj
+ del vc71-stlport\liblink_test-vc71-stlport-mt-pgd-1_35\*.idb
+ del vc71-stlport\liblink_test-vc71-stlport-mt-pgd-1_35\*.exp
+ del vc71-stlport\liblink_test-vc71-stlport-mt-pgd-1_35\*.pch
+
+./vc71-stlport/liblink_test-vc71-stlport-mt-pgd-1_35.lib : vc71-stlport/liblink_test-vc71-stlport-mt-pgd-1_35/link_test.obj
+ link -lib /nologo /out:vc71-stlport/liblink_test-vc71-stlport-mt-pgd-1_35.lib $(XSFLAGS) vc71-stlport/liblink_test-vc71-stlport-mt-pgd-1_35/link_test.obj
+
+./vc71-stlport/liblink_test-vc71-stlport-mt-pgd-1_35.exe : main.cpp ./vc71-stlport/liblink_test-vc71-stlport-mt-pgd-1_35.lib
+ cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\..\ /DBOOST_REGEX_STATIC_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /RTC1 /DBOOST_LIB_DIAGNOSTIC=1 $(CXXFLAGS) -o ./vc71-stlport/liblink_test-vc71-stlport-mt-pgd-1_35.exe main.cpp /link /LIBPATH:./vc71-stlport
+ vc71-stlport\liblink_test-vc71-stlport-mt-pgd-1_35.exe
+
diff --git a/libs/config/test/link/vc71.mak b/libs/config/test/link/vc71.mak
new file mode 100644
index 0000000000..8873946319
--- /dev/null
+++ b/libs/config/test/link/vc71.mak
@@ -0,0 +1,260 @@
+# copyright John Maddock 2005
+# Use, modification and distribution are subject to the
+# Boost Software License, Version 1.0. (See accompanying file
+# LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+#
+# auto generated makefile for VC6 compiler
+#
+# usage:
+# make
+# brings libraries up to date
+# make install
+# brings libraries up to date and copies binaries to your VC6 /lib and /bin directories (recomended)
+#
+
+#
+# Add additional compiler options here:
+#
+CXXFLAGS=
+#
+# Add additional include directories here:
+#
+INCLUDES=
+#
+# add additional linker flags here:
+#
+XLFLAGS=
+#
+# add additional static-library creation flags here:
+#
+XSFLAGS=
+
+!IF "$(OS)" == "Windows_NT"
+NULL=
+!ELSE
+NULL=nul
+!ENDIF
+
+!IF "$(MSVCDIR)" == ""
+!ERROR Variable MSVCDIR not set.
+!ENDIF
+
+
+ALL_HEADER=
+
+all : main_dir liblink_test-vc71-s-1_35_dir ./vc71/liblink_test-vc71-s-1_35.lib ./vc71/liblink_test-vc71-s-1_35.exe liblink_test-vc71-mt-s-1_35_dir ./vc71/liblink_test-vc71-mt-s-1_35.lib ./vc71/liblink_test-vc71-mt-s-1_35.exe liblink_test-vc71-sgd-1_35_dir ./vc71/liblink_test-vc71-sgd-1_35.lib ./vc71/liblink_test-vc71-sgd-1_35.exe liblink_test-vc71-mt-sgd-1_35_dir ./vc71/liblink_test-vc71-mt-sgd-1_35.lib ./vc71/liblink_test-vc71-mt-sgd-1_35.exe link_test-vc71-mt-gd-1_35_dir ./vc71/link_test-vc71-mt-gd-1_35.lib ./vc71/link_test-vc71-mt-gd-1_35.exe link_test-vc71-mt-1_35_dir ./vc71/link_test-vc71-mt-1_35.lib ./vc71/link_test-vc71-mt-1_35.exe liblink_test-vc71-mt-1_35_dir ./vc71/liblink_test-vc71-mt-1_35.lib ./vc71/liblink_test-vc71-mt-1_35.exe liblink_test-vc71-mt-gd-1_35_dir ./vc71/liblink_test-vc71-mt-gd-1_35.lib ./vc71/liblink_test-vc71-mt-gd-1_35.exe
+
+clean : liblink_test-vc71-s-1_35_clean liblink_test-vc71-mt-s-1_35_clean liblink_test-vc71-sgd-1_35_clean liblink_test-vc71-mt-sgd-1_35_clean link_test-vc71-mt-gd-1_35_clean link_test-vc71-mt-1_35_clean liblink_test-vc71-mt-1_35_clean liblink_test-vc71-mt-gd-1_35_clean
+
+install : all
+ copy vc71\liblink_test-vc71-s-1_35.lib "$(MSVCDIR)\lib"
+ copy vc71\liblink_test-vc71-mt-s-1_35.lib "$(MSVCDIR)\lib"
+ copy vc71\liblink_test-vc71-sgd-1_35.lib "$(MSVCDIR)\lib"
+ copy vc71\liblink_test-vc71-sgd-1_35.pdb "$(MSVCDIR)\lib"
+ copy vc71\liblink_test-vc71-mt-sgd-1_35.lib "$(MSVCDIR)\lib"
+ copy vc71\liblink_test-vc71-mt-sgd-1_35.pdb "$(MSVCDIR)\lib"
+ copy vc71\link_test-vc71-mt-gd-1_35.lib "$(MSVCDIR)\lib"
+ copy vc71\link_test-vc71-mt-gd-1_35.dll "$(MSVCDIR)\bin"
+ copy vc71\link_test-vc71-mt-gd-1_35.pdb "$(MSVCDIR)\lib"
+ copy vc71\link_test-vc71-mt-1_35.lib "$(MSVCDIR)\lib"
+ copy vc71\link_test-vc71-mt-1_35.dll "$(MSVCDIR)\bin"
+ copy vc71\liblink_test-vc71-mt-1_35.lib "$(MSVCDIR)\lib"
+ copy vc71\liblink_test-vc71-mt-gd-1_35.lib "$(MSVCDIR)\lib"
+ copy vc71\liblink_test-vc71-mt-gd-1_35.pdb "$(MSVCDIR)\lib"
+
+main_dir :
+ @if not exist "vc71\$(NULL)" mkdir vc71
+
+
+########################################################
+#
+# section for liblink_test-vc71-s-1_35.lib
+#
+########################################################
+vc71/liblink_test-vc71-s-1_35/link_test.obj: link_test.cpp $(ALL_HEADER)
+ cl /c $(INCLUDES) /nologo /ML /W3 /GX /O2 /GB /GF /Gy /I..\..\..\..\ /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD $(CXXFLAGS) -Y- -Fo./vc71/liblink_test-vc71-s-1_35/ -Fdvc71/liblink_test-vc71-s-1_35.pdb link_test.cpp
+
+liblink_test-vc71-s-1_35_dir :
+ @if not exist "vc71\liblink_test-vc71-s-1_35\$(NULL)" mkdir vc71\liblink_test-vc71-s-1_35
+
+liblink_test-vc71-s-1_35_clean :
+ del vc71\liblink_test-vc71-s-1_35\*.obj
+ del vc71\liblink_test-vc71-s-1_35\*.idb
+ del vc71\liblink_test-vc71-s-1_35\*.exp
+ del vc71\liblink_test-vc71-s-1_35\*.pch
+
+./vc71/liblink_test-vc71-s-1_35.lib : vc71/liblink_test-vc71-s-1_35/link_test.obj
+ link -lib /nologo /out:vc71/liblink_test-vc71-s-1_35.lib $(XSFLAGS) vc71/liblink_test-vc71-s-1_35/link_test.obj
+
+./vc71/liblink_test-vc71-s-1_35.exe : main.cpp ./vc71/liblink_test-vc71-s-1_35.lib
+ cl $(INCLUDES) /nologo /ML /W3 /GX /O2 /GB /GF /Gy /I..\..\..\..\ /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD /DBOOST_LIB_DIAGNOSTIC=1 $(CXXFLAGS) -o ./vc71/liblink_test-vc71-s-1_35.exe main.cpp /link /LIBPATH:./vc71
+ vc71\liblink_test-vc71-s-1_35.exe
+
+########################################################
+#
+# section for liblink_test-vc71-mt-s-1_35.lib
+#
+########################################################
+vc71/liblink_test-vc71-mt-s-1_35/link_test.obj: link_test.cpp $(ALL_HEADER)
+ cl /c $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I..\..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD $(CXXFLAGS) -Y- -Fo./vc71/liblink_test-vc71-mt-s-1_35/ -Fdvc71/liblink_test-vc71-mt-s-1_35.pdb link_test.cpp
+
+liblink_test-vc71-mt-s-1_35_dir :
+ @if not exist "vc71\liblink_test-vc71-mt-s-1_35\$(NULL)" mkdir vc71\liblink_test-vc71-mt-s-1_35
+
+liblink_test-vc71-mt-s-1_35_clean :
+ del vc71\liblink_test-vc71-mt-s-1_35\*.obj
+ del vc71\liblink_test-vc71-mt-s-1_35\*.idb
+ del vc71\liblink_test-vc71-mt-s-1_35\*.exp
+ del vc71\liblink_test-vc71-mt-s-1_35\*.pch
+
+./vc71/liblink_test-vc71-mt-s-1_35.lib : vc71/liblink_test-vc71-mt-s-1_35/link_test.obj
+ link -lib /nologo /out:vc71/liblink_test-vc71-mt-s-1_35.lib $(XSFLAGS) vc71/liblink_test-vc71-mt-s-1_35/link_test.obj
+
+./vc71/liblink_test-vc71-mt-s-1_35.exe : main.cpp ./vc71/liblink_test-vc71-mt-s-1_35.lib
+ cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I..\..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD /DBOOST_LIB_DIAGNOSTIC=1 $(CXXFLAGS) -o ./vc71/liblink_test-vc71-mt-s-1_35.exe main.cpp /link /LIBPATH:./vc71
+ vc71\liblink_test-vc71-mt-s-1_35.exe
+
+########################################################
+#
+# section for liblink_test-vc71-sgd-1_35.lib
+#
+########################################################
+vc71/liblink_test-vc71-sgd-1_35/link_test.obj: link_test.cpp $(ALL_HEADER)
+ cl /c $(INCLUDES) /nologo /MLd /W3 /Gm /GX /Zi /Od /I..\..\..\..\ /DWIN32 /D_DEBUG /D_MBCS /D_LIB /FD /GX /RTC1 $(CXXFLAGS) -Y- -Fo./vc71/liblink_test-vc71-sgd-1_35/ -Fdvc71/liblink_test-vc71-sgd-1_35.pdb link_test.cpp
+
+liblink_test-vc71-sgd-1_35_dir :
+ @if not exist "vc71\liblink_test-vc71-sgd-1_35\$(NULL)" mkdir vc71\liblink_test-vc71-sgd-1_35
+
+liblink_test-vc71-sgd-1_35_clean :
+ del vc71\liblink_test-vc71-sgd-1_35\*.obj
+ del vc71\liblink_test-vc71-sgd-1_35\*.idb
+ del vc71\liblink_test-vc71-sgd-1_35\*.exp
+ del vc71\liblink_test-vc71-sgd-1_35\*.pch
+
+./vc71/liblink_test-vc71-sgd-1_35.lib : vc71/liblink_test-vc71-sgd-1_35/link_test.obj
+ link -lib /nologo /out:vc71/liblink_test-vc71-sgd-1_35.lib $(XSFLAGS) vc71/liblink_test-vc71-sgd-1_35/link_test.obj
+
+./vc71/liblink_test-vc71-sgd-1_35.exe : main.cpp ./vc71/liblink_test-vc71-sgd-1_35.lib
+ cl $(INCLUDES) /nologo /MLd /W3 /Gm /GX /Zi /Od /I..\..\..\..\ /DWIN32 /D_DEBUG /D_MBCS /D_LIB /FD /GX /RTC1 /DBOOST_LIB_DIAGNOSTIC=1 $(CXXFLAGS) -o ./vc71/liblink_test-vc71-sgd-1_35.exe main.cpp /link /LIBPATH:./vc71
+ vc71\liblink_test-vc71-sgd-1_35.exe
+
+########################################################
+#
+# section for liblink_test-vc71-mt-sgd-1_35.lib
+#
+########################################################
+vc71/liblink_test-vc71-mt-sgd-1_35/link_test.obj: link_test.cpp $(ALL_HEADER)
+ cl /c $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I..\..\..\..\ /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /FD /GX /RTC1 $(CXXFLAGS) -Y- -Fo./vc71/liblink_test-vc71-mt-sgd-1_35/ -Fdvc71/liblink_test-vc71-mt-sgd-1_35.pdb link_test.cpp
+
+liblink_test-vc71-mt-sgd-1_35_dir :
+ @if not exist "vc71\liblink_test-vc71-mt-sgd-1_35\$(NULL)" mkdir vc71\liblink_test-vc71-mt-sgd-1_35
+
+liblink_test-vc71-mt-sgd-1_35_clean :
+ del vc71\liblink_test-vc71-mt-sgd-1_35\*.obj
+ del vc71\liblink_test-vc71-mt-sgd-1_35\*.idb
+ del vc71\liblink_test-vc71-mt-sgd-1_35\*.exp
+ del vc71\liblink_test-vc71-mt-sgd-1_35\*.pch
+
+./vc71/liblink_test-vc71-mt-sgd-1_35.lib : vc71/liblink_test-vc71-mt-sgd-1_35/link_test.obj
+ link -lib /nologo /out:vc71/liblink_test-vc71-mt-sgd-1_35.lib $(XSFLAGS) vc71/liblink_test-vc71-mt-sgd-1_35/link_test.obj
+
+./vc71/liblink_test-vc71-mt-sgd-1_35.exe : main.cpp ./vc71/liblink_test-vc71-mt-sgd-1_35.lib
+ cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I..\..\..\..\ /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /FD /GX /RTC1 /DBOOST_LIB_DIAGNOSTIC=1 $(CXXFLAGS) -o ./vc71/liblink_test-vc71-mt-sgd-1_35.exe main.cpp /link /LIBPATH:./vc71
+ vc71\liblink_test-vc71-mt-sgd-1_35.exe
+
+########################################################
+#
+# section for link_test-vc71-mt-gd-1_35.lib
+#
+########################################################
+vc71/link_test-vc71-mt-gd-1_35/link_test.obj: link_test.cpp $(ALL_HEADER)
+ cl /c $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I..\..\..\..\ /D_DEBUG /DBOOST_DYN_LINK /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /RTC1 $(CXXFLAGS) -Y- -Fo./vc71/link_test-vc71-mt-gd-1_35/ -Fdvc71/link_test-vc71-mt-gd-1_35.pdb link_test.cpp
+
+link_test-vc71-mt-gd-1_35_dir :
+ @if not exist "vc71\link_test-vc71-mt-gd-1_35\$(NULL)" mkdir vc71\link_test-vc71-mt-gd-1_35
+
+link_test-vc71-mt-gd-1_35_clean :
+ del vc71\link_test-vc71-mt-gd-1_35\*.obj
+ del vc71\link_test-vc71-mt-gd-1_35\*.idb
+ del vc71\link_test-vc71-mt-gd-1_35\*.exp
+ del vc71\link_test-vc71-mt-gd-1_35\*.pch
+
+./vc71/link_test-vc71-mt-gd-1_35.lib : vc71/link_test-vc71-mt-gd-1_35/link_test.obj
+ link kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /incremental:yes /pdb:"vc71/link_test-vc71-mt-gd-1_35.pdb" /debug /machine:I386 /out:"vc71/link_test-vc71-mt-gd-1_35.dll" /implib:"vc71/link_test-vc71-mt-gd-1_35.lib" /LIBPATH:$(STLPORT_PATH)\lib $(XLFLAGS) vc71/link_test-vc71-mt-gd-1_35/link_test.obj
+
+./vc71/link_test-vc71-mt-gd-1_35.exe : main.cpp ./vc71/link_test-vc71-mt-gd-1_35.lib
+ cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I..\..\..\..\ /D_DEBUG /DBOOST_DYN_LINK /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /RTC1 /DBOOST_LIB_DIAGNOSTIC=1 $(CXXFLAGS) -o ./vc71/link_test-vc71-mt-gd-1_35.exe main.cpp /link /LIBPATH:./vc71
+ vc71\link_test-vc71-mt-gd-1_35.exe
+
+########################################################
+#
+# section for link_test-vc71-mt-1_35.lib
+#
+########################################################
+vc71/link_test-vc71-mt-1_35/link_test.obj: link_test.cpp $(ALL_HEADER)
+ cl /c $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I..\..\..\..\ /DBOOST_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD $(CXXFLAGS) -Y- -Fo./vc71/link_test-vc71-mt-1_35/ -Fdvc71/link_test-vc71-mt-1_35.pdb link_test.cpp
+
+link_test-vc71-mt-1_35_dir :
+ @if not exist "vc71\link_test-vc71-mt-1_35\$(NULL)" mkdir vc71\link_test-vc71-mt-1_35
+
+link_test-vc71-mt-1_35_clean :
+ del vc71\link_test-vc71-mt-1_35\*.obj
+ del vc71\link_test-vc71-mt-1_35\*.idb
+ del vc71\link_test-vc71-mt-1_35\*.exp
+ del vc71\link_test-vc71-mt-1_35\*.pch
+
+./vc71/link_test-vc71-mt-1_35.lib : vc71/link_test-vc71-mt-1_35/link_test.obj
+ link kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /incremental:yes /pdb:"vc71/link_test-vc71-mt-1_35.pdb" /debug /machine:I386 /out:"vc71/link_test-vc71-mt-1_35.dll" /implib:"vc71/link_test-vc71-mt-1_35.lib" /LIBPATH:$(STLPORT_PATH)\lib $(XLFLAGS) vc71/link_test-vc71-mt-1_35/link_test.obj
+
+./vc71/link_test-vc71-mt-1_35.exe : main.cpp ./vc71/link_test-vc71-mt-1_35.lib
+ cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I..\..\..\..\ /DBOOST_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /DBOOST_LIB_DIAGNOSTIC=1 $(CXXFLAGS) -o ./vc71/link_test-vc71-mt-1_35.exe main.cpp /link /LIBPATH:./vc71
+ vc71\link_test-vc71-mt-1_35.exe
+
+########################################################
+#
+# section for liblink_test-vc71-mt-1_35.lib
+#
+########################################################
+vc71/liblink_test-vc71-mt-1_35/link_test.obj: link_test.cpp $(ALL_HEADER)
+ cl /c $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I..\..\..\..\ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD $(CXXFLAGS) -Y- -Fo./vc71/liblink_test-vc71-mt-1_35/ -Fdvc71/liblink_test-vc71-mt-1_35.pdb link_test.cpp
+
+liblink_test-vc71-mt-1_35_dir :
+ @if not exist "vc71\liblink_test-vc71-mt-1_35\$(NULL)" mkdir vc71\liblink_test-vc71-mt-1_35
+
+liblink_test-vc71-mt-1_35_clean :
+ del vc71\liblink_test-vc71-mt-1_35\*.obj
+ del vc71\liblink_test-vc71-mt-1_35\*.idb
+ del vc71\liblink_test-vc71-mt-1_35\*.exp
+ del vc71\liblink_test-vc71-mt-1_35\*.pch
+
+./vc71/liblink_test-vc71-mt-1_35.lib : vc71/liblink_test-vc71-mt-1_35/link_test.obj
+ link -lib /nologo /out:vc71/liblink_test-vc71-mt-1_35.lib $(XSFLAGS) vc71/liblink_test-vc71-mt-1_35/link_test.obj
+
+./vc71/liblink_test-vc71-mt-1_35.exe : main.cpp ./vc71/liblink_test-vc71-mt-1_35.lib
+ cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I..\..\..\..\ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /DBOOST_LIB_DIAGNOSTIC=1 $(CXXFLAGS) -o ./vc71/liblink_test-vc71-mt-1_35.exe main.cpp /link /LIBPATH:./vc71
+ vc71\liblink_test-vc71-mt-1_35.exe
+
+########################################################
+#
+# section for liblink_test-vc71-mt-gd-1_35.lib
+#
+########################################################
+vc71/liblink_test-vc71-mt-gd-1_35/link_test.obj: link_test.cpp $(ALL_HEADER)
+ cl /c $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I..\..\..\..\ /DBOOST_REGEX_STATIC_LINK /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /RTC1 $(CXXFLAGS) -Y- -Fo./vc71/liblink_test-vc71-mt-gd-1_35/ -Fdvc71/liblink_test-vc71-mt-gd-1_35.pdb link_test.cpp
+
+liblink_test-vc71-mt-gd-1_35_dir :
+ @if not exist "vc71\liblink_test-vc71-mt-gd-1_35\$(NULL)" mkdir vc71\liblink_test-vc71-mt-gd-1_35
+
+liblink_test-vc71-mt-gd-1_35_clean :
+ del vc71\liblink_test-vc71-mt-gd-1_35\*.obj
+ del vc71\liblink_test-vc71-mt-gd-1_35\*.idb
+ del vc71\liblink_test-vc71-mt-gd-1_35\*.exp
+ del vc71\liblink_test-vc71-mt-gd-1_35\*.pch
+
+./vc71/liblink_test-vc71-mt-gd-1_35.lib : vc71/liblink_test-vc71-mt-gd-1_35/link_test.obj
+ link -lib /nologo /out:vc71/liblink_test-vc71-mt-gd-1_35.lib $(XSFLAGS) vc71/liblink_test-vc71-mt-gd-1_35/link_test.obj
+
+./vc71/liblink_test-vc71-mt-gd-1_35.exe : main.cpp ./vc71/liblink_test-vc71-mt-gd-1_35.lib
+ cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I..\..\..\..\ /DBOOST_REGEX_STATIC_LINK /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /RTC1 /DBOOST_LIB_DIAGNOSTIC=1 $(CXXFLAGS) -o ./vc71/liblink_test-vc71-mt-gd-1_35.exe main.cpp /link /LIBPATH:./vc71
+ vc71\liblink_test-vc71-mt-gd-1_35.exe
+
diff --git a/libs/config/test/link/vc_gen.sh b/libs/config/test/link/vc_gen.sh
new file mode 100644
index 0000000000..1ba46f3bc0
--- /dev/null
+++ b/libs/config/test/link/vc_gen.sh
@@ -0,0 +1,424 @@
+#! /bin/bash
+# copyright John Maddock 2005
+# Use, modification and distribution are subject to the
+# Boost Software License, Version 1.0. (See accompanying file
+# LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+libname=""
+src=""
+header=""
+all_dep=""
+
+# current makefile:
+out=""
+# temporary file:
+tout=""
+# install target temp file:
+iout=""
+# debug flag:
+debug="no"
+# compile options:
+opts=""
+# main output sub-directory:
+subdir=""
+# extra debug /RTc options:
+debug_extra=""
+
+function vc6_gen_lib()
+{
+ all_dep="$all_dep $libname""_dir ./$subdir/$libname.lib ./$subdir/$libname.exe"
+ echo " copy $subdir\\$libname.lib "'"$'"(MSVCDIR)\\lib"'"' >> $iout
+ if test $debug == "yes"; then
+ echo " copy $subdir\\$libname.pdb "'"$'"(MSVCDIR)\\lib"'"' >> $iout
+ fi
+#
+# set up section comments:
+ cat >> $tout << EOF
+########################################################
+#
+# section for $libname.lib
+#
+########################################################
+EOF
+#
+# process source files:
+ all_obj=""
+ for file in $src
+ do
+ obj=`echo "$file" | sed 's/\(.*\)cpp/\1obj/g'`
+ obj="$subdir/$libname/$obj"
+ all_obj="$all_obj $obj"
+ echo "$obj: $file \$(ALL_HEADER)" >> $tout
+ echo " cl /c \$(INCLUDES) $opts \$(CXXFLAGS) -Y- -Fo./$subdir/$libname/ -Fd$subdir/$libname.pdb $file" >> $tout
+ echo "" >> $tout
+ done
+#
+# now for the directories for this library:
+ echo "$libname"_dir : >> $tout
+ echo " @if not exist \"$subdir\\$libname\\\$(NULL)\" mkdir $subdir\\$libname" >> $tout
+ echo "" >> $tout
+#
+# now for the clean options for this library:
+ all_clean="$all_clean $libname""_clean"
+ echo "$libname"_clean : >> $tout
+ echo " del $subdir\\$libname\\"'*.obj' >> $tout
+ echo " del $subdir\\$libname\\"'*.idb' >> $tout
+ echo " del $subdir\\$libname\\"'*.exp' >> $tout
+ echo " del $subdir\\$libname\\"'*.pch' >> $tout
+ echo "" >> $tout
+#
+# now for the main target for this library:
+ echo ./$subdir/$libname.lib : $all_obj >> $tout
+ echo " link -lib /nologo /out:$subdir/$libname.lib \$(XSFLAGS) $all_obj" >> $tout
+ echo "" >> $tout
+# now the test program:
+ echo ./$subdir/$libname.exe : main.cpp ./$subdir/$libname.lib >> $tout
+ echo " cl \$(INCLUDES) $opts /DBOOST_LIB_DIAGNOSTIC=1 \$(CXXFLAGS) -o ./$subdir/$libname.exe main.cpp /link /LIBPATH:./$subdir" >> $tout
+ echo " $subdir"'\'"$libname.exe" >> $tout
+ echo "" >> $tout
+}
+
+function vc6_gen_dll()
+{
+ all_dep="$all_dep $libname""_dir ./$subdir/$libname.lib ./$subdir/$libname.exe"
+ echo " copy $subdir\\$libname.lib "'"$'"(MSVCDIR)\\lib"'"' >> $iout
+ echo " copy $subdir\\$libname.dll "'"$'"(MSVCDIR)\\bin"'"' >> $iout
+ if test $debug == "yes"; then
+ echo " copy $subdir\\$libname.pdb "'"$'"(MSVCDIR)\\lib"'"' >> $iout
+ fi
+#
+# set up section comments:
+ cat >> $tout << EOF
+########################################################
+#
+# section for $libname.lib
+#
+########################################################
+EOF
+#
+# process source files:
+ all_obj=""
+ for file in $src
+ do
+ obj=`echo "$file" | sed 's/\(.*\)cpp/\1obj/g'`
+ obj="$subdir/$libname/$obj"
+ all_obj="$all_obj $obj"
+ echo "$obj: $file \$(ALL_HEADER)" >> $tout
+ echo " cl /c \$(INCLUDES) $opts \$(CXXFLAGS) -Y- -Fo./$subdir/$libname/ -Fd$subdir/$libname.pdb $file" >> $tout
+ echo "" >> $tout
+ done
+#
+# now for the directories for this library:
+ echo "$libname"_dir : >> $tout
+ echo " @if not exist \"$subdir\\$libname\\\$(NULL)\" mkdir $subdir\\$libname" >> $tout
+ echo "" >> $tout
+#
+# now for the clean options for this library:
+ all_clean="$all_clean $libname""_clean"
+ echo "$libname"_clean : >> $tout
+ echo " del $subdir\\$libname\\"'*.obj' >> $tout
+ echo " del $subdir\\$libname\\"'*.idb' >> $tout
+ echo " del $subdir\\$libname\\"'*.exp' >> $tout
+ echo " del $subdir\\$libname\\"'*.pch' >> $tout
+ echo "" >> $tout
+#
+# now for the main target for this library:
+ echo ./$subdir/$libname.lib : $all_obj >> $tout
+ echo " link kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /incremental:yes /pdb:\"$subdir/$libname.pdb\" /debug /machine:I386 /out:\"$subdir/$libname.dll\" /implib:\"$subdir/$libname.lib\" /LIBPATH:\$(STLPORT_PATH)\\lib \$(XLFLAGS) $all_obj" >> $tout
+ echo "" >> $tout
+# now the test program:
+ echo ./$subdir/$libname.exe : main.cpp ./$subdir/$libname.lib >> $tout
+ echo " cl \$(INCLUDES) $opts /DBOOST_LIB_DIAGNOSTIC=1 \$(CXXFLAGS) -o ./$subdir/$libname.exe main.cpp /link /LIBPATH:./$subdir" >> $tout
+ echo " $subdir"'\'"$libname.exe" >> $tout
+ echo "" >> $tout
+}
+
+is_stlport="no"
+
+function vc6_gen()
+{
+ debug="no"
+ tout="temp"
+ iout="temp_install"
+ all_dep="main_dir"
+ all_clean=""
+ echo > $out
+ echo > $tout
+ rm -f $iout
+
+ libname="liblink_test-${subdir}-s-${boost_version}"
+ opts='/nologo /ML /W3 /GX /O2 /GB /GF /Gy /I..\..\..\..\ /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD'
+ vc6_gen_lib
+
+ libname="liblink_test-${subdir}-mt-s-${boost_version}"
+ opts='/nologo /MT /W3 /GX /O2 /GB /GF /Gy /I..\..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD '
+ vc6_gen_lib
+
+ debug="yes"
+ libname="liblink_test-${subdir}-sgd-${boost_version}"
+ opts='/nologo /MLd /W3 /Gm /GX /Zi /Od /I..\..\..\..\ /DWIN32 /D_DEBUG /D_MBCS /D_LIB /FD '"$debug_extra"' '
+ vc6_gen_lib
+
+ libname="liblink_test-${subdir}-mt-sgd-${boost_version}"
+ opts='/nologo /MTd /W3 /Gm /GX /Zi /Od /I..\..\..\..\ /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /FD '"$debug_extra"' '
+ vc6_gen_lib
+
+ libname="link_test-${subdir}-mt-gd-${boost_version}"
+ opts='/nologo /MDd /W3 /Gm /GX /Zi /Od /I..\..\..\..\ /D_DEBUG /DBOOST_DYN_LINK /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD '"$debug_extra"' '
+ vc6_gen_dll
+
+ debug="no"
+ opts='/nologo /MD /W3 /GX /O2 /GB /GF /Gy /I..\..\..\..\ /DBOOST_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD '
+ libname="link_test-${subdir}-mt-${boost_version}"
+ vc6_gen_dll
+
+ debug="no"
+ opts='/nologo /MD /W3 /GX /O2 /GB /GF /Gy /I..\..\..\..\ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD '
+ libname="liblink_test-${subdir}-mt-${boost_version}"
+ vc6_gen_lib
+
+ debug="yes"
+ libname="liblink_test-${subdir}-mt-gd-${boost_version}"
+ opts='/nologo /MDd /W3 /Gm /GX /Zi /Od /I..\..\..\..\ /DBOOST_REGEX_STATIC_LINK /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD '"$debug_extra"' '
+ vc6_gen_lib
+
+ cat > $out << EOF
+# copyright John Maddock 2005
+# Use, modification and distribution are subject to the
+# Boost Software License, Version 1.0. (See accompanying file
+# LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+#
+# auto generated makefile for VC6 compiler
+#
+# usage:
+# make
+# brings libraries up to date
+# make install
+# brings libraries up to date and copies binaries to your VC6 /lib and /bin directories (recomended)
+#
+
+#
+# Add additional compiler options here:
+#
+CXXFLAGS=
+#
+# Add additional include directories here:
+#
+INCLUDES=
+#
+# add additional linker flags here:
+#
+XLFLAGS=
+#
+# add additional static-library creation flags here:
+#
+XSFLAGS=
+
+!IF "\$(OS)" == "Windows_NT"
+NULL=
+!ELSE
+NULL=nul
+!ENDIF
+
+!IF "\$(MSVCDIR)" == ""
+!ERROR Variable MSVCDIR not set.
+!ENDIF
+
+EOF
+ echo "" >> $out
+ echo "ALL_HEADER=$header" >> $out
+ echo "" >> $out
+ echo "all : $all_dep" >> $out
+ echo >> $out
+ echo "clean : $all_clean" >> $out
+ echo >> $out
+ echo "install : all" >> $out
+ cat $iout >> $out
+ echo >> $out
+ echo main_dir : >> $out
+ echo " @if not exist \"$subdir\\\$(NULL)\" mkdir $subdir" >> $out
+ echo "" >> $out
+
+ cat $tout >> $out
+}
+
+function vc6_stlp_gen()
+{
+ debug="no"
+ tout="temp"
+ iout="temp_install"
+ all_dep="main_dir"
+ all_clean=""
+ echo > $out
+ echo > $tout
+ rm -f $iout
+
+ libname="liblink_test-${subdir}-mt-s-${boost_version}"
+ opts='/nologo /MT /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I..\..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB '
+ vc6_gen_lib
+
+ debug="true"
+ libname="liblink_test-${subdir}-mt-sgd-${boost_version}"
+ opts='/nologo /MTd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\..\ /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB '"$debug_extra"' '
+ vc6_gen_lib
+
+ libname="link_test-${subdir}-mt-gd-${boost_version}"
+ opts='/nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\..\ /DBOOST_DYN_LINK /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL '"$debug_extra"' '
+ vc6_gen_dll
+
+ debug="no"
+ opts='/nologo /MD /W3 /GX /O2 /GB /GF /I$(STLPORT_PATH)\stlport /Gy /I..\..\..\..\ /DBOOST_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL '
+ libname="link_test-${subdir}-mt-${boost_version}"
+ vc6_gen_dll
+
+ debug="no"
+ opts='/nologo /MD /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I..\..\..\..\ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL '
+ libname="liblink_test-${subdir}-mt-${boost_version}"
+ vc6_gen_lib
+
+ debug="true"
+ libname="liblink_test-${subdir}-mt-gd-${boost_version}"
+ opts='/nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\..\ /DBOOST_REGEX_STATIC_LINK /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL '"$debug_extra"' '
+ vc6_gen_lib
+
+# debug STLPort mode:
+# not yet supported by bjam?
+ debug="yes"
+ opts='/nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\..\ /DBOOST_DYN_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL '"$debug_extra"' '
+ libname="link_test-${subdir}-mt-pgd-${boost_version}"
+ vc6_gen_dll
+ libname="liblink_test-${subdir}-mt-spgd-${boost_version}"
+ opts='/nologo /MTd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\..\ /D__STL_DEBUG /D_STLP_DEBUG /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB '"$debug_extra"' '
+ vc6_gen_lib
+ opts='/nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\..\ /DBOOST_REGEX_STATIC_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL '"$debug_extra"' '
+ libname="liblink_test-${subdir}-mt-pgd-${boost_version}"
+ vc6_gen_lib
+
+ cat > $out << EOF
+# copyright John Maddock 2005
+# Use, modification and distribution are subject to the
+# Boost Software License, Version 1.0. (See accompanying file
+# LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+#
+# auto generated makefile for VC6+STLPort
+#
+# usage:
+# make
+# brings libraries up to date
+# make install
+# brings libraries up to date and copies binaries to your VC6 /lib and /bin directories (recomended)
+#
+
+#
+# Add additional compiler options here:
+#
+CXXFLAGS=
+#
+# Add additional include directories here:
+#
+INCLUDES=
+#
+# add additional linker flags here:
+#
+XLFLAGS=
+#
+# add additional static-library creation flags here:
+#
+XSFLAGS=
+
+!IF "\$(OS)" == "Windows_NT"
+NULL=
+!ELSE
+NULL=nul
+!ENDIF
+
+!IF "\$(MSVCDIR)" == ""
+!ERROR Variable MSVCDIR not set.
+!ENDIF
+
+!IF "\$(STLPORT_PATH)" == ""
+!ERROR Variable STLPORT_PATH not set.
+!ENDIF
+
+EOF
+ echo "" >> $out
+ echo "ALL_HEADER=$header" >> $out
+ echo "" >> $out
+ echo "all : $all_dep" >> $out
+ echo >> $out
+ echo "clean : $all_clean" >> $out
+ echo >> $out
+ echo "install : stlport_check all" >> $out
+ cat $iout >> $out
+ echo >> $out
+ echo main_dir : >> $out
+ echo " @if not exist \"$subdir\\\$(NULL)\" mkdir $subdir" >> $out
+ echo "" >> $out
+ echo 'stlport_check : $(STLPORT_PATH)\stlport\string' >> $out
+ echo " echo" >> $out
+ echo "" >> $out
+
+ cat $tout >> $out
+}
+
+
+. common.sh
+
+#
+# generate vc6 makefile:
+debug_extra="/GX"
+out="vc6.mak"
+subdir="vc6"
+vc6_gen
+#
+# generate vc6-stlport makefile:
+is_stlport="yes"
+out="vc6-stlport.mak"
+no_single="yes"
+subdir="vc6-stlport"
+vc6_stlp_gen
+#
+# generate vc7 makefile:
+debug_extra="/GX /RTC1"
+is_stlport="no"
+out="vc7.mak"
+no_single="no"
+subdir="vc7"
+vc6_gen
+#
+# generate vc7-stlport makefile:
+is_stlport="yes"
+out="vc7-stlport.mak"
+no_single="yes"
+subdir="vc7-stlport"
+vc6_stlp_gen
+#
+# generate vc71 makefile:
+is_stlport="no"
+out="vc71.mak"
+no_single="no"
+subdir="vc71"
+vc6_gen
+#
+# generate vc71-stlport makefile:
+is_stlport="yes"
+out="vc71-stlport.mak"
+no_single="yes"
+subdir="vc71-stlport"
+vc6_stlp_gen
+
+
+#
+# remove tmep files;
+rm -f $tout $iout
+
+
+
+
+
+
+
+
+
+
+
diff --git a/libs/config/test/math_info.cpp b/libs/config/test/math_info.cpp
new file mode 100644
index 0000000000..47fe9ffe4e
--- /dev/null
+++ b/libs/config/test/math_info.cpp
@@ -0,0 +1,365 @@
+// (C) Copyright John Maddock 2005.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config/test for most recent version.
+
+//
+// This test prints out informative information about <math.h>, <float.h>
+// and <limits>. Note that this file does require a correctly configured
+// Boost setup, and so can't be folded into config_info which is designed
+// to function without Boost.Confg support. Each test is documented in
+// more detail below.
+//
+
+#include <boost/limits.hpp>
+#include <limits.h>
+#include <math.h>
+#include <cmath>
+#include <float.h>
+#include <iostream>
+#include <iomanip>
+#include <cstring>
+#include <boost/type_traits/alignment_of.hpp>
+
+#ifdef BOOST_NO_STDC_NAMESPACE
+namespace std{ using ::strcmp; using ::pow; using ::fabs; using ::sqrt; using ::sin; using ::atan2; }
+#endif
+
+static unsigned int indent = 4;
+static unsigned int width = 40;
+
+void print_macro(const char* name, const char* value)
+{
+ // if name == value+1 then then macro is not defined,
+ // in which case we don't print anything:
+ if(0 != std::strcmp(name, value+1))
+ {
+ for(unsigned i = 0; i < indent; ++i) std::cout.put(' ');
+ std::cout << std::setw(width);
+ std::cout.setf(std::istream::left, std::istream::adjustfield);
+ std::cout << name;
+ if(value[1])
+ {
+ // macro has a value:
+ std::cout << value << "\n";
+ }
+ else
+ {
+ // macro is defined but has no value:
+ std::cout << " [no value]\n";
+ }
+ }
+}
+
+#define PRINT_MACRO(X) print_macro(#X, BOOST_STRINGIZE(=X))
+
+template <class T>
+void print_expression(const char* expression, T val)
+{
+ for(unsigned i = 0; i < indent; ++i) std::cout.put(' ');
+ std::cout << std::setw(width);
+ std::cout.setf(std::istream::left, std::istream::adjustfield);
+ std::cout << std::setprecision(std::numeric_limits<T>::digits10+2);
+ std::cout << expression << "=" << val << std::endl;
+}
+
+#define PRINT_EXPRESSION(E) print_expression(#E, E);
+
+
+template <class T>
+void print_limits(T, const char* name)
+{
+ //
+ // Output general information on numeric_limits, as well as
+ // probing known and supected problems.
+ //
+ std::cout <<
+ "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"
+ "std::numeric_limits information for type " << name << std::endl;
+ std::cout <<
+ " is_specialized = " << std::numeric_limits<T>::is_specialized << std::endl;
+ std::cout <<
+ " min" "() = " << std::setprecision(std::numeric_limits<T>::digits10 + 2) << (std::numeric_limits<T>::min)() << std::endl;
+ std::cout <<
+ " max" "() = " << std::setprecision(std::numeric_limits<T>::digits10 + 2) << (std::numeric_limits<T>::max)() << std::endl;
+ std::cout <<
+ " digits = " << std::numeric_limits<T>::digits << std::endl;
+ std::cout <<
+ " digits10 = " << std::numeric_limits<T>::digits10 << std::endl;
+ std::cout <<
+ " is_signed = " << std::numeric_limits<T>::is_signed << std::endl;
+ std::cout <<
+ " is_integer = " << std::numeric_limits<T>::is_integer << std::endl;
+ std::cout <<
+ " is_exact = " << std::numeric_limits<T>::is_exact << std::endl;
+ std::cout <<
+ " radix = " << std::numeric_limits<T>::radix << std::endl;
+
+ std::cout <<
+ " epsilon() = " << std::setprecision(std::numeric_limits<T>::digits10 + 2) << (std::numeric_limits<T>::epsilon)() << std::endl;
+ std::cout <<
+ " round_error() = " << std::setprecision(std::numeric_limits<T>::digits10 + 2) << (std::numeric_limits<T>::round_error)() << std::endl;
+
+ std::cout <<
+ " min_exponent = " << std::numeric_limits<T>::min_exponent << std::endl;
+ std::cout <<
+ " min_exponent10 = " << std::numeric_limits<T>::min_exponent10 << std::endl;
+ std::cout <<
+ " max_exponent = " << std::numeric_limits<T>::max_exponent << std::endl;
+ std::cout <<
+ " max_exponent10 = " << std::numeric_limits<T>::max_exponent10 << std::endl;
+ std::cout <<
+ " has_infinity = " << std::numeric_limits<T>::has_infinity << std::endl;
+ std::cout <<
+ " has_quiet_NaN = " << std::numeric_limits<T>::has_quiet_NaN << std::endl;
+ std::cout <<
+ " has_signaling_NaN = " << std::numeric_limits<T>::has_signaling_NaN << std::endl;
+ std::cout <<
+ " has_denorm = " << std::numeric_limits<T>::has_denorm << std::endl;
+ std::cout <<
+ " has_denorm_loss = " << std::numeric_limits<T>::has_denorm_loss << std::endl;
+
+ std::cout <<
+ " infinity() = " << std::setprecision(std::numeric_limits<T>::digits10 + 2) << (std::numeric_limits<T>::infinity)() << std::endl;
+ std::cout <<
+ " quiet_NaN() = " << std::setprecision(std::numeric_limits<T>::digits10 + 2) << (std::numeric_limits<T>::quiet_NaN)() << std::endl;
+ std::cout <<
+ " signaling_NaN() = " << std::setprecision(std::numeric_limits<T>::digits10 + 2) << (std::numeric_limits<T>::signaling_NaN)() << std::endl;
+ std::cout <<
+ " denorm_min() = " << std::setprecision(std::numeric_limits<T>::digits10 + 2) << (std::numeric_limits<T>::denorm_min)() << std::endl;
+
+
+ std::cout <<
+ " is_iec559 = " << std::numeric_limits<T>::is_iec559 << std::endl;
+ std::cout <<
+ " is_bounded = " << std::numeric_limits<T>::is_bounded << std::endl;
+ std::cout <<
+ " is_modulo = " << std::numeric_limits<T>::is_modulo << std::endl;
+ std::cout <<
+ " traps = " << std::numeric_limits<T>::traps << std::endl;
+ std::cout <<
+ " tinyness_before = " << std::numeric_limits<T>::tinyness_before << std::endl;
+ std::cout <<
+ " round_style = " << std::numeric_limits<T>::round_style << std::endl << std::endl;
+
+ if(std::numeric_limits<T>::is_exact == 0)
+ {
+ bool r = std::numeric_limits<T>::epsilon() == std::pow(static_cast<T>(std::numeric_limits<T>::radix), 1-std::numeric_limits<T>::digits);
+ if(r)
+ std::cout << "Epsilon has sane value of std::pow(std::numeric_limits<T>::radix, 1-std::numeric_limits<T>::digits)." << std::endl;
+ else
+ std::cout << "CAUTION: epsilon does not have a sane value." << std::endl;
+ std::cout << std::endl;
+ }
+ std::cout <<
+ " sizeof(" << name << ") = " << sizeof(T) << std::endl;
+ std::cout <<
+ " alignment_of<" << name << "> = " << boost::alignment_of<T>::value << std::endl << std::endl;
+}
+/*
+template <class T>
+bool is_same_type(T, T)
+{
+ return true;
+}*/
+bool is_same_type(float, float)
+{ return true; }
+bool is_same_type(double, double)
+{ return true; }
+bool is_same_type(long double, long double)
+{ return true; }
+template <class T, class U>
+bool is_same_type(T, U)
+{
+ return false;
+}
+
+//
+// We need this to test whether abs has been overloaded for
+// the floating point types or not:
+//
+namespace std{
+#if !BOOST_WORKAROUND(BOOST_MSVC, == 1300) && \
+ !defined(_LIBCPP_VERSION)
+template <class T>
+char abs(T)
+{
+ return ' ';
+}
+#endif
+}
+
+
+template <class T>
+void test_overloads(T, const char* name)
+{
+ //
+ // Probe known and suspected problems with the std lib Math functions.
+ //
+ std::cout <<
+ "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"
+ "Math function overload information for type " << name << std::endl;
+
+ //
+ // Are the math functions overloaded for type T,
+ // or do we just get double versions?
+ //
+ bool r = is_same_type(std::fabs(T(0)), T(0));
+ r &= is_same_type(std::sqrt(T(0)), T(0));
+ r &= is_same_type(std::sin(T(0)), T(0));
+ if(r)
+ std::cout << "The Math functions are overloaded for type " << name << std::endl;
+ else
+ std::cout << "CAUTION: The Math functions are NOT overloaded for type " << name << std::endl;
+
+ //
+ // Check that a few of the functions work OK, we do this because if these
+ // are implemented as double precision internally then we can get
+ // overflow or underflow when passing arguments of other types.
+ //
+ r = (std::fabs((std::numeric_limits<T>::max)()) == (std::numeric_limits<T>::max)());
+ r &= (std::fabs(-(std::numeric_limits<T>::max)()) == (std::numeric_limits<T>::max)());
+ r &= (std::fabs((std::numeric_limits<T>::min)()) == (std::numeric_limits<T>::min)());
+ r &= (std::fabs(-(std::numeric_limits<T>::min)()) == (std::numeric_limits<T>::min)());
+ if(r)
+ std::cout << "std::fabs looks OK for type " << name << std::endl;
+ else
+ std::cout << "CAUTION: std::fabs is broken for type " << name << std::endl;
+
+ //
+ // abs not overloaded for real arguments with VC6 (and others?)
+ //
+ r = (std::abs((std::numeric_limits<T>::max)()) == (std::numeric_limits<T>::max)());
+ r &= (std::abs(-(std::numeric_limits<T>::max)()) == (std::numeric_limits<T>::max)());
+ r &= (std::abs((std::numeric_limits<T>::min)()) == (std::numeric_limits<T>::min)());
+ r &= (std::abs(-(std::numeric_limits<T>::min)()) == (std::numeric_limits<T>::min)());
+ if(r)
+ std::cout << "std::abs looks OK for type " << name << std::endl;
+ else
+ std::cout << "CAUTION: std::abs is broken for type " << name << std::endl;
+
+ //
+ // std::sqrt on FreeBSD converts long double arguments to double leading to
+ // overflow/underflow:
+ //
+ r = (std::sqrt((std::numeric_limits<T>::max)()) < (std::numeric_limits<T>::max)());
+ if(r)
+ std::cout << "std::sqrt looks OK for type " << name << std::endl;
+ else
+ std::cout << "CAUTION: std::sqrt is broken for type " << name << std::endl;
+
+ //
+ // Sanity check for atan2: verify that it returns arguments in the correct
+ // range and not just atan(x/y).
+ //
+ static const T half_pi = static_cast<T>(1.57079632679489661923132169163975144L);
+
+ T val = std::atan2(T(-1), T(-1));
+ r = -half_pi > val;
+ val = std::atan2(T(1), T(-1));
+ r &= half_pi < val;
+ val = std::atan2(T(1), T(1));
+ r &= (val > 0) && (val < half_pi);
+ val = std::atan2(T(-1), T(1));
+ r &= (val < 0) && (val > -half_pi);
+ if(r)
+ std::cout << "std::atan2 looks OK for type " << name << std::endl;
+ else
+ std::cout << "CAUTION: std::atan2 is broken for type " << name << std::endl;
+}
+
+
+
+int main()
+{
+ //
+ // Start by printing the values of the macros from float.h
+ //
+ std::cout <<
+ "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"
+ "Macros from <math.h>" << std::endl;
+
+#ifdef __BORLANDC__
+ // Turn off hardware exceptions so we don't just abort
+ // when calling numeric_limits members.
+ _control87(MCW_EM,MCW_EM);
+#endif
+
+ PRINT_EXPRESSION(HUGE_VAL);
+#ifdef HUGE_VALF
+ PRINT_EXPRESSION(HUGE_VALF);
+#endif
+#ifdef HUGE_VALL
+ PRINT_EXPRESSION(HUGE_VALL);
+#endif
+#ifdef INFINITY
+ PRINT_EXPRESSION(INFINITY);
+#endif
+
+ PRINT_MACRO(NAN);
+ PRINT_MACRO(FP_INFINITE);
+ PRINT_MACRO(FP_NAN);
+ PRINT_MACRO(FP_NORMAL);
+ PRINT_MACRO(FP_SUBNORMAL);
+ PRINT_MACRO(FP_ZERO);
+ PRINT_MACRO(FP_FAST_FMA);
+ PRINT_MACRO(FP_FAST_FMAF);
+ PRINT_MACRO(FP_FAST_FMAL);
+ PRINT_MACRO(FP_ILOGB0);
+ PRINT_MACRO(FP_ILOGBNAN);
+ PRINT_MACRO(MATH_ERRNO);
+ PRINT_MACRO(MATH_ERREXCEPT);
+
+ PRINT_EXPRESSION(FLT_MIN_10_EXP);
+ PRINT_EXPRESSION(FLT_DIG);
+ PRINT_EXPRESSION(FLT_MIN_EXP);
+ PRINT_EXPRESSION(FLT_EPSILON);
+ PRINT_EXPRESSION(FLT_RADIX);
+ PRINT_EXPRESSION(FLT_MANT_DIG);
+ PRINT_EXPRESSION(FLT_ROUNDS);
+ PRINT_EXPRESSION(FLT_MAX);
+ PRINT_EXPRESSION(FLT_MAX_10_EXP);
+ PRINT_EXPRESSION(FLT_MAX_EXP);
+ PRINT_EXPRESSION(FLT_MIN);
+ PRINT_EXPRESSION(DBL_DIG);
+ PRINT_EXPRESSION(DBL_MIN_EXP);
+ PRINT_EXPRESSION(DBL_EPSILON);
+ PRINT_EXPRESSION(DBL_MANT_DIG);
+ PRINT_EXPRESSION(DBL_MAX);
+ PRINT_EXPRESSION(DBL_MIN);
+ PRINT_EXPRESSION(DBL_MAX_10_EXP);
+ PRINT_EXPRESSION(DBL_MAX_EXP);
+ PRINT_EXPRESSION(DBL_MIN_10_EXP);
+ PRINT_EXPRESSION(LDBL_MAX_10_EXP);
+ PRINT_EXPRESSION(LDBL_MAX_EXP);
+ PRINT_EXPRESSION(LDBL_MIN);
+ PRINT_EXPRESSION(LDBL_MIN_10_EXP);
+ PRINT_EXPRESSION(LDBL_DIG);
+ PRINT_EXPRESSION(LDBL_MIN_EXP);
+ PRINT_EXPRESSION(LDBL_EPSILON);
+ PRINT_EXPRESSION(LDBL_MANT_DIG);
+ PRINT_EXPRESSION(LDBL_MAX);
+
+ std::cout << std::endl;
+
+ //
+ // print out numeric_limits info:
+ //
+ print_limits(float(0), "float");
+ print_limits(double(0), "double");
+ print_limits((long double)(0), "long double");
+
+ //
+ // print out function overload information:
+ //
+ test_overloads(float(0), "float");
+ test_overloads(double(0), "double");
+ test_overloads((long double)(0), "long double");
+ return 0;
+}
+
+
+
+
diff --git a/libs/config/test/no_0x_hdr_array_fail.cpp b/libs/config/test/no_0x_hdr_array_fail.cpp
new file mode 100644
index 0000000000..a67ed7fd68
--- /dev/null
+++ b/libs/config/test/no_0x_hdr_array_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Fri May 15 12:10:32 2009
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_0x_hdr_array_fail.cpp 53445 2009-05-30 11:22:59Z bemandawes $
+//
+
+
+// Test file for macro BOOST_NO_0X_HDR_ARRAY
+// This file should not compile, if it does then
+// BOOST_NO_0X_HDR_ARRAY should not be defined.
+// See file boost_no_0x_hdr_array.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_0X_HDR_ARRAY
+#include "boost_no_0x_hdr_array.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_0x_hdr_array::test();
+}
+
diff --git a/libs/config/test/no_0x_hdr_array_pass.cpp b/libs/config/test/no_0x_hdr_array_pass.cpp
new file mode 100644
index 0000000000..cf5450cd95
--- /dev/null
+++ b/libs/config/test/no_0x_hdr_array_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Fri May 15 12:10:32 2009
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_0x_hdr_array_pass.cpp 53445 2009-05-30 11:22:59Z bemandawes $
+//
+
+
+// Test file for macro BOOST_NO_0X_HDR_ARRAY
+// This file should compile, if it does not then
+// BOOST_NO_0X_HDR_ARRAY should be defined.
+// See file boost_no_0x_hdr_array.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_0X_HDR_ARRAY
+#include "boost_no_0x_hdr_array.ipp"
+#else
+namespace boost_no_0x_hdr_array = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_0x_hdr_array::test();
+}
+
diff --git a/libs/config/test/no_0x_hdr_chrono_fail.cpp b/libs/config/test/no_0x_hdr_chrono_fail.cpp
new file mode 100644
index 0000000000..acec13bc62
--- /dev/null
+++ b/libs/config/test/no_0x_hdr_chrono_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Fri May 15 11:57:42 2009
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_0x_hdr_chrono_fail.cpp 53445 2009-05-30 11:22:59Z bemandawes $
+//
+
+
+// Test file for macro BOOST_NO_0X_HDR_CHRONO
+// This file should not compile, if it does then
+// BOOST_NO_0X_HDR_CHRONO should not be defined.
+// See file boost_no_0x_hdr_chrono.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_0X_HDR_CHRONO
+#include "boost_no_0x_hdr_chrono.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_0x_hdr_chrono::test();
+}
+
diff --git a/libs/config/test/no_0x_hdr_chrono_pass.cpp b/libs/config/test/no_0x_hdr_chrono_pass.cpp
new file mode 100644
index 0000000000..37999be24b
--- /dev/null
+++ b/libs/config/test/no_0x_hdr_chrono_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Fri May 15 11:57:42 2009
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_0x_hdr_chrono_pass.cpp 53445 2009-05-30 11:22:59Z bemandawes $
+//
+
+
+// Test file for macro BOOST_NO_0X_HDR_CHRONO
+// This file should compile, if it does not then
+// BOOST_NO_0X_HDR_CHRONO should be defined.
+// See file boost_no_0x_hdr_chrono.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_0X_HDR_CHRONO
+#include "boost_no_0x_hdr_chrono.ipp"
+#else
+namespace boost_no_0x_hdr_chrono = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_0x_hdr_chrono::test();
+}
+
diff --git a/libs/config/test/no_0x_hdr_codecvt_fail.cpp b/libs/config/test/no_0x_hdr_codecvt_fail.cpp
new file mode 100644
index 0000000000..7bcb38b011
--- /dev/null
+++ b/libs/config/test/no_0x_hdr_codecvt_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Fri May 15 11:57:42 2009
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_0x_hdr_codecvt_fail.cpp 53445 2009-05-30 11:22:59Z bemandawes $
+//
+
+
+// Test file for macro BOOST_NO_0X_HDR_CODECVT
+// This file should not compile, if it does then
+// BOOST_NO_0X_HDR_CODECVT should not be defined.
+// See file boost_no_0x_hdr_codecvt.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_0X_HDR_CODECVT
+#include "boost_no_0x_hdr_codecvt.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_0x_hdr_codecvt::test();
+}
+
diff --git a/libs/config/test/no_0x_hdr_codecvt_pass.cpp b/libs/config/test/no_0x_hdr_codecvt_pass.cpp
new file mode 100644
index 0000000000..623d5a6808
--- /dev/null
+++ b/libs/config/test/no_0x_hdr_codecvt_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Fri May 15 11:57:42 2009
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_0x_hdr_codecvt_pass.cpp 53445 2009-05-30 11:22:59Z bemandawes $
+//
+
+
+// Test file for macro BOOST_NO_0X_HDR_CODECVT
+// This file should compile, if it does not then
+// BOOST_NO_0X_HDR_CODECVT should be defined.
+// See file boost_no_0x_hdr_codecvt.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_0X_HDR_CODECVT
+#include "boost_no_0x_hdr_codecvt.ipp"
+#else
+namespace boost_no_0x_hdr_codecvt = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_0x_hdr_codecvt::test();
+}
+
diff --git a/libs/config/test/no_0x_hdr_condition_variable_fail.cpp b/libs/config/test/no_0x_hdr_condition_variable_fail.cpp
new file mode 100644
index 0000000000..dc6c833e84
--- /dev/null
+++ b/libs/config/test/no_0x_hdr_condition_variable_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Fri May 15 11:57:42 2009
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_0x_hdr_condition_variable_fail.cpp 53445 2009-05-30 11:22:59Z bemandawes $
+//
+
+
+// Test file for macro BOOST_NO_0X_HDR_CONDITION_VARIABLE
+// This file should not compile, if it does then
+// BOOST_NO_0X_HDR_CONDITION_VARIABLE should not be defined.
+// See file boost_no_0x_hdr_condition_variable.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_0X_HDR_CONDITION_VARIABLE
+#include "boost_no_0x_hdr_condition_variable.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_0x_hdr_condition_variable::test();
+}
+
diff --git a/libs/config/test/no_0x_hdr_condition_variable_pass.cpp b/libs/config/test/no_0x_hdr_condition_variable_pass.cpp
new file mode 100644
index 0000000000..ad283487de
--- /dev/null
+++ b/libs/config/test/no_0x_hdr_condition_variable_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Fri May 15 11:57:42 2009
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_0x_hdr_condition_variable_pass.cpp 53445 2009-05-30 11:22:59Z bemandawes $
+//
+
+
+// Test file for macro BOOST_NO_0X_HDR_CONDITION_VARIABLE
+// This file should compile, if it does not then
+// BOOST_NO_0X_HDR_CONDITION_VARIABLE should be defined.
+// See file boost_no_0x_hdr_condition_variable.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_0X_HDR_CONDITION_VARIABLE
+#include "boost_no_0x_hdr_condition_variable.ipp"
+#else
+namespace boost_no_0x_hdr_condition_variable = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_0x_hdr_condition_variable::test();
+}
+
diff --git a/libs/config/test/no_0x_hdr_forward_list_fail.cpp b/libs/config/test/no_0x_hdr_forward_list_fail.cpp
new file mode 100644
index 0000000000..ff60ad0ea4
--- /dev/null
+++ b/libs/config/test/no_0x_hdr_forward_list_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Fri May 15 11:57:42 2009
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_0x_hdr_forward_list_fail.cpp 53445 2009-05-30 11:22:59Z bemandawes $
+//
+
+
+// Test file for macro BOOST_NO_0X_HDR_FORWARD_LIST
+// This file should not compile, if it does then
+// BOOST_NO_0X_HDR_FORWARD_LIST should not be defined.
+// See file boost_no_0x_hdr_forward_list.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_0X_HDR_FORWARD_LIST
+#include "boost_no_0x_hdr_forward_list.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_0x_hdr_forward_list::test();
+}
+
diff --git a/libs/config/test/no_0x_hdr_forward_list_pass.cpp b/libs/config/test/no_0x_hdr_forward_list_pass.cpp
new file mode 100644
index 0000000000..3ef31ffeca
--- /dev/null
+++ b/libs/config/test/no_0x_hdr_forward_list_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Fri May 15 11:57:42 2009
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_0x_hdr_forward_list_pass.cpp 53445 2009-05-30 11:22:59Z bemandawes $
+//
+
+
+// Test file for macro BOOST_NO_0X_HDR_FORWARD_LIST
+// This file should compile, if it does not then
+// BOOST_NO_0X_HDR_FORWARD_LIST should be defined.
+// See file boost_no_0x_hdr_forward_list.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_0X_HDR_FORWARD_LIST
+#include "boost_no_0x_hdr_forward_list.ipp"
+#else
+namespace boost_no_0x_hdr_forward_list = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_0x_hdr_forward_list::test();
+}
+
diff --git a/libs/config/test/no_0x_hdr_future_fail.cpp b/libs/config/test/no_0x_hdr_future_fail.cpp
new file mode 100644
index 0000000000..812cab6de7
--- /dev/null
+++ b/libs/config/test/no_0x_hdr_future_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Fri May 15 11:57:42 2009
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_0x_hdr_future_fail.cpp 53445 2009-05-30 11:22:59Z bemandawes $
+//
+
+
+// Test file for macro BOOST_NO_0X_HDR_FUTURE
+// This file should not compile, if it does then
+// BOOST_NO_0X_HDR_FUTURE should not be defined.
+// See file boost_no_0x_hdr_future.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_0X_HDR_FUTURE
+#include "boost_no_0x_hdr_future.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_0x_hdr_future::test();
+}
+
diff --git a/libs/config/test/no_0x_hdr_future_pass.cpp b/libs/config/test/no_0x_hdr_future_pass.cpp
new file mode 100644
index 0000000000..181f17b64b
--- /dev/null
+++ b/libs/config/test/no_0x_hdr_future_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Fri May 15 11:57:42 2009
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_0x_hdr_future_pass.cpp 53445 2009-05-30 11:22:59Z bemandawes $
+//
+
+
+// Test file for macro BOOST_NO_0X_HDR_FUTURE
+// This file should compile, if it does not then
+// BOOST_NO_0X_HDR_FUTURE should be defined.
+// See file boost_no_0x_hdr_future.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_0X_HDR_FUTURE
+#include "boost_no_0x_hdr_future.ipp"
+#else
+namespace boost_no_0x_hdr_future = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_0x_hdr_future::test();
+}
+
diff --git a/libs/config/test/no_0x_hdr_initializer_list_fail.cpp b/libs/config/test/no_0x_hdr_initializer_list_fail.cpp
new file mode 100644
index 0000000000..c2ba892313
--- /dev/null
+++ b/libs/config/test/no_0x_hdr_initializer_list_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Fri May 15 11:57:42 2009
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_0x_hdr_initializer_list_fail.cpp 53445 2009-05-30 11:22:59Z bemandawes $
+//
+
+
+// Test file for macro BOOST_NO_0X_HDR_INITIALIZER_LIST
+// This file should not compile, if it does then
+// BOOST_NO_0X_HDR_INITIALIZER_LIST should not be defined.
+// See file boost_no_0x_hdr_initializer_list.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_0X_HDR_INITIALIZER_LIST
+#include "boost_no_0x_hdr_initializer_list.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_0x_hdr_initializer_list::test();
+}
+
diff --git a/libs/config/test/no_0x_hdr_initializer_list_pass.cpp b/libs/config/test/no_0x_hdr_initializer_list_pass.cpp
new file mode 100644
index 0000000000..c817c9baa3
--- /dev/null
+++ b/libs/config/test/no_0x_hdr_initializer_list_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Fri May 15 11:57:42 2009
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_0x_hdr_initializer_list_pass.cpp 53445 2009-05-30 11:22:59Z bemandawes $
+//
+
+
+// Test file for macro BOOST_NO_0X_HDR_INITIALIZER_LIST
+// This file should compile, if it does not then
+// BOOST_NO_0X_HDR_INITIALIZER_LIST should be defined.
+// See file boost_no_0x_hdr_initializer_list.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_0X_HDR_INITIALIZER_LIST
+#include "boost_no_0x_hdr_initializer_list.ipp"
+#else
+namespace boost_no_0x_hdr_initializer_list = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_0x_hdr_initializer_list::test();
+}
+
diff --git a/libs/config/test/no_0x_hdr_mutex_fail.cpp b/libs/config/test/no_0x_hdr_mutex_fail.cpp
new file mode 100644
index 0000000000..951a21b143
--- /dev/null
+++ b/libs/config/test/no_0x_hdr_mutex_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Fri May 15 11:57:42 2009
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_0x_hdr_mutex_fail.cpp 53445 2009-05-30 11:22:59Z bemandawes $
+//
+
+
+// Test file for macro BOOST_NO_0X_HDR_MUTEX
+// This file should not compile, if it does then
+// BOOST_NO_0X_HDR_MUTEX should not be defined.
+// See file boost_no_0x_hdr_mutex.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_0X_HDR_MUTEX
+#include "boost_no_0x_hdr_mutex.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_0x_hdr_mutex::test();
+}
+
diff --git a/libs/config/test/no_0x_hdr_mutex_pass.cpp b/libs/config/test/no_0x_hdr_mutex_pass.cpp
new file mode 100644
index 0000000000..dc05100d45
--- /dev/null
+++ b/libs/config/test/no_0x_hdr_mutex_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Fri May 15 11:57:42 2009
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_0x_hdr_mutex_pass.cpp 53445 2009-05-30 11:22:59Z bemandawes $
+//
+
+
+// Test file for macro BOOST_NO_0X_HDR_MUTEX
+// This file should compile, if it does not then
+// BOOST_NO_0X_HDR_MUTEX should be defined.
+// See file boost_no_0x_hdr_mutex.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_0X_HDR_MUTEX
+#include "boost_no_0x_hdr_mutex.ipp"
+#else
+namespace boost_no_0x_hdr_mutex = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_0x_hdr_mutex::test();
+}
+
diff --git a/libs/config/test/no_0x_hdr_random_fail.cpp b/libs/config/test/no_0x_hdr_random_fail.cpp
new file mode 100644
index 0000000000..e84c67af56
--- /dev/null
+++ b/libs/config/test/no_0x_hdr_random_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Fri May 15 11:57:42 2009
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_0x_hdr_random_fail.cpp 53445 2009-05-30 11:22:59Z bemandawes $
+//
+
+
+// Test file for macro BOOST_NO_0X_HDR_RANDOM
+// This file should not compile, if it does then
+// BOOST_NO_0X_HDR_RANDOM should not be defined.
+// See file boost_no_0x_hdr_random.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_0X_HDR_RANDOM
+#include "boost_no_0x_hdr_random.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_0x_hdr_random::test();
+}
+
diff --git a/libs/config/test/no_0x_hdr_random_pass.cpp b/libs/config/test/no_0x_hdr_random_pass.cpp
new file mode 100644
index 0000000000..79daeb118d
--- /dev/null
+++ b/libs/config/test/no_0x_hdr_random_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Fri May 15 11:57:42 2009
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_0x_hdr_random_pass.cpp 53445 2009-05-30 11:22:59Z bemandawes $
+//
+
+
+// Test file for macro BOOST_NO_0X_HDR_RANDOM
+// This file should compile, if it does not then
+// BOOST_NO_0X_HDR_RANDOM should be defined.
+// See file boost_no_0x_hdr_random.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_0X_HDR_RANDOM
+#include "boost_no_0x_hdr_random.ipp"
+#else
+namespace boost_no_0x_hdr_random = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_0x_hdr_random::test();
+}
+
diff --git a/libs/config/test/no_0x_hdr_ratio_fail.cpp b/libs/config/test/no_0x_hdr_ratio_fail.cpp
new file mode 100644
index 0000000000..bd783bbb6a
--- /dev/null
+++ b/libs/config/test/no_0x_hdr_ratio_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Fri May 15 11:57:42 2009
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_0x_hdr_ratio_fail.cpp 53445 2009-05-30 11:22:59Z bemandawes $
+//
+
+
+// Test file for macro BOOST_NO_0X_HDR_RATIO
+// This file should not compile, if it does then
+// BOOST_NO_0X_HDR_RATIO should not be defined.
+// See file boost_no_0x_hdr_ratio.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_0X_HDR_RATIO
+#include "boost_no_0x_hdr_ratio.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_0x_hdr_ratio::test();
+}
+
diff --git a/libs/config/test/no_0x_hdr_ratio_pass.cpp b/libs/config/test/no_0x_hdr_ratio_pass.cpp
new file mode 100644
index 0000000000..ff34d38465
--- /dev/null
+++ b/libs/config/test/no_0x_hdr_ratio_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Fri May 15 11:57:42 2009
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_0x_hdr_ratio_pass.cpp 53445 2009-05-30 11:22:59Z bemandawes $
+//
+
+
+// Test file for macro BOOST_NO_0X_HDR_RATIO
+// This file should compile, if it does not then
+// BOOST_NO_0X_HDR_RATIO should be defined.
+// See file boost_no_0x_hdr_ratio.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_0X_HDR_RATIO
+#include "boost_no_0x_hdr_ratio.ipp"
+#else
+namespace boost_no_0x_hdr_ratio = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_0x_hdr_ratio::test();
+}
+
diff --git a/libs/config/test/no_0x_hdr_regex_fail.cpp b/libs/config/test/no_0x_hdr_regex_fail.cpp
new file mode 100644
index 0000000000..3fdf0d10cb
--- /dev/null
+++ b/libs/config/test/no_0x_hdr_regex_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Fri May 15 11:57:42 2009
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_0x_hdr_regex_fail.cpp 53445 2009-05-30 11:22:59Z bemandawes $
+//
+
+
+// Test file for macro BOOST_NO_0X_HDR_REGEX
+// This file should not compile, if it does then
+// BOOST_NO_0X_HDR_REGEX should not be defined.
+// See file boost_no_0x_hdr_regex.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_0X_HDR_REGEX
+#include "boost_no_0x_hdr_regex.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_0x_hdr_regex::test();
+}
+
diff --git a/libs/config/test/no_0x_hdr_regex_pass.cpp b/libs/config/test/no_0x_hdr_regex_pass.cpp
new file mode 100644
index 0000000000..0c983c57cc
--- /dev/null
+++ b/libs/config/test/no_0x_hdr_regex_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Fri May 15 11:57:42 2009
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_0x_hdr_regex_pass.cpp 53445 2009-05-30 11:22:59Z bemandawes $
+//
+
+
+// Test file for macro BOOST_NO_0X_HDR_REGEX
+// This file should compile, if it does not then
+// BOOST_NO_0X_HDR_REGEX should be defined.
+// See file boost_no_0x_hdr_regex.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_0X_HDR_REGEX
+#include "boost_no_0x_hdr_regex.ipp"
+#else
+namespace boost_no_0x_hdr_regex = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_0x_hdr_regex::test();
+}
+
diff --git a/libs/config/test/no_0x_hdr_system_error_fail.cpp b/libs/config/test/no_0x_hdr_system_error_fail.cpp
new file mode 100644
index 0000000000..8df2a4cefc
--- /dev/null
+++ b/libs/config/test/no_0x_hdr_system_error_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Fri May 15 11:57:42 2009
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_0x_hdr_system_error_fail.cpp 53445 2009-05-30 11:22:59Z bemandawes $
+//
+
+
+// Test file for macro BOOST_NO_0X_HDR_SYSTEM_ERROR
+// This file should not compile, if it does then
+// BOOST_NO_0X_HDR_SYSTEM_ERROR should not be defined.
+// See file boost_no_0x_hdr_system_error.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_0X_HDR_SYSTEM_ERROR
+#include "boost_no_0x_hdr_system_error.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_0x_hdr_system_error::test();
+}
+
diff --git a/libs/config/test/no_0x_hdr_system_error_pass.cpp b/libs/config/test/no_0x_hdr_system_error_pass.cpp
new file mode 100644
index 0000000000..ed1b16838c
--- /dev/null
+++ b/libs/config/test/no_0x_hdr_system_error_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Fri May 15 11:57:42 2009
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_0x_hdr_system_error_pass.cpp 53445 2009-05-30 11:22:59Z bemandawes $
+//
+
+
+// Test file for macro BOOST_NO_0X_HDR_SYSTEM_ERROR
+// This file should compile, if it does not then
+// BOOST_NO_0X_HDR_SYSTEM_ERROR should be defined.
+// See file boost_no_0x_hdr_system_error.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_0X_HDR_SYSTEM_ERROR
+#include "boost_no_0x_hdr_system_error.ipp"
+#else
+namespace boost_no_0x_hdr_system_error = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_0x_hdr_system_error::test();
+}
+
diff --git a/libs/config/test/no_0x_hdr_thread_fail.cpp b/libs/config/test/no_0x_hdr_thread_fail.cpp
new file mode 100644
index 0000000000..f96f9c4a95
--- /dev/null
+++ b/libs/config/test/no_0x_hdr_thread_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Fri May 15 12:45:15 2009
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_0x_hdr_thread_fail.cpp 53445 2009-05-30 11:22:59Z bemandawes $
+//
+
+
+// Test file for macro BOOST_NO_0X_HDR_THREAD
+// This file should not compile, if it does then
+// BOOST_NO_0X_HDR_THREAD should not be defined.
+// See file boost_no_0x_hdr_thread.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_0X_HDR_THREAD
+#include "boost_no_0x_hdr_thread.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_0x_hdr_thread::test();
+}
+
diff --git a/libs/config/test/no_0x_hdr_thread_pass.cpp b/libs/config/test/no_0x_hdr_thread_pass.cpp
new file mode 100644
index 0000000000..1a771d028f
--- /dev/null
+++ b/libs/config/test/no_0x_hdr_thread_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Fri May 15 12:45:15 2009
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_0x_hdr_thread_pass.cpp 53445 2009-05-30 11:22:59Z bemandawes $
+//
+
+
+// Test file for macro BOOST_NO_0X_HDR_THREAD
+// This file should compile, if it does not then
+// BOOST_NO_0X_HDR_THREAD should be defined.
+// See file boost_no_0x_hdr_thread.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_0X_HDR_THREAD
+#include "boost_no_0x_hdr_thread.ipp"
+#else
+namespace boost_no_0x_hdr_thread = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_0x_hdr_thread::test();
+}
+
diff --git a/libs/config/test/no_0x_hdr_tuple_fail.cpp b/libs/config/test/no_0x_hdr_tuple_fail.cpp
new file mode 100644
index 0000000000..07f1ef7f25
--- /dev/null
+++ b/libs/config/test/no_0x_hdr_tuple_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Fri May 15 11:57:42 2009
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_0x_hdr_tuple_fail.cpp 53445 2009-05-30 11:22:59Z bemandawes $
+//
+
+
+// Test file for macro BOOST_NO_0X_HDR_TUPLE
+// This file should not compile, if it does then
+// BOOST_NO_0X_HDR_TUPLE should not be defined.
+// See file boost_no_0x_hdr_tuple.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_0X_HDR_TUPLE
+#include "boost_no_0x_hdr_tuple.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_0x_hdr_tuple::test();
+}
+
diff --git a/libs/config/test/no_0x_hdr_tuple_pass.cpp b/libs/config/test/no_0x_hdr_tuple_pass.cpp
new file mode 100644
index 0000000000..99a2d53823
--- /dev/null
+++ b/libs/config/test/no_0x_hdr_tuple_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Fri May 15 11:57:42 2009
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_0x_hdr_tuple_pass.cpp 53445 2009-05-30 11:22:59Z bemandawes $
+//
+
+
+// Test file for macro BOOST_NO_0X_HDR_TUPLE
+// This file should compile, if it does not then
+// BOOST_NO_0X_HDR_TUPLE should be defined.
+// See file boost_no_0x_hdr_tuple.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_0X_HDR_TUPLE
+#include "boost_no_0x_hdr_tuple.ipp"
+#else
+namespace boost_no_0x_hdr_tuple = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_0x_hdr_tuple::test();
+}
+
diff --git a/libs/config/test/no_0x_hdr_type_traits_fail.cpp b/libs/config/test/no_0x_hdr_type_traits_fail.cpp
new file mode 100644
index 0000000000..d91a0644aa
--- /dev/null
+++ b/libs/config/test/no_0x_hdr_type_traits_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Fri May 15 11:57:42 2009
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_0x_hdr_type_traits_fail.cpp 53445 2009-05-30 11:22:59Z bemandawes $
+//
+
+
+// Test file for macro BOOST_NO_0X_HDR_TYPE_TRAITS
+// This file should not compile, if it does then
+// BOOST_NO_0X_HDR_TYPE_TRAITS should not be defined.
+// See file boost_no_0x_hdr_type_traits.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_0X_HDR_TYPE_TRAITS
+#include "boost_no_0x_hdr_type_traits.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_0x_hdr_type_traits::test();
+}
+
diff --git a/libs/config/test/no_0x_hdr_type_traits_pass.cpp b/libs/config/test/no_0x_hdr_type_traits_pass.cpp
new file mode 100644
index 0000000000..32b881c661
--- /dev/null
+++ b/libs/config/test/no_0x_hdr_type_traits_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Fri May 15 11:57:42 2009
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_0x_hdr_type_traits_pass.cpp 53445 2009-05-30 11:22:59Z bemandawes $
+//
+
+
+// Test file for macro BOOST_NO_0X_HDR_TYPE_TRAITS
+// This file should compile, if it does not then
+// BOOST_NO_0X_HDR_TYPE_TRAITS should be defined.
+// See file boost_no_0x_hdr_type_traits.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_0X_HDR_TYPE_TRAITS
+#include "boost_no_0x_hdr_type_traits.ipp"
+#else
+namespace boost_no_0x_hdr_type_traits = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_0x_hdr_type_traits::test();
+}
+
diff --git a/libs/config/test/no_0x_hdr_typeindex_fail.cpp b/libs/config/test/no_0x_hdr_typeindex_fail.cpp
new file mode 100644
index 0000000000..83e903d340
--- /dev/null
+++ b/libs/config/test/no_0x_hdr_typeindex_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Fri Jun 04 12:51:34 2010
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: generate.cpp 49281 2008-10-11 15:40:44Z johnmaddock $
+//
+
+
+// Test file for macro BOOST_NO_0X_HDR_TYPEINDEX
+// This file should not compile, if it does then
+// BOOST_NO_0X_HDR_TYPEINDEX should not be defined.
+// See file boost_no_0x_hdr_typeindex.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_0X_HDR_TYPEINDEX
+#include "boost_no_0x_hdr_typeindex.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_0x_hdr_typeindex::test();
+}
+
diff --git a/libs/config/test/no_0x_hdr_typeindex_pass.cpp b/libs/config/test/no_0x_hdr_typeindex_pass.cpp
new file mode 100644
index 0000000000..52d3844006
--- /dev/null
+++ b/libs/config/test/no_0x_hdr_typeindex_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Fri Jun 04 12:51:34 2010
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: generate.cpp 49281 2008-10-11 15:40:44Z johnmaddock $
+//
+
+
+// Test file for macro BOOST_NO_0X_HDR_TYPEINDEX
+// This file should compile, if it does not then
+// BOOST_NO_0X_HDR_TYPEINDEX should be defined.
+// See file boost_no_0x_hdr_typeindex.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_0X_HDR_TYPEINDEX
+#include "boost_no_0x_hdr_typeindex.ipp"
+#else
+namespace boost_no_0x_hdr_typeindex = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_0x_hdr_typeindex::test();
+}
+
diff --git a/libs/config/test/no_0x_hdr_unordered_map_fail.cpp b/libs/config/test/no_0x_hdr_unordered_map_fail.cpp
new file mode 100644
index 0000000000..a1d22dfa47
--- /dev/null
+++ b/libs/config/test/no_0x_hdr_unordered_map_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Fri May 15 11:57:42 2009
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_0x_hdr_unordered_map_fail.cpp 53445 2009-05-30 11:22:59Z bemandawes $
+//
+
+
+// Test file for macro BOOST_NO_0X_HDR_UNORDERED_MAP
+// This file should not compile, if it does then
+// BOOST_NO_0X_HDR_UNORDERED_MAP should not be defined.
+// See file boost_no_0x_hdr_unordered_map.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_0X_HDR_UNORDERED_MAP
+#include "boost_no_0x_hdr_unordered_map.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_0x_hdr_unordered_map::test();
+}
+
diff --git a/libs/config/test/no_0x_hdr_unordered_map_pass.cpp b/libs/config/test/no_0x_hdr_unordered_map_pass.cpp
new file mode 100644
index 0000000000..35371157f9
--- /dev/null
+++ b/libs/config/test/no_0x_hdr_unordered_map_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Fri May 15 11:57:42 2009
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_0x_hdr_unordered_map_pass.cpp 53445 2009-05-30 11:22:59Z bemandawes $
+//
+
+
+// Test file for macro BOOST_NO_0X_HDR_UNORDERED_MAP
+// This file should compile, if it does not then
+// BOOST_NO_0X_HDR_UNORDERED_MAP should be defined.
+// See file boost_no_0x_hdr_unordered_map.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_0X_HDR_UNORDERED_MAP
+#include "boost_no_0x_hdr_unordered_map.ipp"
+#else
+namespace boost_no_0x_hdr_unordered_map = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_0x_hdr_unordered_map::test();
+}
+
diff --git a/libs/config/test/no_0x_hdr_unordered_set_fail.cpp b/libs/config/test/no_0x_hdr_unordered_set_fail.cpp
new file mode 100644
index 0000000000..3fd6f71667
--- /dev/null
+++ b/libs/config/test/no_0x_hdr_unordered_set_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Fri May 15 11:57:42 2009
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_0x_hdr_unordered_set_fail.cpp 53445 2009-05-30 11:22:59Z bemandawes $
+//
+
+
+// Test file for macro BOOST_NO_0X_HDR_UNORDERED_SET
+// This file should not compile, if it does then
+// BOOST_NO_0X_HDR_UNORDERED_SET should not be defined.
+// See file boost_no_0x_hdr_unordered_set.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_0X_HDR_UNORDERED_SET
+#include "boost_no_0x_hdr_unordered_set.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_0x_hdr_unordered_set::test();
+}
+
diff --git a/libs/config/test/no_0x_hdr_unordered_set_pass.cpp b/libs/config/test/no_0x_hdr_unordered_set_pass.cpp
new file mode 100644
index 0000000000..6941b73a9b
--- /dev/null
+++ b/libs/config/test/no_0x_hdr_unordered_set_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Fri May 15 11:57:42 2009
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_0x_hdr_unordered_set_pass.cpp 53445 2009-05-30 11:22:59Z bemandawes $
+//
+
+
+// Test file for macro BOOST_NO_0X_HDR_UNORDERED_SET
+// This file should compile, if it does not then
+// BOOST_NO_0X_HDR_UNORDERED_SET should be defined.
+// See file boost_no_0x_hdr_unordered_set.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_0X_HDR_UNORDERED_SET
+#include "boost_no_0x_hdr_unordered_set.ipp"
+#else
+namespace boost_no_0x_hdr_unordered_set = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_0x_hdr_unordered_set::test();
+}
+
diff --git a/libs/config/test/no_adl_barrier_fail.cpp b/libs/config/test/no_adl_barrier_fail.cpp
new file mode 100644
index 0000000000..a21e0b3b6a
--- /dev/null
+++ b/libs/config/test/no_adl_barrier_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Fri Mar 28 16:52:13 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: generate.cpp 40184 2007-10-19 12:46:54Z johnmaddock $
+//
+
+
+// Test file for macro BOOST_NO_ADL_BARRIER
+// This file should not compile, if it does then
+// BOOST_NO_ADL_BARRIER should not be defined.
+// See file boost_no_adl_barrier.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_ADL_BARRIER
+#include "boost_no_adl_barrier.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_adl_barrier::test();
+}
+
diff --git a/libs/config/test/no_adl_barrier_pass.cpp b/libs/config/test/no_adl_barrier_pass.cpp
new file mode 100644
index 0000000000..39bef3fb4f
--- /dev/null
+++ b/libs/config/test/no_adl_barrier_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Fri Mar 28 16:52:13 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: generate.cpp 40184 2007-10-19 12:46:54Z johnmaddock $
+//
+
+
+// Test file for macro BOOST_NO_ADL_BARRIER
+// This file should compile, if it does not then
+// BOOST_NO_ADL_BARRIER should be defined.
+// See file boost_no_adl_barrier.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_ADL_BARRIER
+#include "boost_no_adl_barrier.ipp"
+#else
+namespace boost_no_adl_barrier = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_adl_barrier::test();
+}
+
diff --git a/libs/config/test/no_arg_dep_lookup_fail.cpp b/libs/config/test/no_arg_dep_lookup_fail.cpp
new file mode 100644
index 0000000000..7733f87b07
--- /dev/null
+++ b/libs/config/test/no_arg_dep_lookup_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:00 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
+// This file should not compile, if it does then
+// BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP should not be defined.
+// See file boost_no_arg_dep_lookup.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
+#include "boost_no_arg_dep_lookup.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_argument_dependent_lookup::test();
+}
+
diff --git a/libs/config/test/no_arg_dep_lookup_pass.cpp b/libs/config/test/no_arg_dep_lookup_pass.cpp
new file mode 100644
index 0000000000..1a8d7a7b81
--- /dev/null
+++ b/libs/config/test/no_arg_dep_lookup_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:00 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
+// This file should compile, if it does not then
+// BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP should be defined.
+// See file boost_no_arg_dep_lookup.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
+#include "boost_no_arg_dep_lookup.ipp"
+#else
+namespace boost_no_argument_dependent_lookup = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_argument_dependent_lookup::test();
+}
+
diff --git a/libs/config/test/no_array_type_spec_fail.cpp b/libs/config/test/no_array_type_spec_fail.cpp
new file mode 100644
index 0000000000..9299736e04
--- /dev/null
+++ b/libs/config/test/no_array_type_spec_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:00 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS
+// This file should not compile, if it does then
+// BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS should not be defined.
+// See file boost_no_array_type_spec.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS
+#include "boost_no_array_type_spec.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_array_type_specializations::test();
+}
+
diff --git a/libs/config/test/no_array_type_spec_pass.cpp b/libs/config/test/no_array_type_spec_pass.cpp
new file mode 100644
index 0000000000..75ab43404c
--- /dev/null
+++ b/libs/config/test/no_array_type_spec_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:00 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS
+// This file should compile, if it does not then
+// BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS should be defined.
+// See file boost_no_array_type_spec.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS
+#include "boost_no_array_type_spec.ipp"
+#else
+namespace boost_no_array_type_specializations = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_array_type_specializations::test();
+}
+
diff --git a/libs/config/test/no_auto_declarations_fail.cpp b/libs/config/test/no_auto_declarations_fail.cpp
new file mode 100644
index 0000000000..e13fb40d88
--- /dev/null
+++ b/libs/config/test/no_auto_declarations_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Thu Mar 12 17:32:04 2009
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_auto_declarations_fail.cpp 53445 2009-05-30 11:22:59Z bemandawes $
+//
+
+
+// Test file for macro BOOST_NO_AUTO_DECLARATIONS
+// This file should not compile, if it does then
+// BOOST_NO_AUTO_DECLARATIONS should not be defined.
+// See file boost_no_auto_declarations.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_AUTO_DECLARATIONS
+#include "boost_no_auto_declarations.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_auto_declarations::test();
+}
+
diff --git a/libs/config/test/no_auto_declarations_pass.cpp b/libs/config/test/no_auto_declarations_pass.cpp
new file mode 100644
index 0000000000..d8d695dc62
--- /dev/null
+++ b/libs/config/test/no_auto_declarations_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Thu Mar 12 17:32:04 2009
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_auto_declarations_pass.cpp 53445 2009-05-30 11:22:59Z bemandawes $
+//
+
+
+// Test file for macro BOOST_NO_AUTO_DECLARATIONS
+// This file should compile, if it does not then
+// BOOST_NO_AUTO_DECLARATIONS should be defined.
+// See file boost_no_auto_declarations.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_AUTO_DECLARATIONS
+#include "boost_no_auto_declarations.ipp"
+#else
+namespace boost_no_auto_declarations = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_auto_declarations::test();
+}
+
diff --git a/libs/config/test/no_auto_multidecl_fail.cpp b/libs/config/test/no_auto_multidecl_fail.cpp
new file mode 100644
index 0000000000..5ebfa6fdbd
--- /dev/null
+++ b/libs/config/test/no_auto_multidecl_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Thu Mar 12 17:32:04 2009
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_auto_multidecl_fail.cpp 53445 2009-05-30 11:22:59Z bemandawes $
+//
+
+
+// Test file for macro BOOST_NO_AUTO_MULTIDECLARATIONS
+// This file should not compile, if it does then
+// BOOST_NO_AUTO_MULTIDECLARATIONS should not be defined.
+// See file boost_no_auto_multidecl.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_AUTO_MULTIDECLARATIONS
+#include "boost_no_auto_multidecl.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_auto_multideclarations::test();
+}
+
diff --git a/libs/config/test/no_auto_multidecl_pass.cpp b/libs/config/test/no_auto_multidecl_pass.cpp
new file mode 100644
index 0000000000..37facb7525
--- /dev/null
+++ b/libs/config/test/no_auto_multidecl_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Thu Mar 12 17:32:04 2009
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_auto_multidecl_pass.cpp 53445 2009-05-30 11:22:59Z bemandawes $
+//
+
+
+// Test file for macro BOOST_NO_AUTO_MULTIDECLARATIONS
+// This file should compile, if it does not then
+// BOOST_NO_AUTO_MULTIDECLARATIONS should be defined.
+// See file boost_no_auto_multidecl.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_AUTO_MULTIDECLARATIONS
+#include "boost_no_auto_multidecl.ipp"
+#else
+namespace boost_no_auto_multideclarations = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_auto_multideclarations::test();
+}
+
diff --git a/libs/config/test/no_auto_ptr_fail.cpp b/libs/config/test/no_auto_ptr_fail.cpp
new file mode 100644
index 0000000000..da64bb92ce
--- /dev/null
+++ b/libs/config/test/no_auto_ptr_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:00 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_AUTO_PTR
+// This file should not compile, if it does then
+// BOOST_NO_AUTO_PTR should not be defined.
+// See file boost_no_auto_ptr.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_AUTO_PTR
+#include "boost_no_auto_ptr.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_auto_ptr::test();
+}
+
diff --git a/libs/config/test/no_auto_ptr_pass.cpp b/libs/config/test/no_auto_ptr_pass.cpp
new file mode 100644
index 0000000000..3a978a7447
--- /dev/null
+++ b/libs/config/test/no_auto_ptr_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:00 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_AUTO_PTR
+// This file should compile, if it does not then
+// BOOST_NO_AUTO_PTR should be defined.
+// See file boost_no_auto_ptr.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_AUTO_PTR
+#include "boost_no_auto_ptr.ipp"
+#else
+namespace boost_no_auto_ptr = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_auto_ptr::test();
+}
+
diff --git a/libs/config/test/no_bcb_partial_spec_fail.cpp b/libs/config/test/no_bcb_partial_spec_fail.cpp
new file mode 100644
index 0000000000..c19747bdd0
--- /dev/null
+++ b/libs/config/test/no_bcb_partial_spec_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:01 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_BCB_PARTIAL_SPECIALIZATION_BUG
+// This file should not compile, if it does then
+// BOOST_BCB_PARTIAL_SPECIALIZATION_BUG should not be defined.
+// See file boost_no_bcb_partial_spec.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_BCB_PARTIAL_SPECIALIZATION_BUG
+#include "boost_no_bcb_partial_spec.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_bcb_partial_specialization_bug::test();
+}
+
diff --git a/libs/config/test/no_bcb_partial_spec_pass.cpp b/libs/config/test/no_bcb_partial_spec_pass.cpp
new file mode 100644
index 0000000000..a6605bc85c
--- /dev/null
+++ b/libs/config/test/no_bcb_partial_spec_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:01 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_BCB_PARTIAL_SPECIALIZATION_BUG
+// This file should compile, if it does not then
+// BOOST_BCB_PARTIAL_SPECIALIZATION_BUG should be defined.
+// See file boost_no_bcb_partial_spec.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_BCB_PARTIAL_SPECIALIZATION_BUG
+#include "boost_no_bcb_partial_spec.ipp"
+#else
+namespace boost_bcb_partial_specialization_bug = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_bcb_partial_specialization_bug::test();
+}
+
diff --git a/libs/config/test/no_char16_t_fail.cpp b/libs/config/test/no_char16_t_fail.cpp
new file mode 100644
index 0000000000..75f3a348fe
--- /dev/null
+++ b/libs/config/test/no_char16_t_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Thu May 29 09:24:04 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_char16_t_fail.cpp 51606 2009-03-04 14:28:36Z bemandawes $
+//
+
+
+// Test file for macro BOOST_NO_CHAR16_T
+// This file should not compile, if it does then
+// BOOST_NO_CHAR16_T should not be defined.
+// See file boost_no_char16_t.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_CHAR16_T
+#include "boost_no_char16_t.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_char16_t::test();
+}
+
diff --git a/libs/config/test/no_char16_t_pass.cpp b/libs/config/test/no_char16_t_pass.cpp
new file mode 100644
index 0000000000..d090be6527
--- /dev/null
+++ b/libs/config/test/no_char16_t_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Thu May 29 09:24:04 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_char16_t_pass.cpp 51606 2009-03-04 14:28:36Z bemandawes $
+//
+
+
+// Test file for macro BOOST_NO_CHAR16_T
+// This file should compile, if it does not then
+// BOOST_NO_CHAR16_T should be defined.
+// See file boost_no_char16_t.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_CHAR16_T
+#include "boost_no_char16_t.ipp"
+#else
+namespace boost_no_char16_t = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_char16_t::test();
+}
+
diff --git a/libs/config/test/no_char32_t_fail.cpp b/libs/config/test/no_char32_t_fail.cpp
new file mode 100644
index 0000000000..36642201c9
--- /dev/null
+++ b/libs/config/test/no_char32_t_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Thu May 29 09:24:04 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_char32_t_fail.cpp 51606 2009-03-04 14:28:36Z bemandawes $
+//
+
+
+// Test file for macro BOOST_NO_CHAR32_T
+// This file should not compile, if it does then
+// BOOST_NO_CHAR32_T should not be defined.
+// See file boost_no_char32_t.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_CHAR32_T
+#include "boost_no_char32_t.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_char32_t::test();
+}
+
diff --git a/libs/config/test/no_char32_t_pass.cpp b/libs/config/test/no_char32_t_pass.cpp
new file mode 100644
index 0000000000..60ccbb7fc2
--- /dev/null
+++ b/libs/config/test/no_char32_t_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Thu May 29 09:24:04 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_char32_t_pass.cpp 51606 2009-03-04 14:28:36Z bemandawes $
+//
+
+
+// Test file for macro BOOST_NO_CHAR32_T
+// This file should compile, if it does not then
+// BOOST_NO_CHAR32_T should be defined.
+// See file boost_no_char32_t.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_CHAR32_T
+#include "boost_no_char32_t.ipp"
+#else
+namespace boost_no_char32_t = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_char32_t::test();
+}
+
diff --git a/libs/config/test/no_com_value_init_fail.cpp b/libs/config/test/no_com_value_init_fail.cpp
new file mode 100644
index 0000000000..ec89a85811
--- /dev/null
+++ b/libs/config/test/no_com_value_init_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Fri Apr 09 12:24:53 2010
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: generate.cpp 49281 2008-10-11 15:40:44Z johnmaddock $
+//
+
+
+// Test file for macro BOOST_NO_COMPLETE_VALUE_INITIALIZATION
+// This file should not compile, if it does then
+// BOOST_NO_COMPLETE_VALUE_INITIALIZATION should not be defined.
+// See file boost_no_com_value_init.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_COMPLETE_VALUE_INITIALIZATION
+#include "boost_no_com_value_init.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_complete_value_initialization::test();
+}
+
diff --git a/libs/config/test/no_com_value_init_pass.cpp b/libs/config/test/no_com_value_init_pass.cpp
new file mode 100644
index 0000000000..cfe00a22a0
--- /dev/null
+++ b/libs/config/test/no_com_value_init_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Fri Apr 09 12:24:53 2010
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: generate.cpp 49281 2008-10-11 15:40:44Z johnmaddock $
+//
+
+
+// Test file for macro BOOST_NO_COMPLETE_VALUE_INITIALIZATION
+// This file should compile, if it does not then
+// BOOST_NO_COMPLETE_VALUE_INITIALIZATION should be defined.
+// See file boost_no_com_value_init.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_COMPLETE_VALUE_INITIALIZATION
+#include "boost_no_com_value_init.ipp"
+#else
+namespace boost_no_complete_value_initialization = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_complete_value_initialization::test();
+}
+
diff --git a/libs/config/test/no_constexpr_fail.cpp b/libs/config/test/no_constexpr_fail.cpp
new file mode 100644
index 0000000000..4e1af46144
--- /dev/null
+++ b/libs/config/test/no_constexpr_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Thu Jun 19 16:26:16 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_constexpr_fail.cpp 51606 2009-03-04 14:28:36Z bemandawes $
+//
+
+
+// Test file for macro BOOST_NO_CONSTEXPR
+// This file should not compile, if it does then
+// BOOST_NO_CONSTEXPR should not be defined.
+// See file boost_no_constexpr.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_CONSTEXPR
+#include "boost_no_constexpr.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_constexpr::test();
+}
+
diff --git a/libs/config/test/no_constexpr_pass.cpp b/libs/config/test/no_constexpr_pass.cpp
new file mode 100644
index 0000000000..945ac7b88b
--- /dev/null
+++ b/libs/config/test/no_constexpr_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Thu Jun 19 16:26:16 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_constexpr_pass.cpp 51606 2009-03-04 14:28:36Z bemandawes $
+//
+
+
+// Test file for macro BOOST_NO_CONSTEXPR
+// This file should compile, if it does not then
+// BOOST_NO_CONSTEXPR should be defined.
+// See file boost_no_constexpr.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_CONSTEXPR
+#include "boost_no_constexpr.ipp"
+#else
+namespace boost_no_constexpr = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_constexpr::test();
+}
+
diff --git a/libs/config/test/no_ctype_functions_fail.cpp b/libs/config/test/no_ctype_functions_fail.cpp
new file mode 100644
index 0000000000..5379c7d184
--- /dev/null
+++ b/libs/config/test/no_ctype_functions_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:01 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_CTYPE_FUNCTIONS
+// This file should not compile, if it does then
+// BOOST_NO_CTYPE_FUNCTIONS should not be defined.
+// See file boost_no_ctype_functions.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_CTYPE_FUNCTIONS
+#include "boost_no_ctype_functions.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_ctype_functions::test();
+}
+
diff --git a/libs/config/test/no_ctype_functions_pass.cpp b/libs/config/test/no_ctype_functions_pass.cpp
new file mode 100644
index 0000000000..64e285fa1b
--- /dev/null
+++ b/libs/config/test/no_ctype_functions_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:01 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_CTYPE_FUNCTIONS
+// This file should compile, if it does not then
+// BOOST_NO_CTYPE_FUNCTIONS should be defined.
+// See file boost_no_ctype_functions.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_CTYPE_FUNCTIONS
+#include "boost_no_ctype_functions.ipp"
+#else
+namespace boost_no_ctype_functions = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_ctype_functions::test();
+}
+
diff --git a/libs/config/test/no_cv_spec_fail.cpp b/libs/config/test/no_cv_spec_fail.cpp
new file mode 100644
index 0000000000..8b2658fd1c
--- /dev/null
+++ b/libs/config/test/no_cv_spec_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:01 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_CV_SPECIALIZATIONS
+// This file should not compile, if it does then
+// BOOST_NO_CV_SPECIALIZATIONS should not be defined.
+// See file boost_no_cv_spec.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_CV_SPECIALIZATIONS
+#include "boost_no_cv_spec.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_cv_specializations::test();
+}
+
diff --git a/libs/config/test/no_cv_spec_pass.cpp b/libs/config/test/no_cv_spec_pass.cpp
new file mode 100644
index 0000000000..310c4efdbf
--- /dev/null
+++ b/libs/config/test/no_cv_spec_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:01 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_CV_SPECIALIZATIONS
+// This file should compile, if it does not then
+// BOOST_NO_CV_SPECIALIZATIONS should be defined.
+// See file boost_no_cv_spec.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_CV_SPECIALIZATIONS
+#include "boost_no_cv_spec.ipp"
+#else
+namespace boost_no_cv_specializations = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_cv_specializations::test();
+}
+
diff --git a/libs/config/test/no_cv_void_spec_fail.cpp b/libs/config/test/no_cv_void_spec_fail.cpp
new file mode 100644
index 0000000000..0608d56b32
--- /dev/null
+++ b/libs/config/test/no_cv_void_spec_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:01 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_CV_VOID_SPECIALIZATIONS
+// This file should not compile, if it does then
+// BOOST_NO_CV_VOID_SPECIALIZATIONS should not be defined.
+// See file boost_no_cv_void_spec.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_CV_VOID_SPECIALIZATIONS
+#include "boost_no_cv_void_spec.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_cv_void_specializations::test();
+}
+
diff --git a/libs/config/test/no_cv_void_spec_pass.cpp b/libs/config/test/no_cv_void_spec_pass.cpp
new file mode 100644
index 0000000000..7eac2959a5
--- /dev/null
+++ b/libs/config/test/no_cv_void_spec_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:01 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_CV_VOID_SPECIALIZATIONS
+// This file should compile, if it does not then
+// BOOST_NO_CV_VOID_SPECIALIZATIONS should be defined.
+// See file boost_no_cv_void_spec.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
+#include "boost_no_cv_void_spec.ipp"
+#else
+namespace boost_no_cv_void_specializations = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_cv_void_specializations::test();
+}
+
diff --git a/libs/config/test/no_cwchar_fail.cpp b/libs/config/test/no_cwchar_fail.cpp
new file mode 100644
index 0000000000..e49e9837c9
--- /dev/null
+++ b/libs/config/test/no_cwchar_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:01 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_CWCHAR
+// This file should not compile, if it does then
+// BOOST_NO_CWCHAR should not be defined.
+// See file boost_no_cwchar.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_CWCHAR
+#include "boost_no_cwchar.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_cwchar::test();
+}
+
diff --git a/libs/config/test/no_cwchar_pass.cpp b/libs/config/test/no_cwchar_pass.cpp
new file mode 100644
index 0000000000..ae82820f30
--- /dev/null
+++ b/libs/config/test/no_cwchar_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:01 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_CWCHAR
+// This file should compile, if it does not then
+// BOOST_NO_CWCHAR should be defined.
+// See file boost_no_cwchar.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_CWCHAR
+#include "boost_no_cwchar.ipp"
+#else
+namespace boost_no_cwchar = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_cwchar::test();
+}
+
diff --git a/libs/config/test/no_cwctype_fail.cpp b/libs/config/test/no_cwctype_fail.cpp
new file mode 100644
index 0000000000..85bdcbc94d
--- /dev/null
+++ b/libs/config/test/no_cwctype_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:01 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_CWCTYPE
+// This file should not compile, if it does then
+// BOOST_NO_CWCTYPE should not be defined.
+// See file boost_no_cwctype.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_CWCTYPE
+#include "boost_no_cwctype.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_cwctype::test();
+}
+
diff --git a/libs/config/test/no_cwctype_pass.cpp b/libs/config/test/no_cwctype_pass.cpp
new file mode 100644
index 0000000000..1cb1c4becc
--- /dev/null
+++ b/libs/config/test/no_cwctype_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:01 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_CWCTYPE
+// This file should compile, if it does not then
+// BOOST_NO_CWCTYPE should be defined.
+// See file boost_no_cwctype.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_CWCTYPE
+#include "boost_no_cwctype.ipp"
+#else
+namespace boost_no_cwctype = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_cwctype::test();
+}
+
diff --git a/libs/config/test/no_decltype_fail.cpp b/libs/config/test/no_decltype_fail.cpp
new file mode 100644
index 0000000000..7740c80517
--- /dev/null
+++ b/libs/config/test/no_decltype_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Thu May 29 07:24:54 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_decltype_fail.cpp 51606 2009-03-04 14:28:36Z bemandawes $
+//
+
+
+// Test file for macro BOOST_NO_DECLTYPE
+// This file should not compile, if it does then
+// BOOST_NO_DECLTYPE should not be defined.
+// See file boost_no_decltype.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_DECLTYPE
+#include "boost_no_decltype.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_decltype::test();
+}
+
diff --git a/libs/config/test/no_decltype_n3276_fail.cpp b/libs/config/test/no_decltype_n3276_fail.cpp
new file mode 100644
index 0000000000..10c8d3adc9
--- /dev/null
+++ b/libs/config/test/no_decltype_n3276_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Wed Jun 1 21:44:56 2011
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_decltype_n3276_fail.cpp 73153 2011-07-16 20:12:46Z eric_niebler $
+//
+
+
+// Test file for macro BOOST_NO_DECLTYPE_N3276
+// This file should not compile, if it does then
+// BOOST_NO_DECLTYPE_N3276 should not be defined.
+// See file boost_no_decltype_n3276.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_DECLTYPE_N3276
+#include "boost_no_decltype_n3276.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_decltype_n3276::test();
+}
+
diff --git a/libs/config/test/no_decltype_n3276_pass.cpp b/libs/config/test/no_decltype_n3276_pass.cpp
new file mode 100644
index 0000000000..95be21126a
--- /dev/null
+++ b/libs/config/test/no_decltype_n3276_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Wed Jun 1 21:44:56 2011
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_decltype_n3276_pass.cpp 73153 2011-07-16 20:12:46Z eric_niebler $
+//
+
+
+// Test file for macro BOOST_NO_DECLTYPE_N3276
+// This file should compile, if it does not then
+// BOOST_NO_DECLTYPE_N3276 should be defined.
+// See file boost_no_decltype_n3276.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_DECLTYPE_N3276
+#include "boost_no_decltype_n3276.ipp"
+#else
+namespace boost_no_decltype_n3276 = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_decltype_n3276::test();
+}
+
diff --git a/libs/config/test/no_decltype_pass.cpp b/libs/config/test/no_decltype_pass.cpp
new file mode 100644
index 0000000000..922712a48c
--- /dev/null
+++ b/libs/config/test/no_decltype_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Thu May 29 07:24:54 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_decltype_pass.cpp 51606 2009-03-04 14:28:36Z bemandawes $
+//
+
+
+// Test file for macro BOOST_NO_DECLTYPE
+// This file should compile, if it does not then
+// BOOST_NO_DECLTYPE should be defined.
+// See file boost_no_decltype.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_DECLTYPE
+#include "boost_no_decltype.ipp"
+#else
+namespace boost_no_decltype = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_decltype::test();
+}
+
diff --git a/libs/config/test/no_ded_typename_fail.cpp b/libs/config/test/no_ded_typename_fail.cpp
new file mode 100644
index 0000000000..d82937f2a8
--- /dev/null
+++ b/libs/config/test/no_ded_typename_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:01 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_DEDUCED_TYPENAME
+// This file should not compile, if it does then
+// BOOST_DEDUCED_TYPENAME should not be defined.
+// See file boost_no_ded_typename.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_DEDUCED_TYPENAME
+#include "boost_no_ded_typename.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_deduced_typename::test();
+}
+
diff --git a/libs/config/test/no_ded_typename_pass.cpp b/libs/config/test/no_ded_typename_pass.cpp
new file mode 100644
index 0000000000..fe59f36515
--- /dev/null
+++ b/libs/config/test/no_ded_typename_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:01 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_DEDUCED_TYPENAME
+// This file should compile, if it does not then
+// BOOST_DEDUCED_TYPENAME should be defined.
+// See file boost_no_ded_typename.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_DEDUCED_TYPENAME
+#include "boost_no_ded_typename.ipp"
+#else
+namespace boost_deduced_typename = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_deduced_typename::test();
+}
+
diff --git a/libs/config/test/no_defaulted_functions_fail.cpp b/libs/config/test/no_defaulted_functions_fail.cpp
new file mode 100644
index 0000000000..f7759049af
--- /dev/null
+++ b/libs/config/test/no_defaulted_functions_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Fri Jun 20 11:01:41 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_defaulted_functions_fail.cpp 51606 2009-03-04 14:28:36Z bemandawes $
+//
+
+
+// Test file for macro BOOST_NO_DEFAULTED_FUNCTIONS
+// This file should not compile, if it does then
+// BOOST_NO_DEFAULTED_FUNCTIONS should not be defined.
+// See file boost_no_defaulted_functions.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_DEFAULTED_FUNCTIONS
+#include "boost_no_defaulted_functions.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_defaulted_functions::test();
+}
+
diff --git a/libs/config/test/no_defaulted_functions_pass.cpp b/libs/config/test/no_defaulted_functions_pass.cpp
new file mode 100644
index 0000000000..8dd14d742e
--- /dev/null
+++ b/libs/config/test/no_defaulted_functions_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Fri Jun 20 11:01:41 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_defaulted_functions_pass.cpp 51606 2009-03-04 14:28:36Z bemandawes $
+//
+
+
+// Test file for macro BOOST_NO_DEFAULTED_FUNCTIONS
+// This file should compile, if it does not then
+// BOOST_NO_DEFAULTED_FUNCTIONS should be defined.
+// See file boost_no_defaulted_functions.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_DEFAULTED_FUNCTIONS
+#include "boost_no_defaulted_functions.ipp"
+#else
+namespace boost_no_defaulted_functions = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_defaulted_functions::test();
+}
+
diff --git a/libs/config/test/no_deleted_functions_fail.cpp b/libs/config/test/no_deleted_functions_fail.cpp
new file mode 100644
index 0000000000..db1322ebad
--- /dev/null
+++ b/libs/config/test/no_deleted_functions_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Thu Jun 19 16:26:16 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_deleted_functions_fail.cpp 51606 2009-03-04 14:28:36Z bemandawes $
+//
+
+
+// Test file for macro BOOST_NO_DELETED_FUNCTIONS
+// This file should not compile, if it does then
+// BOOST_NO_DELETED_FUNCTIONS should not be defined.
+// See file boost_no_deleted_functions.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_DELETED_FUNCTIONS
+#include "boost_no_deleted_functions.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_deleted_functions::test();
+}
+
diff --git a/libs/config/test/no_deleted_functions_pass.cpp b/libs/config/test/no_deleted_functions_pass.cpp
new file mode 100644
index 0000000000..c6a6ad6386
--- /dev/null
+++ b/libs/config/test/no_deleted_functions_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Thu Jun 19 16:26:16 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_deleted_functions_pass.cpp 51606 2009-03-04 14:28:36Z bemandawes $
+//
+
+
+// Test file for macro BOOST_NO_DELETED_FUNCTIONS
+// This file should compile, if it does not then
+// BOOST_NO_DELETED_FUNCTIONS should be defined.
+// See file boost_no_deleted_functions.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_DELETED_FUNCTIONS
+#include "boost_no_deleted_functions.ipp"
+#else
+namespace boost_no_deleted_functions = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_deleted_functions::test();
+}
+
diff --git a/libs/config/test/no_dep_nested_class_fail.cpp b/libs/config/test/no_dep_nested_class_fail.cpp
new file mode 100644
index 0000000000..ca98977c85
--- /dev/null
+++ b/libs/config/test/no_dep_nested_class_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:01 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
+// This file should not compile, if it does then
+// BOOST_NO_DEPENDENT_NESTED_DERIVATIONS should not be defined.
+// See file boost_no_dep_nested_class.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
+#include "boost_no_dep_nested_class.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_dependent_nested_derivations::test();
+}
+
diff --git a/libs/config/test/no_dep_nested_class_pass.cpp b/libs/config/test/no_dep_nested_class_pass.cpp
new file mode 100644
index 0000000000..1eaa6e616c
--- /dev/null
+++ b/libs/config/test/no_dep_nested_class_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:01 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
+// This file should compile, if it does not then
+// BOOST_NO_DEPENDENT_NESTED_DERIVATIONS should be defined.
+// See file boost_no_dep_nested_class.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
+#include "boost_no_dep_nested_class.ipp"
+#else
+namespace boost_no_dependent_nested_derivations = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_dependent_nested_derivations::test();
+}
+
diff --git a/libs/config/test/no_dep_val_param_fail.cpp b/libs/config/test/no_dep_val_param_fail.cpp
new file mode 100644
index 0000000000..1c0a96f451
--- /dev/null
+++ b/libs/config/test/no_dep_val_param_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:01 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
+// This file should not compile, if it does then
+// BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS should not be defined.
+// See file boost_no_dep_val_param.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
+#include "boost_no_dep_val_param.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_dependent_types_in_template_value_parameters::test();
+}
+
diff --git a/libs/config/test/no_dep_val_param_pass.cpp b/libs/config/test/no_dep_val_param_pass.cpp
new file mode 100644
index 0000000000..57f6bdf211
--- /dev/null
+++ b/libs/config/test/no_dep_val_param_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:01 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
+// This file should compile, if it does not then
+// BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS should be defined.
+// See file boost_no_dep_val_param.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
+#include "boost_no_dep_val_param.ipp"
+#else
+namespace boost_no_dependent_types_in_template_value_parameters = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_dependent_types_in_template_value_parameters::test();
+}
+
diff --git a/libs/config/test/no_excep_std_fail.cpp b/libs/config/test/no_excep_std_fail.cpp
new file mode 100644
index 0000000000..0c557ac45b
--- /dev/null
+++ b/libs/config/test/no_excep_std_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:01 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_EXCEPTION_STD_NAMESPACE
+// This file should not compile, if it does then
+// BOOST_NO_EXCEPTION_STD_NAMESPACE should not be defined.
+// See file boost_no_excep_std.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_EXCEPTION_STD_NAMESPACE
+#include "boost_no_excep_std.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_exception_std_namespace::test();
+}
+
diff --git a/libs/config/test/no_excep_std_pass.cpp b/libs/config/test/no_excep_std_pass.cpp
new file mode 100644
index 0000000000..9b5f9ca1c0
--- /dev/null
+++ b/libs/config/test/no_excep_std_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:01 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_EXCEPTION_STD_NAMESPACE
+// This file should compile, if it does not then
+// BOOST_NO_EXCEPTION_STD_NAMESPACE should be defined.
+// See file boost_no_excep_std.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_EXCEPTION_STD_NAMESPACE
+#include "boost_no_excep_std.ipp"
+#else
+namespace boost_no_exception_std_namespace = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_exception_std_namespace::test();
+}
+
diff --git a/libs/config/test/no_exceptions_fail.cpp b/libs/config/test/no_exceptions_fail.cpp
new file mode 100644
index 0000000000..e1f3f4902e
--- /dev/null
+++ b/libs/config/test/no_exceptions_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:01 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_EXCEPTIONS
+// This file should not compile, if it does then
+// BOOST_NO_EXCEPTIONS should not be defined.
+// See file boost_no_exceptions.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_EXCEPTIONS
+#include "boost_no_exceptions.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_exceptions::test();
+}
+
diff --git a/libs/config/test/no_exceptions_pass.cpp b/libs/config/test/no_exceptions_pass.cpp
new file mode 100644
index 0000000000..f2bf582143
--- /dev/null
+++ b/libs/config/test/no_exceptions_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:01 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_EXCEPTIONS
+// This file should compile, if it does not then
+// BOOST_NO_EXCEPTIONS should be defined.
+// See file boost_no_exceptions.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_EXCEPTIONS
+#include "boost_no_exceptions.ipp"
+#else
+namespace boost_no_exceptions = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_exceptions::test();
+}
+
diff --git a/libs/config/test/no_exp_func_tem_arg_fail.cpp b/libs/config/test/no_exp_func_tem_arg_fail.cpp
new file mode 100644
index 0000000000..e491c4dba8
--- /dev/null
+++ b/libs/config/test/no_exp_func_tem_arg_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:01 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
+// This file should not compile, if it does then
+// BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS should not be defined.
+// See file boost_no_exp_func_tem_arg.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
+#include "boost_no_exp_func_tem_arg.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_explicit_function_template_arguments::test();
+}
+
diff --git a/libs/config/test/no_exp_func_tem_arg_pass.cpp b/libs/config/test/no_exp_func_tem_arg_pass.cpp
new file mode 100644
index 0000000000..6e23777884
--- /dev/null
+++ b/libs/config/test/no_exp_func_tem_arg_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:01 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
+// This file should compile, if it does not then
+// BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS should be defined.
+// See file boost_no_exp_func_tem_arg.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
+#include "boost_no_exp_func_tem_arg.ipp"
+#else
+namespace boost_no_explicit_function_template_arguments = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_explicit_function_template_arguments::test();
+}
+
diff --git a/libs/config/test/no_explicit_cvt_ops_fail.cpp b/libs/config/test/no_explicit_cvt_ops_fail.cpp
new file mode 100644
index 0000000000..ca78a2435a
--- /dev/null
+++ b/libs/config/test/no_explicit_cvt_ops_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Fri Jun 20 11:51:15 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_explicit_cvt_ops_fail.cpp 51606 2009-03-04 14:28:36Z bemandawes $
+//
+
+
+// Test file for macro BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
+// This file should not compile, if it does then
+// BOOST_NO_EXPLICIT_CONVERSION_OPERATORS should not be defined.
+// See file boost_no_explicit_cvt_ops.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
+#include "boost_no_explicit_cvt_ops.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_explicit_conversion_operators::test();
+}
+
diff --git a/libs/config/test/no_explicit_cvt_ops_pass.cpp b/libs/config/test/no_explicit_cvt_ops_pass.cpp
new file mode 100644
index 0000000000..ca0191194d
--- /dev/null
+++ b/libs/config/test/no_explicit_cvt_ops_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Fri Jun 20 11:51:15 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_explicit_cvt_ops_pass.cpp 51606 2009-03-04 14:28:36Z bemandawes $
+//
+
+
+// Test file for macro BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
+// This file should compile, if it does not then
+// BOOST_NO_EXPLICIT_CONVERSION_OPERATORS should be defined.
+// See file boost_no_explicit_cvt_ops.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
+#include "boost_no_explicit_cvt_ops.ipp"
+#else
+namespace boost_no_explicit_conversion_operators = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_explicit_conversion_operators::test();
+}
+
diff --git a/libs/config/test/no_extern_template_fail.cpp b/libs/config/test/no_extern_template_fail.cpp
new file mode 100644
index 0000000000..ecae4c2251
--- /dev/null
+++ b/libs/config/test/no_extern_template_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Thu May 29 09:24:04 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_extern_template_fail.cpp 51606 2009-03-04 14:28:36Z bemandawes $
+//
+
+
+// Test file for macro BOOST_NO_EXTERN_TEMPLATE
+// This file should not compile, if it does then
+// BOOST_NO_EXTERN_TEMPLATE should not be defined.
+// See file boost_no_extern_template.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_EXTERN_TEMPLATE
+#include "boost_no_extern_template.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_extern_template::test();
+}
+
diff --git a/libs/config/test/no_extern_template_pass.cpp b/libs/config/test/no_extern_template_pass.cpp
new file mode 100644
index 0000000000..ca456d71b5
--- /dev/null
+++ b/libs/config/test/no_extern_template_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Thu May 29 09:24:04 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_extern_template_pass.cpp 51606 2009-03-04 14:28:36Z bemandawes $
+//
+
+
+// Test file for macro BOOST_NO_EXTERN_TEMPLATE
+// This file should compile, if it does not then
+// BOOST_NO_EXTERN_TEMPLATE should be defined.
+// See file boost_no_extern_template.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_EXTERN_TEMPLATE
+#include "boost_no_extern_template.ipp"
+#else
+namespace boost_no_extern_template = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_extern_template::test();
+}
+
diff --git a/libs/config/test/no_fenv_h_fail.cpp b/libs/config/test/no_fenv_h_fail.cpp
new file mode 100644
index 0000000000..9b2f41039c
--- /dev/null
+++ b/libs/config/test/no_fenv_h_fail.cpp
@@ -0,0 +1,33 @@
+// Copyright Bryce Lelbach 2010.
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_FENV_H
+// This file should not compile, if it does then
+// BOOST_NO_FENV_H should not be defined.
+// See file boost_no_fenv_h.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_FENV_H
+#include "boost_no_fenv_h.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_fenv_h::test();
+}
+
diff --git a/libs/config/test/no_fenv_h_pass.cpp b/libs/config/test/no_fenv_h_pass.cpp
new file mode 100644
index 0000000000..573d62449e
--- /dev/null
+++ b/libs/config/test/no_fenv_h_pass.cpp
@@ -0,0 +1,33 @@
+// Copyright Bryce Lelbach 2010.
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_FENV_H
+// This file should compile, if it does not then
+// BOOST_NO_FENV_H should be defined.
+// See file boost_no_fenv_h.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_FENV_H
+#include "boost_no_fenv_h.ipp"
+#else
+namespace boost_no_fenv_h = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_fenv_h::test();
+}
+
diff --git a/libs/config/test/no_func_tmp_order_fail.cpp b/libs/config/test/no_func_tmp_order_fail.cpp
new file mode 100644
index 0000000000..7736e908d6
--- /dev/null
+++ b/libs/config/test/no_func_tmp_order_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:01 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_FUNCTION_TEMPLATE_ORDERING
+// This file should not compile, if it does then
+// BOOST_NO_FUNCTION_TEMPLATE_ORDERING should not be defined.
+// See file boost_no_func_tmp_order.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_FUNCTION_TEMPLATE_ORDERING
+#include "boost_no_func_tmp_order.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_function_template_ordering::test();
+}
+
diff --git a/libs/config/test/no_func_tmp_order_pass.cpp b/libs/config/test/no_func_tmp_order_pass.cpp
new file mode 100644
index 0000000000..003829f54b
--- /dev/null
+++ b/libs/config/test/no_func_tmp_order_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:01 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_FUNCTION_TEMPLATE_ORDERING
+// This file should compile, if it does not then
+// BOOST_NO_FUNCTION_TEMPLATE_ORDERING should be defined.
+// See file boost_no_func_tmp_order.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING
+#include "boost_no_func_tmp_order.ipp"
+#else
+namespace boost_no_function_template_ordering = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_function_template_ordering::test();
+}
+
diff --git a/libs/config/test/no_function_template_default_args_fail.cpp b/libs/config/test/no_function_template_default_args_fail.cpp
new file mode 100644
index 0000000000..a551130de3
--- /dev/null
+++ b/libs/config/test/no_function_template_default_args_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Sun Aug 02 08:25:59 2009
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_function_template_default_args_fail.cpp 56678 2009-10-09 16:16:02Z johnmaddock $
+//
+
+
+// Test file for macro BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
+// This file should not compile, if it does then
+// BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS should not be defined.
+// See file boost_no_function_template_default_args.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
+#include "boost_no_function_template_default_args.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_function_template_default_args::test();
+}
+
diff --git a/libs/config/test/no_function_template_default_args_pass.cpp b/libs/config/test/no_function_template_default_args_pass.cpp
new file mode 100644
index 0000000000..346d653da2
--- /dev/null
+++ b/libs/config/test/no_function_template_default_args_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Sun Aug 02 08:25:59 2009
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_function_template_default_args_pass.cpp 56678 2009-10-09 16:16:02Z johnmaddock $
+//
+
+
+// Test file for macro BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
+// This file should compile, if it does not then
+// BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS should be defined.
+// See file boost_no_function_template_default_args.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
+#include "boost_no_function_template_default_args.ipp"
+#else
+namespace boost_no_function_template_default_args = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_function_template_default_args::test();
+}
+
diff --git a/libs/config/test/no_function_type_spec_fail.cpp b/libs/config/test/no_function_type_spec_fail.cpp
new file mode 100644
index 0000000000..6ae1dba27b
--- /dev/null
+++ b/libs/config/test/no_function_type_spec_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Sun Dec 31 16:23:48 2006
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS
+// This file should not compile, if it does then
+// BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS should not be defined.
+// See file boost_no_function_type_spec.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS
+#include "boost_no_function_type_spec.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_function_type_specializations::test();
+}
+
diff --git a/libs/config/test/no_function_type_spec_pass.cpp b/libs/config/test/no_function_type_spec_pass.cpp
new file mode 100644
index 0000000000..e70de0c407
--- /dev/null
+++ b/libs/config/test/no_function_type_spec_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Sun Dec 31 16:23:48 2006
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS
+// This file should compile, if it does not then
+// BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS should be defined.
+// See file boost_no_function_type_spec.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS
+#include "boost_no_function_type_spec.ipp"
+#else
+namespace boost_no_function_type_specializations = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_function_type_specializations::test();
+}
+
diff --git a/libs/config/test/no_i64_limits_fail.cpp b/libs/config/test/no_i64_limits_fail.cpp
new file mode 100644
index 0000000000..63f01b342b
--- /dev/null
+++ b/libs/config/test/no_i64_limits_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:01 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_MS_INT64_NUMERIC_LIMITS
+// This file should not compile, if it does then
+// BOOST_NO_MS_INT64_NUMERIC_LIMITS should not be defined.
+// See file boost_no_i64_limits.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_MS_INT64_NUMERIC_LIMITS
+#include "boost_no_i64_limits.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_ms_int64_numeric_limits::test();
+}
+
diff --git a/libs/config/test/no_i64_limits_pass.cpp b/libs/config/test/no_i64_limits_pass.cpp
new file mode 100644
index 0000000000..58e63e7100
--- /dev/null
+++ b/libs/config/test/no_i64_limits_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:01 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_MS_INT64_NUMERIC_LIMITS
+// This file should compile, if it does not then
+// BOOST_NO_MS_INT64_NUMERIC_LIMITS should be defined.
+// See file boost_no_i64_limits.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_MS_INT64_NUMERIC_LIMITS
+#include "boost_no_i64_limits.ipp"
+#else
+namespace boost_no_ms_int64_numeric_limits = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_ms_int64_numeric_limits::test();
+}
+
diff --git a/libs/config/test/no_initializer_lists_fail.cpp b/libs/config/test/no_initializer_lists_fail.cpp
new file mode 100644
index 0000000000..633c051f3c
--- /dev/null
+++ b/libs/config/test/no_initializer_lists_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Wed Sep 24 11:44:21 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_initializer_lists_fail.cpp 50451 2009-01-03 23:18:33Z danieljames $
+//
+
+
+// Test file for macro BOOST_NO_INITIALIZER_LISTS
+// This file should not compile, if it does then
+// BOOST_NO_INITIALIZER_LISTS should not be defined.
+// See file boost_no_initializer_lists.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_INITIALIZER_LISTS
+#include "boost_no_initializer_lists.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_initializer_lists::test();
+}
+
diff --git a/libs/config/test/no_initializer_lists_pass.cpp b/libs/config/test/no_initializer_lists_pass.cpp
new file mode 100644
index 0000000000..02e67c06c5
--- /dev/null
+++ b/libs/config/test/no_initializer_lists_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Wed Sep 24 11:44:21 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_initializer_lists_pass.cpp 50451 2009-01-03 23:18:33Z danieljames $
+//
+
+
+// Test file for macro BOOST_NO_INITIALIZER_LISTS
+// This file should compile, if it does not then
+// BOOST_NO_INITIALIZER_LISTS should be defined.
+// See file boost_no_initializer_lists.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_INITIALIZER_LISTS
+#include "boost_no_initializer_lists.ipp"
+#else
+namespace boost_no_initializer_lists = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_initializer_lists::test();
+}
+
diff --git a/libs/config/test/no_inline_memb_init_fail.cpp b/libs/config/test/no_inline_memb_init_fail.cpp
new file mode 100644
index 0000000000..e4b9a6f6f1
--- /dev/null
+++ b/libs/config/test/no_inline_memb_init_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:01 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_INCLASS_MEMBER_INITIALIZATION
+// This file should not compile, if it does then
+// BOOST_NO_INCLASS_MEMBER_INITIALIZATION should not be defined.
+// See file boost_no_inline_memb_init.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_INCLASS_MEMBER_INITIALIZATION
+#include "boost_no_inline_memb_init.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_inclass_member_initialization::test();
+}
+
diff --git a/libs/config/test/no_inline_memb_init_pass.cpp b/libs/config/test/no_inline_memb_init_pass.cpp
new file mode 100644
index 0000000000..1b51313401
--- /dev/null
+++ b/libs/config/test/no_inline_memb_init_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:01 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_INCLASS_MEMBER_INITIALIZATION
+// This file should compile, if it does not then
+// BOOST_NO_INCLASS_MEMBER_INITIALIZATION should be defined.
+// See file boost_no_inline_memb_init.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_INCLASS_MEMBER_INITIALIZATION
+#include "boost_no_inline_memb_init.ipp"
+#else
+namespace boost_no_inclass_member_initialization = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_inclass_member_initialization::test();
+}
+
diff --git a/libs/config/test/no_integral_int64_t_fail.cpp b/libs/config/test/no_integral_int64_t_fail.cpp
new file mode 100644
index 0000000000..92280dfd6b
--- /dev/null
+++ b/libs/config/test/no_integral_int64_t_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:01 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_INTEGRAL_INT64_T
+// This file should not compile, if it does then
+// BOOST_NO_INTEGRAL_INT64_T should not be defined.
+// See file boost_no_integral_int64_t.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_INTEGRAL_INT64_T
+#include "boost_no_integral_int64_t.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_integral_int64_t::test();
+}
+
diff --git a/libs/config/test/no_integral_int64_t_pass.cpp b/libs/config/test/no_integral_int64_t_pass.cpp
new file mode 100644
index 0000000000..012a562fed
--- /dev/null
+++ b/libs/config/test/no_integral_int64_t_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:01 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_INTEGRAL_INT64_T
+// This file should compile, if it does not then
+// BOOST_NO_INTEGRAL_INT64_T should be defined.
+// See file boost_no_integral_int64_t.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_INTEGRAL_INT64_T
+#include "boost_no_integral_int64_t.ipp"
+#else
+namespace boost_no_integral_int64_t = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_integral_int64_t::test();
+}
+
diff --git a/libs/config/test/no_iosfwd_fail.cpp b/libs/config/test/no_iosfwd_fail.cpp
new file mode 100644
index 0000000000..a1c6d91887
--- /dev/null
+++ b/libs/config/test/no_iosfwd_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Sat Aug 25 12:32:21 2007
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_IOSFWD
+// This file should not compile, if it does then
+// BOOST_NO_IOSFWD should not be defined.
+// See file boost_no_iosfwd.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_IOSFWD
+#include "boost_no_iosfwd.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_iosfwd::test();
+}
+
diff --git a/libs/config/test/no_iosfwd_pass.cpp b/libs/config/test/no_iosfwd_pass.cpp
new file mode 100644
index 0000000000..6e631d9034
--- /dev/null
+++ b/libs/config/test/no_iosfwd_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Sat Aug 25 12:32:21 2007
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_IOSFWD
+// This file should compile, if it does not then
+// BOOST_NO_IOSFWD should be defined.
+// See file boost_no_iosfwd.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_IOSFWD
+#include "boost_no_iosfwd.ipp"
+#else
+namespace boost_no_iosfwd = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_iosfwd::test();
+}
+
diff --git a/libs/config/test/no_iostream_fail.cpp b/libs/config/test/no_iostream_fail.cpp
new file mode 100644
index 0000000000..67a8459550
--- /dev/null
+++ b/libs/config/test/no_iostream_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Sat Aug 25 12:32:21 2007
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_IOSTREAM
+// This file should not compile, if it does then
+// BOOST_NO_IOSTREAM should not be defined.
+// See file boost_no_iostream.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_IOSTREAM
+#include "boost_no_iostream.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_iostream::test();
+}
+
diff --git a/libs/config/test/no_iostream_pass.cpp b/libs/config/test/no_iostream_pass.cpp
new file mode 100644
index 0000000000..ba1d0ac30b
--- /dev/null
+++ b/libs/config/test/no_iostream_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Sat Aug 25 12:32:21 2007
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_IOSTREAM
+// This file should compile, if it does not then
+// BOOST_NO_IOSTREAM should be defined.
+// See file boost_no_iostream.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_IOSTREAM
+#include "boost_no_iostream.ipp"
+#else
+namespace boost_no_iostream = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_iostream::test();
+}
+
diff --git a/libs/config/test/no_is_abstract_fail.cpp b/libs/config/test/no_is_abstract_fail.cpp
new file mode 100644
index 0000000000..1a5c57befc
--- /dev/null
+++ b/libs/config/test/no_is_abstract_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:01 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_IS_ABSTRACT
+// This file should not compile, if it does then
+// BOOST_NO_IS_ABSTRACT should not be defined.
+// See file boost_no_is_abstract.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_IS_ABSTRACT
+#include "boost_no_is_abstract.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_is_abstract::test();
+}
+
diff --git a/libs/config/test/no_is_abstract_pass.cpp b/libs/config/test/no_is_abstract_pass.cpp
new file mode 100644
index 0000000000..a9caf68635
--- /dev/null
+++ b/libs/config/test/no_is_abstract_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:01 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_IS_ABSTRACT
+// This file should compile, if it does not then
+// BOOST_NO_IS_ABSTRACT should be defined.
+// See file boost_no_is_abstract.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_IS_ABSTRACT
+#include "boost_no_is_abstract.ipp"
+#else
+namespace boost_no_is_abstract = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_is_abstract::test();
+}
+
diff --git a/libs/config/test/no_iter_construct_fail.cpp b/libs/config/test/no_iter_construct_fail.cpp
new file mode 100644
index 0000000000..bc618648ae
--- /dev/null
+++ b/libs/config/test/no_iter_construct_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:01 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
+// This file should not compile, if it does then
+// BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS should not be defined.
+// See file boost_no_iter_construct.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
+#include "boost_no_iter_construct.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_templated_iterator_constructors::test();
+}
+
diff --git a/libs/config/test/no_iter_construct_pass.cpp b/libs/config/test/no_iter_construct_pass.cpp
new file mode 100644
index 0000000000..6d063bedfd
--- /dev/null
+++ b/libs/config/test/no_iter_construct_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:01 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
+// This file should compile, if it does not then
+// BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS should be defined.
+// See file boost_no_iter_construct.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
+#include "boost_no_iter_construct.ipp"
+#else
+namespace boost_no_templated_iterator_constructors = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_templated_iterator_constructors::test();
+}
+
diff --git a/libs/config/test/no_lambdas_fail.cpp b/libs/config/test/no_lambdas_fail.cpp
new file mode 100644
index 0000000000..bf4e658e24
--- /dev/null
+++ b/libs/config/test/no_lambdas_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Thu May 14 16:01:35 2009
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_lambdas_fail.cpp 53445 2009-05-30 11:22:59Z bemandawes $
+//
+
+
+// Test file for macro BOOST_NO_LAMBDAS
+// This file should not compile, if it does then
+// BOOST_NO_LAMBDAS should not be defined.
+// See file boost_no_lambdas.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_LAMBDAS
+#include "boost_no_lambdas.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_lambdas::test();
+}
+
diff --git a/libs/config/test/no_lambdas_pass.cpp b/libs/config/test/no_lambdas_pass.cpp
new file mode 100644
index 0000000000..a5d199751c
--- /dev/null
+++ b/libs/config/test/no_lambdas_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Thu May 14 16:01:35 2009
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_lambdas_pass.cpp 53445 2009-05-30 11:22:59Z bemandawes $
+//
+
+
+// Test file for macro BOOST_NO_LAMBDAS
+// This file should compile, if it does not then
+// BOOST_NO_LAMBDAS should be defined.
+// See file boost_no_lambdas.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_LAMBDAS
+#include "boost_no_lambdas.ipp"
+#else
+namespace boost_no_lambdas = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_lambdas::test();
+}
+
diff --git a/libs/config/test/no_limits_const_exp_fail.cpp b/libs/config/test/no_limits_const_exp_fail.cpp
new file mode 100644
index 0000000000..9f916d9bd3
--- /dev/null
+++ b/libs/config/test/no_limits_const_exp_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:01 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
+// This file should not compile, if it does then
+// BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS should not be defined.
+// See file boost_no_limits_const_exp.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
+#include "boost_no_limits_const_exp.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_limits_compile_time_constants::test();
+}
+
diff --git a/libs/config/test/no_limits_const_exp_pass.cpp b/libs/config/test/no_limits_const_exp_pass.cpp
new file mode 100644
index 0000000000..a280b76579
--- /dev/null
+++ b/libs/config/test/no_limits_const_exp_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:01 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
+// This file should compile, if it does not then
+// BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS should be defined.
+// See file boost_no_limits_const_exp.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
+#include "boost_no_limits_const_exp.ipp"
+#else
+namespace boost_no_limits_compile_time_constants = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_limits_compile_time_constants::test();
+}
+
diff --git a/libs/config/test/no_limits_fail.cpp b/libs/config/test/no_limits_fail.cpp
new file mode 100644
index 0000000000..d685397cc0
--- /dev/null
+++ b/libs/config/test/no_limits_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:01 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_LIMITS
+// This file should not compile, if it does then
+// BOOST_NO_LIMITS should not be defined.
+// See file boost_no_limits.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_LIMITS
+#include "boost_no_limits.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_limits::test();
+}
+
diff --git a/libs/config/test/no_limits_lowest_fail.cpp b/libs/config/test/no_limits_lowest_fail.cpp
new file mode 100644
index 0000000000..d58aa04e33
--- /dev/null
+++ b/libs/config/test/no_limits_lowest_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Sat Sep 25 16:53:41 2010
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: generate.cpp 49281 2008-10-11 15:40:44Z johnmaddock $
+//
+
+
+// Test file for macro BOOST_NO_NUMERIC_LIMITS_LOWEST
+// This file should not compile, if it does then
+// BOOST_NO_NUMERIC_LIMITS_LOWEST should not be defined.
+// See file boost_no_limits_lowest.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_NUMERIC_LIMITS_LOWEST
+#include "boost_no_limits_lowest.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_numeric_limits_lowest::test();
+}
+
diff --git a/libs/config/test/no_limits_lowest_pass.cpp b/libs/config/test/no_limits_lowest_pass.cpp
new file mode 100644
index 0000000000..d6af60bd6d
--- /dev/null
+++ b/libs/config/test/no_limits_lowest_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Sat Sep 25 16:53:41 2010
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: generate.cpp 49281 2008-10-11 15:40:44Z johnmaddock $
+//
+
+
+// Test file for macro BOOST_NO_NUMERIC_LIMITS_LOWEST
+// This file should compile, if it does not then
+// BOOST_NO_NUMERIC_LIMITS_LOWEST should be defined.
+// See file boost_no_limits_lowest.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_NUMERIC_LIMITS_LOWEST
+#include "boost_no_limits_lowest.ipp"
+#else
+namespace boost_no_numeric_limits_lowest = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_numeric_limits_lowest::test();
+}
+
diff --git a/libs/config/test/no_limits_pass.cpp b/libs/config/test/no_limits_pass.cpp
new file mode 100644
index 0000000000..7d77cac325
--- /dev/null
+++ b/libs/config/test/no_limits_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:01 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_LIMITS
+// This file should compile, if it does not then
+// BOOST_NO_LIMITS should be defined.
+// See file boost_no_limits.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_LIMITS
+#include "boost_no_limits.ipp"
+#else
+namespace boost_no_limits = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_limits::test();
+}
+
diff --git a/libs/config/test/no_ll_limits_fail.cpp b/libs/config/test/no_ll_limits_fail.cpp
new file mode 100644
index 0000000000..477262c7b6
--- /dev/null
+++ b/libs/config/test/no_ll_limits_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:01 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_LONG_LONG_NUMERIC_LIMITS
+// This file should not compile, if it does then
+// BOOST_NO_LONG_LONG_NUMERIC_LIMITS should not be defined.
+// See file boost_no_ll_limits.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_LONG_LONG_NUMERIC_LIMITS
+#include "boost_no_ll_limits.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_long_long_numeric_limits::test();
+}
+
diff --git a/libs/config/test/no_ll_limits_pass.cpp b/libs/config/test/no_ll_limits_pass.cpp
new file mode 100644
index 0000000000..2c6a3860a6
--- /dev/null
+++ b/libs/config/test/no_ll_limits_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:01 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_LONG_LONG_NUMERIC_LIMITS
+// This file should compile, if it does not then
+// BOOST_NO_LONG_LONG_NUMERIC_LIMITS should be defined.
+// See file boost_no_ll_limits.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_LONG_LONG_NUMERIC_LIMITS
+#include "boost_no_ll_limits.ipp"
+#else
+namespace boost_no_long_long_numeric_limits = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_long_long_numeric_limits::test();
+}
+
diff --git a/libs/config/test/no_long_long_fail.cpp b/libs/config/test/no_long_long_fail.cpp
new file mode 100644
index 0000000000..e95456cb45
--- /dev/null
+++ b/libs/config/test/no_long_long_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Thu May 29 07:24:54 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_long_long_fail.cpp 51606 2009-03-04 14:28:36Z bemandawes $
+//
+
+
+// Test file for macro BOOST_NO_LONG_LONG
+// This file should not compile, if it does then
+// BOOST_NO_LONG_LONG should not be defined.
+// See file boost_no_long_long.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_LONG_LONG
+#include "boost_no_long_long.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_long_long::test();
+}
+
diff --git a/libs/config/test/no_long_long_pass.cpp b/libs/config/test/no_long_long_pass.cpp
new file mode 100644
index 0000000000..2233b376b9
--- /dev/null
+++ b/libs/config/test/no_long_long_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Thu May 29 07:24:54 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_long_long_pass.cpp 51606 2009-03-04 14:28:36Z bemandawes $
+//
+
+
+// Test file for macro BOOST_NO_LONG_LONG
+// This file should compile, if it does not then
+// BOOST_NO_LONG_LONG should be defined.
+// See file boost_no_long_long.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_LONG_LONG
+#include "boost_no_long_long.ipp"
+#else
+namespace boost_no_long_long = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_long_long::test();
+}
+
diff --git a/libs/config/test/no_mem_func_spec_fail.cpp b/libs/config/test/no_mem_func_spec_fail.cpp
new file mode 100644
index 0000000000..4216ed4098
--- /dev/null
+++ b/libs/config/test/no_mem_func_spec_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:01 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
+// This file should not compile, if it does then
+// BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS should not be defined.
+// See file boost_no_mem_func_spec.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
+#include "boost_no_mem_func_spec.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_member_function_specializations::test();
+}
+
diff --git a/libs/config/test/no_mem_func_spec_pass.cpp b/libs/config/test/no_mem_func_spec_pass.cpp
new file mode 100644
index 0000000000..a26ceb0e3b
--- /dev/null
+++ b/libs/config/test/no_mem_func_spec_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:01 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
+// This file should compile, if it does not then
+// BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS should be defined.
+// See file boost_no_mem_func_spec.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
+#include "boost_no_mem_func_spec.ipp"
+#else
+namespace boost_no_member_function_specializations = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_member_function_specializations::test();
+}
+
diff --git a/libs/config/test/no_mem_tem_keyword_fail.cpp b/libs/config/test/no_mem_tem_keyword_fail.cpp
new file mode 100644
index 0000000000..fe6b962894
--- /dev/null
+++ b/libs/config/test/no_mem_tem_keyword_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:02 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_MEMBER_TEMPLATE_KEYWORD
+// This file should not compile, if it does then
+// BOOST_NO_MEMBER_TEMPLATE_KEYWORD should not be defined.
+// See file boost_no_mem_tem_keyword.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_MEMBER_TEMPLATE_KEYWORD
+#include "boost_no_mem_tem_keyword.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_member_template_keyword::test();
+}
+
diff --git a/libs/config/test/no_mem_tem_keyword_pass.cpp b/libs/config/test/no_mem_tem_keyword_pass.cpp
new file mode 100644
index 0000000000..7beb159757
--- /dev/null
+++ b/libs/config/test/no_mem_tem_keyword_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:02 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_MEMBER_TEMPLATE_KEYWORD
+// This file should compile, if it does not then
+// BOOST_NO_MEMBER_TEMPLATE_KEYWORD should be defined.
+// See file boost_no_mem_tem_keyword.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_MEMBER_TEMPLATE_KEYWORD
+#include "boost_no_mem_tem_keyword.ipp"
+#else
+namespace boost_no_member_template_keyword = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_member_template_keyword::test();
+}
+
diff --git a/libs/config/test/no_mem_tem_pnts_fail.cpp b/libs/config/test/no_mem_tem_pnts_fail.cpp
new file mode 100644
index 0000000000..bca3ee0af6
--- /dev/null
+++ b/libs/config/test/no_mem_tem_pnts_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:02 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS
+// This file should not compile, if it does then
+// BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS should not be defined.
+// See file boost_no_mem_tem_pnts.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS
+#include "boost_no_mem_tem_pnts.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_pointer_to_member_template_parameters::test();
+}
+
diff --git a/libs/config/test/no_mem_tem_pnts_pass.cpp b/libs/config/test/no_mem_tem_pnts_pass.cpp
new file mode 100644
index 0000000000..bf273cc360
--- /dev/null
+++ b/libs/config/test/no_mem_tem_pnts_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:02 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS
+// This file should compile, if it does not then
+// BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS should be defined.
+// See file boost_no_mem_tem_pnts.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS
+#include "boost_no_mem_tem_pnts.ipp"
+#else
+namespace boost_no_pointer_to_member_template_parameters = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_pointer_to_member_template_parameters::test();
+}
+
diff --git a/libs/config/test/no_mem_templ_frnds_fail.cpp b/libs/config/test/no_mem_templ_frnds_fail.cpp
new file mode 100644
index 0000000000..a8602c1f1d
--- /dev/null
+++ b/libs/config/test/no_mem_templ_frnds_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:02 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_MEMBER_TEMPLATE_FRIENDS
+// This file should not compile, if it does then
+// BOOST_NO_MEMBER_TEMPLATE_FRIENDS should not be defined.
+// See file boost_no_mem_templ_frnds.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_MEMBER_TEMPLATE_FRIENDS
+#include "boost_no_mem_templ_frnds.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_member_template_friends::test();
+}
+
diff --git a/libs/config/test/no_mem_templ_frnds_pass.cpp b/libs/config/test/no_mem_templ_frnds_pass.cpp
new file mode 100644
index 0000000000..a234eba7b6
--- /dev/null
+++ b/libs/config/test/no_mem_templ_frnds_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:01 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_MEMBER_TEMPLATE_FRIENDS
+// This file should compile, if it does not then
+// BOOST_NO_MEMBER_TEMPLATE_FRIENDS should be defined.
+// See file boost_no_mem_templ_frnds.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_MEMBER_TEMPLATE_FRIENDS
+#include "boost_no_mem_templ_frnds.ipp"
+#else
+namespace boost_no_member_template_friends = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_member_template_friends::test();
+}
+
diff --git a/libs/config/test/no_mem_templates_fail.cpp b/libs/config/test/no_mem_templates_fail.cpp
new file mode 100644
index 0000000000..3b6227da69
--- /dev/null
+++ b/libs/config/test/no_mem_templates_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:01 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_MEMBER_TEMPLATES
+// This file should not compile, if it does then
+// BOOST_NO_MEMBER_TEMPLATES should not be defined.
+// See file boost_no_mem_templates.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_MEMBER_TEMPLATES
+#include "boost_no_mem_templates.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_member_templates::test();
+}
+
diff --git a/libs/config/test/no_mem_templates_pass.cpp b/libs/config/test/no_mem_templates_pass.cpp
new file mode 100644
index 0000000000..7935f1146b
--- /dev/null
+++ b/libs/config/test/no_mem_templates_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:01 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_MEMBER_TEMPLATES
+// This file should compile, if it does not then
+// BOOST_NO_MEMBER_TEMPLATES should be defined.
+// See file boost_no_mem_templates.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_MEMBER_TEMPLATES
+#include "boost_no_mem_templates.ipp"
+#else
+namespace boost_no_member_templates = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_member_templates::test();
+}
+
diff --git a/libs/config/test/no_nested_friendship_fail.cpp b/libs/config/test/no_nested_friendship_fail.cpp
new file mode 100644
index 0000000000..dd90e404a2
--- /dev/null
+++ b/libs/config/test/no_nested_friendship_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Thu Sep 18 23:32:18 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id$
+//
+
+
+// Test file for macro BOOST_NO_NESTED_FRIENDSHIP
+// This file should not compile, if it does then
+// BOOST_NO_NESTED_FRIENDSHIP should not be defined.
+// See file boost_no_nested_friendship.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_NESTED_FRIENDSHIP
+#include "boost_no_nested_friendship.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_nested_friendship::test();
+}
+
diff --git a/libs/config/test/no_nested_friendship_pass.cpp b/libs/config/test/no_nested_friendship_pass.cpp
new file mode 100644
index 0000000000..3e114bc9dd
--- /dev/null
+++ b/libs/config/test/no_nested_friendship_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Thu Sep 18 23:32:18 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id$
+//
+
+
+// Test file for macro BOOST_NO_NESTED_FRIENDSHIP
+// This file should compile, if it does not then
+// BOOST_NO_NESTED_FRIENDSHIP should be defined.
+// See file boost_no_nested_friendship.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_NESTED_FRIENDSHIP
+#include "boost_no_nested_friendship.ipp"
+#else
+namespace boost_no_nested_friendship = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_nested_friendship::test();
+}
+
diff --git a/libs/config/test/no_noexcept_fail.cpp b/libs/config/test/no_noexcept_fail.cpp
new file mode 100644
index 0000000000..f06f55df98
--- /dev/null
+++ b/libs/config/test/no_noexcept_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Thu May 5 04:40:08 2011
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id$
+//
+
+
+// Test file for macro BOOST_NO_NOEXCEPT
+// This file should not compile, if it does then
+// BOOST_NO_NOEXCEPT should not be defined.
+// See file boost_no_noexcept.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_NOEXCEPT
+#include "boost_no_noexcept.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_noexcept::test();
+}
+
diff --git a/libs/config/test/no_noexcept_pass.cpp b/libs/config/test/no_noexcept_pass.cpp
new file mode 100644
index 0000000000..9d6a6cdfc3
--- /dev/null
+++ b/libs/config/test/no_noexcept_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Thu May 5 04:40:08 2011
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id$
+//
+
+
+// Test file for macro BOOST_NO_NOEXCEPT
+// This file should compile, if it does not then
+// BOOST_NO_NOEXCEPT should be defined.
+// See file boost_no_noexcept.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_NOEXCEPT
+#include "boost_no_noexcept.ipp"
+#else
+namespace boost_no_noexcept = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_noexcept::test();
+}
+
diff --git a/libs/config/test/no_nullptr_fail.cpp b/libs/config/test/no_nullptr_fail.cpp
new file mode 100644
index 0000000000..98f9a66649
--- /dev/null
+++ b/libs/config/test/no_nullptr_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Thu May 14 16:01:35 2009
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_nullptr_fail.cpp 53445 2009-05-30 11:22:59Z bemandawes $
+//
+
+
+// Test file for macro BOOST_NO_NULLPTR
+// This file should not compile, if it does then
+// BOOST_NO_NULLPTR should not be defined.
+// See file boost_no_nullptr.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_NULLPTR
+#include "boost_no_nullptr.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_nullptr::test();
+}
+
diff --git a/libs/config/test/no_nullptr_pass.cpp b/libs/config/test/no_nullptr_pass.cpp
new file mode 100644
index 0000000000..501016ad84
--- /dev/null
+++ b/libs/config/test/no_nullptr_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Thu May 14 16:01:35 2009
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_nullptr_pass.cpp 53445 2009-05-30 11:22:59Z bemandawes $
+//
+
+
+// Test file for macro BOOST_NO_NULLPTR
+// This file should compile, if it does not then
+// BOOST_NO_NULLPTR should be defined.
+// See file boost_no_nullptr.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_NULLPTR
+#include "boost_no_nullptr.ipp"
+#else
+namespace boost_no_nullptr = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_nullptr::test();
+}
+
diff --git a/libs/config/test/no_ops_in_namespace_fail.cpp b/libs/config/test/no_ops_in_namespace_fail.cpp
new file mode 100644
index 0000000000..2e746ece01
--- /dev/null
+++ b/libs/config/test/no_ops_in_namespace_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:02 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_OPERATORS_IN_NAMESPACE
+// This file should not compile, if it does then
+// BOOST_NO_OPERATORS_IN_NAMESPACE should not be defined.
+// See file boost_no_ops_in_namespace.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_OPERATORS_IN_NAMESPACE
+#include "boost_no_ops_in_namespace.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_operators_in_namespace::test();
+}
+
diff --git a/libs/config/test/no_ops_in_namespace_pass.cpp b/libs/config/test/no_ops_in_namespace_pass.cpp
new file mode 100644
index 0000000000..5004411dd4
--- /dev/null
+++ b/libs/config/test/no_ops_in_namespace_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:02 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_OPERATORS_IN_NAMESPACE
+// This file should compile, if it does not then
+// BOOST_NO_OPERATORS_IN_NAMESPACE should be defined.
+// See file boost_no_ops_in_namespace.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_OPERATORS_IN_NAMESPACE
+#include "boost_no_ops_in_namespace.ipp"
+#else
+namespace boost_no_operators_in_namespace = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_operators_in_namespace::test();
+}
+
diff --git a/libs/config/test/no_part_spec_def_args_fail.cpp b/libs/config/test/no_part_spec_def_args_fail.cpp
new file mode 100644
index 0000000000..68f34d2754
--- /dev/null
+++ b/libs/config/test/no_part_spec_def_args_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Mon Apr 21 12:40:41 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: generate.cpp 44422 2008-04-14 18:06:59Z johnmaddock $
+//
+
+
+// Test file for macro BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS
+// This file should not compile, if it does then
+// BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS should not be defined.
+// See file boost_no_part_spec_def_args.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS
+#include "boost_no_part_spec_def_args.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_partial_specialization_implicit_default_args::test();
+}
+
diff --git a/libs/config/test/no_part_spec_def_args_pass.cpp b/libs/config/test/no_part_spec_def_args_pass.cpp
new file mode 100644
index 0000000000..06864228bb
--- /dev/null
+++ b/libs/config/test/no_part_spec_def_args_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Mon Apr 21 12:40:41 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: generate.cpp 44422 2008-04-14 18:06:59Z johnmaddock $
+//
+
+
+// Test file for macro BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS
+// This file should compile, if it does not then
+// BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS should be defined.
+// See file boost_no_part_spec_def_args.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS
+#include "boost_no_part_spec_def_args.ipp"
+#else
+namespace boost_no_partial_specialization_implicit_default_args = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_partial_specialization_implicit_default_args::test();
+}
+
diff --git a/libs/config/test/no_partial_spec_fail.cpp b/libs/config/test/no_partial_spec_fail.cpp
new file mode 100644
index 0000000000..0b24a97d82
--- /dev/null
+++ b/libs/config/test/no_partial_spec_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:02 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+// This file should not compile, if it does then
+// BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION should not be defined.
+// See file boost_no_partial_spec.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#include "boost_no_partial_spec.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_template_partial_specialization::test();
+}
+
diff --git a/libs/config/test/no_partial_spec_pass.cpp b/libs/config/test/no_partial_spec_pass.cpp
new file mode 100644
index 0000000000..5767410a60
--- /dev/null
+++ b/libs/config/test/no_partial_spec_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:02 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+// This file should compile, if it does not then
+// BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION should be defined.
+// See file boost_no_partial_spec.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#include "boost_no_partial_spec.ipp"
+#else
+namespace boost_no_template_partial_specialization = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_template_partial_specialization::test();
+}
+
diff --git a/libs/config/test/no_priv_aggregate_fail.cpp b/libs/config/test/no_priv_aggregate_fail.cpp
new file mode 100644
index 0000000000..22ed88fa66
--- /dev/null
+++ b/libs/config/test/no_priv_aggregate_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:02 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_PRIVATE_IN_AGGREGATE
+// This file should not compile, if it does then
+// BOOST_NO_PRIVATE_IN_AGGREGATE should not be defined.
+// See file boost_no_priv_aggregate.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_PRIVATE_IN_AGGREGATE
+#include "boost_no_priv_aggregate.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_private_in_aggregate::test();
+}
+
diff --git a/libs/config/test/no_priv_aggregate_pass.cpp b/libs/config/test/no_priv_aggregate_pass.cpp
new file mode 100644
index 0000000000..839be57a96
--- /dev/null
+++ b/libs/config/test/no_priv_aggregate_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:02 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_PRIVATE_IN_AGGREGATE
+// This file should compile, if it does not then
+// BOOST_NO_PRIVATE_IN_AGGREGATE should be defined.
+// See file boost_no_priv_aggregate.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_PRIVATE_IN_AGGREGATE
+#include "boost_no_priv_aggregate.ipp"
+#else
+namespace boost_no_private_in_aggregate = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_private_in_aggregate::test();
+}
+
diff --git a/libs/config/test/no_ptr_mem_const_fail.cpp b/libs/config/test/no_ptr_mem_const_fail.cpp
new file mode 100644
index 0000000000..36eb9dc353
--- /dev/null
+++ b/libs/config/test/no_ptr_mem_const_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:02 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_POINTER_TO_MEMBER_CONST
+// This file should not compile, if it does then
+// BOOST_NO_POINTER_TO_MEMBER_CONST should not be defined.
+// See file boost_no_ptr_mem_const.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_POINTER_TO_MEMBER_CONST
+#include "boost_no_ptr_mem_const.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_pointer_to_member_const::test();
+}
+
diff --git a/libs/config/test/no_ptr_mem_const_pass.cpp b/libs/config/test/no_ptr_mem_const_pass.cpp
new file mode 100644
index 0000000000..c15d7ad1a5
--- /dev/null
+++ b/libs/config/test/no_ptr_mem_const_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:02 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_POINTER_TO_MEMBER_CONST
+// This file should compile, if it does not then
+// BOOST_NO_POINTER_TO_MEMBER_CONST should be defined.
+// See file boost_no_ptr_mem_const.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_POINTER_TO_MEMBER_CONST
+#include "boost_no_ptr_mem_const.ipp"
+#else
+namespace boost_no_pointer_to_member_const = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_pointer_to_member_const::test();
+}
+
diff --git a/libs/config/test/no_raw_literals_fail.cpp b/libs/config/test/no_raw_literals_fail.cpp
new file mode 100644
index 0000000000..a1e9c98475
--- /dev/null
+++ b/libs/config/test/no_raw_literals_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Thu Jun 19 16:26:16 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_raw_literals_fail.cpp 51606 2009-03-04 14:28:36Z bemandawes $
+//
+
+
+// Test file for macro BOOST_NO_RAW_LITERALS
+// This file should not compile, if it does then
+// BOOST_NO_RAW_LITERALS should not be defined.
+// See file boost_no_raw_literals.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_RAW_LITERALS
+#include "boost_no_raw_literals.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_raw_literals::test();
+}
+
diff --git a/libs/config/test/no_raw_literals_pass.cpp b/libs/config/test/no_raw_literals_pass.cpp
new file mode 100644
index 0000000000..d0125fddf0
--- /dev/null
+++ b/libs/config/test/no_raw_literals_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Thu Jun 19 16:26:16 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_raw_literals_pass.cpp 51606 2009-03-04 14:28:36Z bemandawes $
+//
+
+
+// Test file for macro BOOST_NO_RAW_LITERALS
+// This file should compile, if it does not then
+// BOOST_NO_RAW_LITERALS should be defined.
+// See file boost_no_raw_literals.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_RAW_LITERALS
+#include "boost_no_raw_literals.ipp"
+#else
+namespace boost_no_raw_literals = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_raw_literals::test();
+}
+
diff --git a/libs/config/test/no_ret_det_fail.cpp b/libs/config/test/no_ret_det_fail.cpp
new file mode 100644
index 0000000000..e48bfa4f7e
--- /dev/null
+++ b/libs/config/test/no_ret_det_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:02 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_UNREACHABLE_RETURN_DETECTION
+// This file should not compile, if it does then
+// BOOST_NO_UNREACHABLE_RETURN_DETECTION should not be defined.
+// See file boost_no_ret_det.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_UNREACHABLE_RETURN_DETECTION
+#include "boost_no_ret_det.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_unreachable_return_detection::test();
+}
+
diff --git a/libs/config/test/no_ret_det_pass.cpp b/libs/config/test/no_ret_det_pass.cpp
new file mode 100644
index 0000000000..7d45813f7f
--- /dev/null
+++ b/libs/config/test/no_ret_det_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:02 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_UNREACHABLE_RETURN_DETECTION
+// This file should compile, if it does not then
+// BOOST_NO_UNREACHABLE_RETURN_DETECTION should be defined.
+// See file boost_no_ret_det.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_UNREACHABLE_RETURN_DETECTION
+#include "boost_no_ret_det.ipp"
+#else
+namespace boost_no_unreachable_return_detection = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_unreachable_return_detection::test();
+}
+
diff --git a/libs/config/test/no_rtti_fail.cpp b/libs/config/test/no_rtti_fail.cpp
new file mode 100644
index 0000000000..f24f15d623
--- /dev/null
+++ b/libs/config/test/no_rtti_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Mon Aug 25 10:51:51 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: generate.cpp 47351 2008-07-12 12:41:52Z johnmaddock $
+//
+
+
+// Test file for macro BOOST_NO_RTTI
+// This file should not compile, if it does then
+// BOOST_NO_RTTI should not be defined.
+// See file boost_no_rtti.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_RTTI
+#include "boost_no_rtti.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_rtti::test();
+}
+
diff --git a/libs/config/test/no_rtti_pass.cpp b/libs/config/test/no_rtti_pass.cpp
new file mode 100644
index 0000000000..9809213f25
--- /dev/null
+++ b/libs/config/test/no_rtti_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Mon Aug 25 10:51:51 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: generate.cpp 47351 2008-07-12 12:41:52Z johnmaddock $
+//
+
+
+// Test file for macro BOOST_NO_RTTI
+// This file should compile, if it does not then
+// BOOST_NO_RTTI should be defined.
+// See file boost_no_rtti.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_RTTI
+#include "boost_no_rtti.ipp"
+#else
+namespace boost_no_rtti = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_rtti::test();
+}
+
diff --git a/libs/config/test/no_rvalue_references_fail.cpp b/libs/config/test/no_rvalue_references_fail.cpp
new file mode 100644
index 0000000000..e401fde519
--- /dev/null
+++ b/libs/config/test/no_rvalue_references_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Thu May 29 07:24:54 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_rvalue_references_fail.cpp 51606 2009-03-04 14:28:36Z bemandawes $
+//
+
+
+// Test file for macro BOOST_NO_RVALUE_REFERENCES
+// This file should not compile, if it does then
+// BOOST_NO_RVALUE_REFERENCES should not be defined.
+// See file boost_no_rvalue_references.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_RVALUE_REFERENCES
+#include "boost_no_rvalue_references.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_rvalue_references::test();
+}
+
diff --git a/libs/config/test/no_rvalue_references_pass.cpp b/libs/config/test/no_rvalue_references_pass.cpp
new file mode 100644
index 0000000000..a5df568616
--- /dev/null
+++ b/libs/config/test/no_rvalue_references_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Thu May 29 07:24:54 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_rvalue_references_pass.cpp 51606 2009-03-04 14:28:36Z bemandawes $
+//
+
+
+// Test file for macro BOOST_NO_RVALUE_REFERENCES
+// This file should compile, if it does not then
+// BOOST_NO_RVALUE_REFERENCES should be defined.
+// See file boost_no_rvalue_references.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_RVALUE_REFERENCES
+#include "boost_no_rvalue_references.ipp"
+#else
+namespace boost_no_rvalue_references = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_rvalue_references::test();
+}
+
diff --git a/libs/config/test/no_scoped_enums_fail.cpp b/libs/config/test/no_scoped_enums_fail.cpp
new file mode 100644
index 0000000000..d4ef3c2fb1
--- /dev/null
+++ b/libs/config/test/no_scoped_enums_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Thu May 29 08:00:48 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_scoped_enums_fail.cpp 51606 2009-03-04 14:28:36Z bemandawes $
+//
+
+
+// Test file for macro BOOST_NO_SCOPED_ENUMS
+// This file should not compile, if it does then
+// BOOST_NO_SCOPED_ENUMS should not be defined.
+// See file boost_no_scoped_enums.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_SCOPED_ENUMS
+#include "boost_no_scoped_enums.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_scoped_enums::test();
+}
+
diff --git a/libs/config/test/no_scoped_enums_pass.cpp b/libs/config/test/no_scoped_enums_pass.cpp
new file mode 100644
index 0000000000..c0efd1272f
--- /dev/null
+++ b/libs/config/test/no_scoped_enums_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Thu May 29 08:00:48 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_scoped_enums_pass.cpp 51606 2009-03-04 14:28:36Z bemandawes $
+//
+
+
+// Test file for macro BOOST_NO_SCOPED_ENUMS
+// This file should compile, if it does not then
+// BOOST_NO_SCOPED_ENUMS should be defined.
+// See file boost_no_scoped_enums.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_SCOPED_ENUMS
+#include "boost_no_scoped_enums.ipp"
+#else
+namespace boost_no_scoped_enums = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_scoped_enums::test();
+}
+
diff --git a/libs/config/test/no_sfinae_expr_fail.cpp b/libs/config/test/no_sfinae_expr_fail.cpp
new file mode 100644
index 0000000000..925f9ecaa8
--- /dev/null
+++ b/libs/config/test/no_sfinae_expr_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Sun Aug 02 08:25:59 2009
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_sfinae_expr_fail.cpp 56678 2009-10-09 16:16:02Z johnmaddock $
+//
+
+
+// Test file for macro BOOST_NO_SFINAE_EXPR
+// This file should not compile, if it does then
+// BOOST_NO_SFINAE_EXPR should not be defined.
+// See file boost_no_sfinae_expr.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_SFINAE_EXPR
+#include "boost_no_sfinae_expr.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_sfinae_expr::test();
+}
+
diff --git a/libs/config/test/no_sfinae_expr_pass.cpp b/libs/config/test/no_sfinae_expr_pass.cpp
new file mode 100644
index 0000000000..5b580250c8
--- /dev/null
+++ b/libs/config/test/no_sfinae_expr_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Sun Aug 02 08:25:59 2009
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_sfinae_expr_pass.cpp 56678 2009-10-09 16:16:02Z johnmaddock $
+//
+
+
+// Test file for macro BOOST_NO_SFINAE_EXPR
+// This file should compile, if it does not then
+// BOOST_NO_SFINAE_EXPR should be defined.
+// See file boost_no_sfinae_expr.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_SFINAE_EXPR
+#include "boost_no_sfinae_expr.ipp"
+#else
+namespace boost_no_sfinae_expr = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_sfinae_expr::test();
+}
+
diff --git a/libs/config/test/no_sfinae_fail.cpp b/libs/config/test/no_sfinae_fail.cpp
new file mode 100644
index 0000000000..915f924605
--- /dev/null
+++ b/libs/config/test/no_sfinae_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:02 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_SFINAE
+// This file should not compile, if it does then
+// BOOST_NO_SFINAE should not be defined.
+// See file boost_no_sfinae.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_SFINAE
+#include "boost_no_sfinae.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_sfinae::test();
+}
+
diff --git a/libs/config/test/no_sfinae_pass.cpp b/libs/config/test/no_sfinae_pass.cpp
new file mode 100644
index 0000000000..8ebfc383fe
--- /dev/null
+++ b/libs/config/test/no_sfinae_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:02 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_SFINAE
+// This file should compile, if it does not then
+// BOOST_NO_SFINAE should be defined.
+// See file boost_no_sfinae.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_SFINAE
+#include "boost_no_sfinae.ipp"
+#else
+namespace boost_no_sfinae = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_sfinae::test();
+}
+
diff --git a/libs/config/test/no_sstream_fail.cpp b/libs/config/test/no_sstream_fail.cpp
new file mode 100644
index 0000000000..3cb5d9af15
--- /dev/null
+++ b/libs/config/test/no_sstream_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:02 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_STRINGSTREAM
+// This file should not compile, if it does then
+// BOOST_NO_STRINGSTREAM should not be defined.
+// See file boost_no_sstream.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_STRINGSTREAM
+#include "boost_no_sstream.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_stringstream::test();
+}
+
diff --git a/libs/config/test/no_sstream_pass.cpp b/libs/config/test/no_sstream_pass.cpp
new file mode 100644
index 0000000000..de325a3976
--- /dev/null
+++ b/libs/config/test/no_sstream_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:02 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_STRINGSTREAM
+// This file should compile, if it does not then
+// BOOST_NO_STRINGSTREAM should be defined.
+// See file boost_no_sstream.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_STRINGSTREAM
+#include "boost_no_sstream.ipp"
+#else
+namespace boost_no_stringstream = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_stringstream::test();
+}
+
diff --git a/libs/config/test/no_static_assert_fail.cpp b/libs/config/test/no_static_assert_fail.cpp
new file mode 100644
index 0000000000..075420869c
--- /dev/null
+++ b/libs/config/test/no_static_assert_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Thu May 29 07:24:54 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_static_assert_fail.cpp 51606 2009-03-04 14:28:36Z bemandawes $
+//
+
+
+// Test file for macro BOOST_NO_STATIC_ASSERT
+// This file should not compile, if it does then
+// BOOST_NO_STATIC_ASSERT should not be defined.
+// See file boost_no_static_assert.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_STATIC_ASSERT
+#include "boost_no_static_assert.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_static_assert::test();
+}
+
diff --git a/libs/config/test/no_static_assert_pass.cpp b/libs/config/test/no_static_assert_pass.cpp
new file mode 100644
index 0000000000..cc1116b3fe
--- /dev/null
+++ b/libs/config/test/no_static_assert_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Thu May 29 07:24:54 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_static_assert_pass.cpp 51606 2009-03-04 14:28:36Z bemandawes $
+//
+
+
+// Test file for macro BOOST_NO_STATIC_ASSERT
+// This file should compile, if it does not then
+// BOOST_NO_STATIC_ASSERT should be defined.
+// See file boost_no_static_assert.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_STATIC_ASSERT
+#include "boost_no_static_assert.ipp"
+#else
+namespace boost_no_static_assert = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_static_assert::test();
+}
+
diff --git a/libs/config/test/no_std_allocator_fail.cpp b/libs/config/test/no_std_allocator_fail.cpp
new file mode 100644
index 0000000000..e5213dcc2f
--- /dev/null
+++ b/libs/config/test/no_std_allocator_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:02 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_STD_ALLOCATOR
+// This file should not compile, if it does then
+// BOOST_NO_STD_ALLOCATOR should not be defined.
+// See file boost_no_std_allocator.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_STD_ALLOCATOR
+#include "boost_no_std_allocator.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_std_allocator::test();
+}
+
diff --git a/libs/config/test/no_std_allocator_pass.cpp b/libs/config/test/no_std_allocator_pass.cpp
new file mode 100644
index 0000000000..63ab611c68
--- /dev/null
+++ b/libs/config/test/no_std_allocator_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:02 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_STD_ALLOCATOR
+// This file should compile, if it does not then
+// BOOST_NO_STD_ALLOCATOR should be defined.
+// See file boost_no_std_allocator.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_STD_ALLOCATOR
+#include "boost_no_std_allocator.ipp"
+#else
+namespace boost_no_std_allocator = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_std_allocator::test();
+}
+
diff --git a/libs/config/test/no_std_distance_fail.cpp b/libs/config/test/no_std_distance_fail.cpp
new file mode 100644
index 0000000000..a8c21a43a6
--- /dev/null
+++ b/libs/config/test/no_std_distance_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:02 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_STD_DISTANCE
+// This file should not compile, if it does then
+// BOOST_NO_STD_DISTANCE should not be defined.
+// See file boost_no_std_distance.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_STD_DISTANCE
+#include "boost_no_std_distance.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_std_distance::test();
+}
+
diff --git a/libs/config/test/no_std_distance_pass.cpp b/libs/config/test/no_std_distance_pass.cpp
new file mode 100644
index 0000000000..870d86d9c2
--- /dev/null
+++ b/libs/config/test/no_std_distance_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:02 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_STD_DISTANCE
+// This file should compile, if it does not then
+// BOOST_NO_STD_DISTANCE should be defined.
+// See file boost_no_std_distance.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_STD_DISTANCE
+#include "boost_no_std_distance.ipp"
+#else
+namespace boost_no_std_distance = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_std_distance::test();
+}
+
diff --git a/libs/config/test/no_std_iter_traits_fail.cpp b/libs/config/test/no_std_iter_traits_fail.cpp
new file mode 100644
index 0000000000..98ba389f7a
--- /dev/null
+++ b/libs/config/test/no_std_iter_traits_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:02 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_STD_ITERATOR_TRAITS
+// This file should not compile, if it does then
+// BOOST_NO_STD_ITERATOR_TRAITS should not be defined.
+// See file boost_no_std_iter_traits.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_STD_ITERATOR_TRAITS
+#include "boost_no_std_iter_traits.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_std_iterator_traits::test();
+}
+
diff --git a/libs/config/test/no_std_iter_traits_pass.cpp b/libs/config/test/no_std_iter_traits_pass.cpp
new file mode 100644
index 0000000000..30b7399d97
--- /dev/null
+++ b/libs/config/test/no_std_iter_traits_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:02 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_STD_ITERATOR_TRAITS
+// This file should compile, if it does not then
+// BOOST_NO_STD_ITERATOR_TRAITS should be defined.
+// See file boost_no_std_iter_traits.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_STD_ITERATOR_TRAITS
+#include "boost_no_std_iter_traits.ipp"
+#else
+namespace boost_no_std_iterator_traits = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_std_iterator_traits::test();
+}
+
diff --git a/libs/config/test/no_std_iterator_fail.cpp b/libs/config/test/no_std_iterator_fail.cpp
new file mode 100644
index 0000000000..7da3216dcb
--- /dev/null
+++ b/libs/config/test/no_std_iterator_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:02 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_STD_ITERATOR
+// This file should not compile, if it does then
+// BOOST_NO_STD_ITERATOR should not be defined.
+// See file boost_no_std_iterator.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_STD_ITERATOR
+#include "boost_no_std_iterator.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_std_iterator::test();
+}
+
diff --git a/libs/config/test/no_std_iterator_pass.cpp b/libs/config/test/no_std_iterator_pass.cpp
new file mode 100644
index 0000000000..7dbd9ce5f2
--- /dev/null
+++ b/libs/config/test/no_std_iterator_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:02 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_STD_ITERATOR
+// This file should compile, if it does not then
+// BOOST_NO_STD_ITERATOR should be defined.
+// See file boost_no_std_iterator.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_STD_ITERATOR
+#include "boost_no_std_iterator.ipp"
+#else
+namespace boost_no_std_iterator = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_std_iterator::test();
+}
+
diff --git a/libs/config/test/no_std_locale_fail.cpp b/libs/config/test/no_std_locale_fail.cpp
new file mode 100644
index 0000000000..46d2a4656f
--- /dev/null
+++ b/libs/config/test/no_std_locale_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:02 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_STD_LOCALE
+// This file should not compile, if it does then
+// BOOST_NO_STD_LOCALE should not be defined.
+// See file boost_no_std_locale.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_STD_LOCALE
+#include "boost_no_std_locale.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_std_locale::test();
+}
+
diff --git a/libs/config/test/no_std_locale_pass.cpp b/libs/config/test/no_std_locale_pass.cpp
new file mode 100644
index 0000000000..95a16483c8
--- /dev/null
+++ b/libs/config/test/no_std_locale_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:02 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_STD_LOCALE
+// This file should compile, if it does not then
+// BOOST_NO_STD_LOCALE should be defined.
+// See file boost_no_std_locale.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_STD_LOCALE
+#include "boost_no_std_locale.ipp"
+#else
+namespace boost_no_std_locale = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_std_locale::test();
+}
+
diff --git a/libs/config/test/no_std_messages_fail.cpp b/libs/config/test/no_std_messages_fail.cpp
new file mode 100644
index 0000000000..f5da5a28bc
--- /dev/null
+++ b/libs/config/test/no_std_messages_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:02 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_STD_MESSAGES
+// This file should not compile, if it does then
+// BOOST_NO_STD_MESSAGES should not be defined.
+// See file boost_no_std_messages.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_STD_MESSAGES
+#include "boost_no_std_messages.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_std_messages::test();
+}
+
diff --git a/libs/config/test/no_std_messages_pass.cpp b/libs/config/test/no_std_messages_pass.cpp
new file mode 100644
index 0000000000..c3d1786e09
--- /dev/null
+++ b/libs/config/test/no_std_messages_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:02 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_STD_MESSAGES
+// This file should compile, if it does not then
+// BOOST_NO_STD_MESSAGES should be defined.
+// See file boost_no_std_messages.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_STD_MESSAGES
+#include "boost_no_std_messages.ipp"
+#else
+namespace boost_no_std_messages = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_std_messages::test();
+}
+
diff --git a/libs/config/test/no_std_min_max_fail.cpp b/libs/config/test/no_std_min_max_fail.cpp
new file mode 100644
index 0000000000..438d55a2b1
--- /dev/null
+++ b/libs/config/test/no_std_min_max_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:02 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_STD_MIN_MAX
+// This file should not compile, if it does then
+// BOOST_NO_STD_MIN_MAX should not be defined.
+// See file boost_no_std_min_max.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_STD_MIN_MAX
+#include "boost_no_std_min_max.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_std_min_max::test();
+}
+
diff --git a/libs/config/test/no_std_min_max_pass.cpp b/libs/config/test/no_std_min_max_pass.cpp
new file mode 100644
index 0000000000..f5349aa39e
--- /dev/null
+++ b/libs/config/test/no_std_min_max_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:02 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_STD_MIN_MAX
+// This file should compile, if it does not then
+// BOOST_NO_STD_MIN_MAX should be defined.
+// See file boost_no_std_min_max.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_STD_MIN_MAX
+#include "boost_no_std_min_max.ipp"
+#else
+namespace boost_no_std_min_max = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_std_min_max::test();
+}
+
diff --git a/libs/config/test/no_std_oi_assign_fail.cpp b/libs/config/test/no_std_oi_assign_fail.cpp
new file mode 100644
index 0000000000..353e3a1090
--- /dev/null
+++ b/libs/config/test/no_std_oi_assign_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:02 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN
+// This file should not compile, if it does then
+// BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN should not be defined.
+// See file boost_no_std_oi_assign.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN
+#include "boost_no_std_oi_assign.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_std_output_iterator_assign::test();
+}
+
diff --git a/libs/config/test/no_std_oi_assign_pass.cpp b/libs/config/test/no_std_oi_assign_pass.cpp
new file mode 100644
index 0000000000..7f16148dbd
--- /dev/null
+++ b/libs/config/test/no_std_oi_assign_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:02 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN
+// This file should compile, if it does not then
+// BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN should be defined.
+// See file boost_no_std_oi_assign.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN
+#include "boost_no_std_oi_assign.ipp"
+#else
+namespace boost_no_std_output_iterator_assign = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_std_output_iterator_assign::test();
+}
+
diff --git a/libs/config/test/no_std_typeinfo_fail.cpp b/libs/config/test/no_std_typeinfo_fail.cpp
new file mode 100644
index 0000000000..7bb145f071
--- /dev/null
+++ b/libs/config/test/no_std_typeinfo_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Sat Aug 25 12:32:22 2007
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_STD_TYPEINFO
+// This file should not compile, if it does then
+// BOOST_NO_STD_TYPEINFO should not be defined.
+// See file boost_no_std_typeinfo.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_STD_TYPEINFO
+#include "boost_no_std_typeinfo.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_std_typeinfo::test();
+}
+
diff --git a/libs/config/test/no_std_typeinfo_pass.cpp b/libs/config/test/no_std_typeinfo_pass.cpp
new file mode 100644
index 0000000000..0bfd031a3e
--- /dev/null
+++ b/libs/config/test/no_std_typeinfo_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Sat Aug 25 12:32:22 2007
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_STD_TYPEINFO
+// This file should compile, if it does not then
+// BOOST_NO_STD_TYPEINFO should be defined.
+// See file boost_no_std_typeinfo.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_STD_TYPEINFO
+#include "boost_no_std_typeinfo.ipp"
+#else
+namespace boost_no_std_typeinfo = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_std_typeinfo::test();
+}
+
diff --git a/libs/config/test/no_std_unordered_fail.cpp b/libs/config/test/no_std_unordered_fail.cpp
new file mode 100644
index 0000000000..afc31bea51
--- /dev/null
+++ b/libs/config/test/no_std_unordered_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Tue Dec 16 16:41:40 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: generate.cpp 49281 2008-10-11 15:40:44Z johnmaddock $
+//
+
+
+// Test file for macro BOOST_NO_STD_UNORDERED
+// This file should not compile, if it does then
+// BOOST_NO_STD_UNORDERED should not be defined.
+// See file boost_no_std_unordered.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_STD_UNORDERED
+#include "boost_no_std_unordered.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_std_unordered::test();
+}
+
diff --git a/libs/config/test/no_std_unordered_pass.cpp b/libs/config/test/no_std_unordered_pass.cpp
new file mode 100644
index 0000000000..5ef2bf0259
--- /dev/null
+++ b/libs/config/test/no_std_unordered_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Tue Dec 16 16:41:40 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: generate.cpp 49281 2008-10-11 15:40:44Z johnmaddock $
+//
+
+
+// Test file for macro BOOST_NO_STD_UNORDERED
+// This file should compile, if it does not then
+// BOOST_NO_STD_UNORDERED should be defined.
+// See file boost_no_std_unordered.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_STD_UNORDERED
+#include "boost_no_std_unordered.ipp"
+#else
+namespace boost_no_std_unordered = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_std_unordered::test();
+}
+
diff --git a/libs/config/test/no_std_use_facet_fail.cpp b/libs/config/test/no_std_use_facet_fail.cpp
new file mode 100644
index 0000000000..e1c06b6a9b
--- /dev/null
+++ b/libs/config/test/no_std_use_facet_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:02 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_STD_USE_FACET
+// This file should not compile, if it does then
+// BOOST_NO_STD_USE_FACET should not be defined.
+// See file boost_no_std_use_facet.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_STD_USE_FACET
+#include "boost_no_std_use_facet.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_std_use_facet::test();
+}
+
diff --git a/libs/config/test/no_std_use_facet_pass.cpp b/libs/config/test/no_std_use_facet_pass.cpp
new file mode 100644
index 0000000000..111f382335
--- /dev/null
+++ b/libs/config/test/no_std_use_facet_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:02 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_STD_USE_FACET
+// This file should compile, if it does not then
+// BOOST_NO_STD_USE_FACET should be defined.
+// See file boost_no_std_use_facet.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_STD_USE_FACET
+#include "boost_no_std_use_facet.ipp"
+#else
+namespace boost_no_std_use_facet = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_std_use_facet::test();
+}
+
diff --git a/libs/config/test/no_std_wstreambuf_fail.cpp b/libs/config/test/no_std_wstreambuf_fail.cpp
new file mode 100644
index 0000000000..40e6ecb945
--- /dev/null
+++ b/libs/config/test/no_std_wstreambuf_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:02 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_STD_WSTREAMBUF
+// This file should not compile, if it does then
+// BOOST_NO_STD_WSTREAMBUF should not be defined.
+// See file boost_no_std_wstreambuf.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_STD_WSTREAMBUF
+#include "boost_no_std_wstreambuf.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_std_wstreambuf::test();
+}
+
diff --git a/libs/config/test/no_std_wstreambuf_pass.cpp b/libs/config/test/no_std_wstreambuf_pass.cpp
new file mode 100644
index 0000000000..f5aa6c6391
--- /dev/null
+++ b/libs/config/test/no_std_wstreambuf_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:02 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_STD_WSTREAMBUF
+// This file should compile, if it does not then
+// BOOST_NO_STD_WSTREAMBUF should be defined.
+// See file boost_no_std_wstreambuf.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_STD_WSTREAMBUF
+#include "boost_no_std_wstreambuf.ipp"
+#else
+namespace boost_no_std_wstreambuf = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_std_wstreambuf::test();
+}
+
diff --git a/libs/config/test/no_std_wstring_fail.cpp b/libs/config/test/no_std_wstring_fail.cpp
new file mode 100644
index 0000000000..39a5fa83fe
--- /dev/null
+++ b/libs/config/test/no_std_wstring_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:02 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_STD_WSTRING
+// This file should not compile, if it does then
+// BOOST_NO_STD_WSTRING should not be defined.
+// See file boost_no_std_wstring.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_STD_WSTRING
+#include "boost_no_std_wstring.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_std_wstring::test();
+}
+
diff --git a/libs/config/test/no_std_wstring_pass.cpp b/libs/config/test/no_std_wstring_pass.cpp
new file mode 100644
index 0000000000..0fb8e03192
--- /dev/null
+++ b/libs/config/test/no_std_wstring_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:02 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_STD_WSTRING
+// This file should compile, if it does not then
+// BOOST_NO_STD_WSTRING should be defined.
+// See file boost_no_std_wstring.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_STD_WSTRING
+#include "boost_no_std_wstring.ipp"
+#else
+namespace boost_no_std_wstring = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_std_wstring::test();
+}
+
diff --git a/libs/config/test/no_stdc_namespace_fail.cpp b/libs/config/test/no_stdc_namespace_fail.cpp
new file mode 100644
index 0000000000..745a2b8990
--- /dev/null
+++ b/libs/config/test/no_stdc_namespace_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:02 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_STDC_NAMESPACE
+// This file should not compile, if it does then
+// BOOST_NO_STDC_NAMESPACE should not be defined.
+// See file boost_no_stdc_namespace.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_STDC_NAMESPACE
+#include "boost_no_stdc_namespace.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_stdc_namespace::test();
+}
+
diff --git a/libs/config/test/no_stdc_namespace_pass.cpp b/libs/config/test/no_stdc_namespace_pass.cpp
new file mode 100644
index 0000000000..8b8eeafe7e
--- /dev/null
+++ b/libs/config/test/no_stdc_namespace_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:02 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_STDC_NAMESPACE
+// This file should compile, if it does not then
+// BOOST_NO_STDC_NAMESPACE should be defined.
+// See file boost_no_stdc_namespace.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_STDC_NAMESPACE
+#include "boost_no_stdc_namespace.ipp"
+#else
+namespace boost_no_stdc_namespace = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_stdc_namespace::test();
+}
+
diff --git a/libs/config/test/no_swprintf_fail.cpp b/libs/config/test/no_swprintf_fail.cpp
new file mode 100644
index 0000000000..3df0b132fc
--- /dev/null
+++ b/libs/config/test/no_swprintf_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:02 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_SWPRINTF
+// This file should not compile, if it does then
+// BOOST_NO_SWPRINTF should not be defined.
+// See file boost_no_swprintf.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_SWPRINTF
+#include "boost_no_swprintf.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_swprintf::test();
+}
+
diff --git a/libs/config/test/no_swprintf_pass.cpp b/libs/config/test/no_swprintf_pass.cpp
new file mode 100644
index 0000000000..3d4ef70961
--- /dev/null
+++ b/libs/config/test/no_swprintf_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:02 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_SWPRINTF
+// This file should compile, if it does not then
+// BOOST_NO_SWPRINTF should be defined.
+// See file boost_no_swprintf.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_SWPRINTF
+#include "boost_no_swprintf.ipp"
+#else
+namespace boost_no_swprintf = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_swprintf::test();
+}
+
diff --git a/libs/config/test/no_template_aliases_fail.cpp b/libs/config/test/no_template_aliases_fail.cpp
new file mode 100644
index 0000000000..076d1b21b8
--- /dev/null
+++ b/libs/config/test/no_template_aliases_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Thu May 14 16:01:36 2009
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_template_aliases_fail.cpp 53445 2009-05-30 11:22:59Z bemandawes $
+//
+
+
+// Test file for macro BOOST_NO_TEMPLATE_ALIASES
+// This file should not compile, if it does then
+// BOOST_NO_TEMPLATE_ALIASES should not be defined.
+// See file boost_no_template_aliases.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_TEMPLATE_ALIASES
+#include "boost_no_template_aliases.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_template_aliases::test();
+}
+
diff --git a/libs/config/test/no_template_aliases_pass.cpp b/libs/config/test/no_template_aliases_pass.cpp
new file mode 100644
index 0000000000..47b2d81e59
--- /dev/null
+++ b/libs/config/test/no_template_aliases_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Thu May 14 16:01:36 2009
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_template_aliases_pass.cpp 53445 2009-05-30 11:22:59Z bemandawes $
+//
+
+
+// Test file for macro BOOST_NO_TEMPLATE_ALIASES
+// This file should compile, if it does not then
+// BOOST_NO_TEMPLATE_ALIASES should be defined.
+// See file boost_no_template_aliases.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_TEMPLATE_ALIASES
+#include "boost_no_template_aliases.ipp"
+#else
+namespace boost_no_template_aliases = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_template_aliases::test();
+}
+
diff --git a/libs/config/test/no_template_streams_fail.cpp b/libs/config/test/no_template_streams_fail.cpp
new file mode 100644
index 0000000000..16dfd5b166
--- /dev/null
+++ b/libs/config/test/no_template_streams_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Mon Apr 21 10:10:52 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: generate.cpp 44422 2008-04-14 18:06:59Z johnmaddock $
+//
+
+
+// Test file for macro BOOST_NO_TEMPLATED_IOSTREAMS
+// This file should not compile, if it does then
+// BOOST_NO_TEMPLATED_IOSTREAMS should not be defined.
+// See file boost_no_template_streams.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_TEMPLATED_IOSTREAMS
+#include "boost_no_template_streams.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_templated_iostreams::test();
+}
+
diff --git a/libs/config/test/no_template_streams_pass.cpp b/libs/config/test/no_template_streams_pass.cpp
new file mode 100644
index 0000000000..9ea790981e
--- /dev/null
+++ b/libs/config/test/no_template_streams_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Mon Apr 21 10:10:52 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: generate.cpp 44422 2008-04-14 18:06:59Z johnmaddock $
+//
+
+
+// Test file for macro BOOST_NO_TEMPLATED_IOSTREAMS
+// This file should compile, if it does not then
+// BOOST_NO_TEMPLATED_IOSTREAMS should be defined.
+// See file boost_no_template_streams.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_TEMPLATED_IOSTREAMS
+#include "boost_no_template_streams.ipp"
+#else
+namespace boost_no_templated_iostreams = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_templated_iostreams::test();
+}
+
diff --git a/libs/config/test/no_template_template_fail.cpp b/libs/config/test/no_template_template_fail.cpp
new file mode 100644
index 0000000000..44f8a2b615
--- /dev/null
+++ b/libs/config/test/no_template_template_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:02 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_TEMPLATE_TEMPLATES
+// This file should not compile, if it does then
+// BOOST_NO_TEMPLATE_TEMPLATES should not be defined.
+// See file boost_no_template_template.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_TEMPLATE_TEMPLATES
+#include "boost_no_template_template.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_template_templates::test();
+}
+
diff --git a/libs/config/test/no_template_template_pass.cpp b/libs/config/test/no_template_template_pass.cpp
new file mode 100644
index 0000000000..e70c33e163
--- /dev/null
+++ b/libs/config/test/no_template_template_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:02 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_TEMPLATE_TEMPLATES
+// This file should compile, if it does not then
+// BOOST_NO_TEMPLATE_TEMPLATES should be defined.
+// See file boost_no_template_template.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_TEMPLATE_TEMPLATES
+#include "boost_no_template_template.ipp"
+#else
+namespace boost_no_template_templates = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_template_templates::test();
+}
+
diff --git a/libs/config/test/no_two_phase_lookup_fail.cpp b/libs/config/test/no_two_phase_lookup_fail.cpp
new file mode 100644
index 0000000000..6be607227b
--- /dev/null
+++ b/libs/config/test/no_two_phase_lookup_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Mon Jan 01 12:05:16 2007
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_TWO_PHASE_NAME_LOOKUP
+// This file should not compile, if it does then
+// BOOST_NO_TWO_PHASE_NAME_LOOKUP should not be defined.
+// See file boost_no_two_phase_lookup.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_TWO_PHASE_NAME_LOOKUP
+#include "boost_no_two_phase_lookup.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_two_phase_name_lookup::test();
+}
+
diff --git a/libs/config/test/no_two_phase_lookup_pass.cpp b/libs/config/test/no_two_phase_lookup_pass.cpp
new file mode 100644
index 0000000000..5449587675
--- /dev/null
+++ b/libs/config/test/no_two_phase_lookup_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Mon Jan 01 12:05:16 2007
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_TWO_PHASE_NAME_LOOKUP
+// This file should compile, if it does not then
+// BOOST_NO_TWO_PHASE_NAME_LOOKUP should be defined.
+// See file boost_no_two_phase_lookup.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_TWO_PHASE_NAME_LOOKUP
+#include "boost_no_two_phase_lookup.ipp"
+#else
+namespace boost_no_two_phase_name_lookup = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_two_phase_name_lookup::test();
+}
+
diff --git a/libs/config/test/no_typeid_fail.cpp b/libs/config/test/no_typeid_fail.cpp
new file mode 100644
index 0000000000..7c3e4b23b6
--- /dev/null
+++ b/libs/config/test/no_typeid_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Sat Aug 25 12:32:22 2007
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_TYPEID
+// This file should not compile, if it does then
+// BOOST_NO_TYPEID should not be defined.
+// See file boost_no_typeid.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_TYPEID
+#include "boost_no_typeid.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_typeid::test();
+}
+
diff --git a/libs/config/test/no_typeid_pass.cpp b/libs/config/test/no_typeid_pass.cpp
new file mode 100644
index 0000000000..80582ef3b8
--- /dev/null
+++ b/libs/config/test/no_typeid_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Sat Aug 25 12:32:22 2007
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_TYPEID
+// This file should compile, if it does not then
+// BOOST_NO_TYPEID should be defined.
+// See file boost_no_typeid.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_TYPEID
+#include "boost_no_typeid.ipp"
+#else
+namespace boost_no_typeid = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_typeid::test();
+}
+
diff --git a/libs/config/test/no_typename_with_ctor_fail.cpp b/libs/config/test/no_typename_with_ctor_fail.cpp
new file mode 100644
index 0000000000..74ee7b0e69
--- /dev/null
+++ b/libs/config/test/no_typename_with_ctor_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Thu Sep 18 23:32:18 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id$
+//
+
+
+// Test file for macro BOOST_NO_TYPENAME_WITH_CTOR
+// This file should not compile, if it does then
+// BOOST_NO_TYPENAME_WITH_CTOR should not be defined.
+// See file boost_no_typename_with_ctor.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_TYPENAME_WITH_CTOR
+#include "boost_no_typename_with_ctor.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_typename_with_ctor::test();
+}
+
diff --git a/libs/config/test/no_typename_with_ctor_pass.cpp b/libs/config/test/no_typename_with_ctor_pass.cpp
new file mode 100644
index 0000000000..4a2d9bbccd
--- /dev/null
+++ b/libs/config/test/no_typename_with_ctor_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Thu Sep 18 23:32:18 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id$
+//
+
+
+// Test file for macro BOOST_NO_TYPENAME_WITH_CTOR
+// This file should compile, if it does not then
+// BOOST_NO_TYPENAME_WITH_CTOR should be defined.
+// See file boost_no_typename_with_ctor.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_TYPENAME_WITH_CTOR
+#include "boost_no_typename_with_ctor.ipp"
+#else
+namespace boost_no_typename_with_ctor = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_typename_with_ctor::test();
+}
+
diff --git a/libs/config/test/no_unicode_literals_fail.cpp b/libs/config/test/no_unicode_literals_fail.cpp
new file mode 100644
index 0000000000..1fefdbf710
--- /dev/null
+++ b/libs/config/test/no_unicode_literals_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Thu May 29 09:24:04 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_unicode_literals_fail.cpp 51606 2009-03-04 14:28:36Z bemandawes $
+//
+
+
+// Test file for macro BOOST_NO_UNICODE_LITERALS
+// This file should not compile, if it does then
+// BOOST_NO_UNICODE_LITERALS should not be defined.
+// See file boost_no_unicode_literals.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_UNICODE_LITERALS
+#include "boost_no_unicode_literals.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_unicode_literals::test();
+}
+
diff --git a/libs/config/test/no_unicode_literals_pass.cpp b/libs/config/test/no_unicode_literals_pass.cpp
new file mode 100644
index 0000000000..ef2c716127
--- /dev/null
+++ b/libs/config/test/no_unicode_literals_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Thu May 29 09:24:04 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_unicode_literals_pass.cpp 51606 2009-03-04 14:28:36Z bemandawes $
+//
+
+
+// Test file for macro BOOST_NO_UNICODE_LITERALS
+// This file should compile, if it does not then
+// BOOST_NO_UNICODE_LITERALS should be defined.
+// See file boost_no_unicode_literals.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_UNICODE_LITERALS
+#include "boost_no_unicode_literals.ipp"
+#else
+namespace boost_no_unicode_literals = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_unicode_literals::test();
+}
+
diff --git a/libs/config/test/no_unified_init_fail.cpp b/libs/config/test/no_unified_init_fail.cpp
new file mode 100644
index 0000000000..1cd6296f30
--- /dev/null
+++ b/libs/config/test/no_unified_init_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Mon May 09 12:11:17 2011
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: generate.cpp 70001 2011-03-15 13:17:46Z johnmaddock $
+//
+
+
+// Test file for macro BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
+// This file should not compile, if it does then
+// BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX should not be defined.
+// See file boost_no_unified_init.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
+#include "boost_no_unified_init.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_unified_initialization_syntax::test();
+}
+
diff --git a/libs/config/test/no_unified_init_pass.cpp b/libs/config/test/no_unified_init_pass.cpp
new file mode 100644
index 0000000000..108a4a5015
--- /dev/null
+++ b/libs/config/test/no_unified_init_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Mon May 09 12:11:17 2011
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: generate.cpp 70001 2011-03-15 13:17:46Z johnmaddock $
+//
+
+
+// Test file for macro BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
+// This file should compile, if it does not then
+// BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX should be defined.
+// See file boost_no_unified_init.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
+#include "boost_no_unified_init.ipp"
+#else
+namespace boost_no_unified_initialization_syntax = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_unified_initialization_syntax::test();
+}
+
diff --git a/libs/config/test/no_using_breaks_adl_fail.cpp b/libs/config/test/no_using_breaks_adl_fail.cpp
new file mode 100644
index 0000000000..39a9b84d66
--- /dev/null
+++ b/libs/config/test/no_using_breaks_adl_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:02 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
+// This file should not compile, if it does then
+// BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL should not be defined.
+// See file boost_no_using_breaks_adl.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
+#include "boost_no_using_breaks_adl.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_function_scope_using_declaration_breaks_adl::test();
+}
+
diff --git a/libs/config/test/no_using_breaks_adl_pass.cpp b/libs/config/test/no_using_breaks_adl_pass.cpp
new file mode 100644
index 0000000000..5f4cb49331
--- /dev/null
+++ b/libs/config/test/no_using_breaks_adl_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:02 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
+// This file should compile, if it does not then
+// BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL should be defined.
+// See file boost_no_using_breaks_adl.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
+#include "boost_no_using_breaks_adl.ipp"
+#else
+namespace boost_function_scope_using_declaration_breaks_adl = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_function_scope_using_declaration_breaks_adl::test();
+}
+
diff --git a/libs/config/test/no_using_decl_overld_fail.cpp b/libs/config/test/no_using_decl_overld_fail.cpp
new file mode 100644
index 0000000000..35e12697a6
--- /dev/null
+++ b/libs/config/test/no_using_decl_overld_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:02 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
+// This file should not compile, if it does then
+// BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE should not be defined.
+// See file boost_no_using_decl_overld.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
+#include "boost_no_using_decl_overld.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_using_declaration_overloads_from_typename_base::test();
+}
+
diff --git a/libs/config/test/no_using_decl_overld_pass.cpp b/libs/config/test/no_using_decl_overld_pass.cpp
new file mode 100644
index 0000000000..c5290fc454
--- /dev/null
+++ b/libs/config/test/no_using_decl_overld_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:02 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
+// This file should compile, if it does not then
+// BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE should be defined.
+// See file boost_no_using_decl_overld.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
+#include "boost_no_using_decl_overld.ipp"
+#else
+namespace boost_no_using_declaration_overloads_from_typename_base = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_using_declaration_overloads_from_typename_base::test();
+}
+
diff --git a/libs/config/test/no_using_template_fail.cpp b/libs/config/test/no_using_template_fail.cpp
new file mode 100644
index 0000000000..febbbcd66a
--- /dev/null
+++ b/libs/config/test/no_using_template_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:02 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_USING_TEMPLATE
+// This file should not compile, if it does then
+// BOOST_NO_USING_TEMPLATE should not be defined.
+// See file boost_no_using_template.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_USING_TEMPLATE
+#include "boost_no_using_template.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_using_template::test();
+}
+
diff --git a/libs/config/test/no_using_template_pass.cpp b/libs/config/test/no_using_template_pass.cpp
new file mode 100644
index 0000000000..b48a31e363
--- /dev/null
+++ b/libs/config/test/no_using_template_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:02 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_USING_TEMPLATE
+// This file should compile, if it does not then
+// BOOST_NO_USING_TEMPLATE should be defined.
+// See file boost_no_using_template.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_USING_TEMPLATE
+#include "boost_no_using_template.ipp"
+#else
+namespace boost_no_using_template = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_using_template::test();
+}
+
diff --git a/libs/config/test/no_variadic_macros_fail.cpp b/libs/config/test/no_variadic_macros_fail.cpp
new file mode 100644
index 0000000000..e119546953
--- /dev/null
+++ b/libs/config/test/no_variadic_macros_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Tue Aug 17 09:59:01 2010
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: generate.cpp 49281 2008-10-11 15:40:44Z johnmaddock $
+//
+
+
+// Test file for macro BOOST_NO_VARIADIC_MACROS
+// This file should not compile, if it does then
+// BOOST_NO_VARIADIC_MACROS should not be defined.
+// See file boost_no_variadic_macros.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_VARIADIC_MACROS
+#include "boost_no_variadic_macros.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_variadic_macros::test();
+}
+
diff --git a/libs/config/test/no_variadic_macros_pass.cpp b/libs/config/test/no_variadic_macros_pass.cpp
new file mode 100644
index 0000000000..7475c4fa29
--- /dev/null
+++ b/libs/config/test/no_variadic_macros_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Tue Aug 17 09:59:01 2010
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: generate.cpp 49281 2008-10-11 15:40:44Z johnmaddock $
+//
+
+
+// Test file for macro BOOST_NO_VARIADIC_MACROS
+// This file should compile, if it does not then
+// BOOST_NO_VARIADIC_MACROS should be defined.
+// See file boost_no_variadic_macros.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_VARIADIC_MACROS
+#include "boost_no_variadic_macros.ipp"
+#else
+namespace boost_no_variadic_macros = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_variadic_macros::test();
+}
+
diff --git a/libs/config/test/no_variadic_templates_fail.cpp b/libs/config/test/no_variadic_templates_fail.cpp
new file mode 100644
index 0000000000..dd7cd57e5b
--- /dev/null
+++ b/libs/config/test/no_variadic_templates_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Thu May 29 07:24:54 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_variadic_templates_fail.cpp 51606 2009-03-04 14:28:36Z bemandawes $
+//
+
+
+// Test file for macro BOOST_NO_VARIADIC_TEMPLATES
+// This file should not compile, if it does then
+// BOOST_NO_VARIADIC_TEMPLATES should not be defined.
+// See file boost_no_variadic_templates.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_VARIADIC_TEMPLATES
+#include "boost_no_variadic_templates.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_variadic_templates::test();
+}
+
diff --git a/libs/config/test/no_variadic_templates_pass.cpp b/libs/config/test/no_variadic_templates_pass.cpp
new file mode 100644
index 0000000000..e7bbaf0392
--- /dev/null
+++ b/libs/config/test/no_variadic_templates_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Thu May 29 07:24:54 2008
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: no_variadic_templates_pass.cpp 51606 2009-03-04 14:28:36Z bemandawes $
+//
+
+
+// Test file for macro BOOST_NO_VARIADIC_TEMPLATES
+// This file should compile, if it does not then
+// BOOST_NO_VARIADIC_TEMPLATES should be defined.
+// See file boost_no_variadic_templates.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_VARIADIC_TEMPLATES
+#include "boost_no_variadic_templates.ipp"
+#else
+namespace boost_no_variadic_templates = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_variadic_templates::test();
+}
+
diff --git a/libs/config/test/no_void_returns_fail.cpp b/libs/config/test/no_void_returns_fail.cpp
new file mode 100644
index 0000000000..ff08562a3e
--- /dev/null
+++ b/libs/config/test/no_void_returns_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:02 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_VOID_RETURNS
+// This file should not compile, if it does then
+// BOOST_NO_VOID_RETURNS should not be defined.
+// See file boost_no_void_returns.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_VOID_RETURNS
+#include "boost_no_void_returns.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_void_returns::test();
+}
+
diff --git a/libs/config/test/no_void_returns_pass.cpp b/libs/config/test/no_void_returns_pass.cpp
new file mode 100644
index 0000000000..73a0882b7e
--- /dev/null
+++ b/libs/config/test/no_void_returns_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:02 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_VOID_RETURNS
+// This file should compile, if it does not then
+// BOOST_NO_VOID_RETURNS should be defined.
+// See file boost_no_void_returns.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_VOID_RETURNS
+#include "boost_no_void_returns.ipp"
+#else
+namespace boost_no_void_returns = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_void_returns::test();
+}
+
diff --git a/libs/config/test/no_wchar_t_fail.cpp b/libs/config/test/no_wchar_t_fail.cpp
new file mode 100644
index 0000000000..c1b0712e3e
--- /dev/null
+++ b/libs/config/test/no_wchar_t_fail.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:02 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_INTRINSIC_WCHAR_T
+// This file should not compile, if it does then
+// BOOST_NO_INTRINSIC_WCHAR_T should not be defined.
+// See file boost_no_wchar_t.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_INTRINSIC_WCHAR_T
+#include "boost_no_wchar_t.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_intrinsic_wchar_t::test();
+}
+
diff --git a/libs/config/test/no_wchar_t_pass.cpp b/libs/config/test/no_wchar_t_pass.cpp
new file mode 100644
index 0000000000..b31c07fb57
--- /dev/null
+++ b/libs/config/test/no_wchar_t_pass.cpp
@@ -0,0 +1,34 @@
+// This file was automatically generated on Fri Dec 03 18:04:02 2004
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+// Test file for macro BOOST_NO_INTRINSIC_WCHAR_T
+// This file should compile, if it does not then
+// BOOST_NO_INTRINSIC_WCHAR_T should be defined.
+// See file boost_no_wchar_t.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_INTRINSIC_WCHAR_T
+#include "boost_no_wchar_t.ipp"
+#else
+namespace boost_no_intrinsic_wchar_t = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_intrinsic_wchar_t::test();
+}
+
diff --git a/libs/config/test/test.hpp b/libs/config/test/test.hpp
new file mode 100644
index 0000000000..af7578096f
--- /dev/null
+++ b/libs/config/test/test.hpp
@@ -0,0 +1,21 @@
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.
+
+#ifndef BOOST_CONFIG_TEST_HPP
+#define BOOST_CONFIG_TEST_HPP
+
+namespace empty_boost{
+
+int test()
+{
+ return 0;
+}
+
+}
+
+#endif
+
diff --git a/libs/config/test/threads/test_thread_fail1.cpp b/libs/config/test/threads/test_thread_fail1.cpp
new file mode 100644
index 0000000000..5e0406bb3d
--- /dev/null
+++ b/libs/config/test/threads/test_thread_fail1.cpp
@@ -0,0 +1,10 @@
+// (C) Copyright John Maddock 2003.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// disable thread support:
+#define BOOST_DISABLE_THREADS
+// this should now be a compiler error:
+#include <boost/config/requires_threads.hpp>
+// we should never get here...
diff --git a/libs/config/test/threads/test_thread_fail2.cpp b/libs/config/test/threads/test_thread_fail2.cpp
new file mode 100644
index 0000000000..56ba4a0732
--- /dev/null
+++ b/libs/config/test/threads/test_thread_fail2.cpp
@@ -0,0 +1,13 @@
+// (C) Copyright John Maddock 2003.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+#include <boost/config.hpp>
+// disable thread support:
+#ifdef BOOST_HAS_THREADS
+# undef BOOST_HAS_THREADS
+#endif
+// this should now be a compiler error:
+#include <boost/config/requires_threads.hpp>
+// we should never get here...
diff --git a/libs/config/tools/Jamfile.v2 b/libs/config/tools/Jamfile.v2
new file mode 100644
index 0000000000..de66b8d220
--- /dev/null
+++ b/libs/config/tools/Jamfile.v2
@@ -0,0 +1,15 @@
+# Copyright John Maddock 2005.
+# Use, modification and distribution are subject to the
+# Boost Software License, Version 1.0. (See accompanying file
+# LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+run generate.cpp
+ ../../regex/build//boost_regex
+ ../../filesystem/build//boost_filesystem ../../system/build//boost_system
+ : ../../..
+;
+
+
+
+
+
diff --git a/libs/config/tools/configure.in b/libs/config/tools/configure.in
new file mode 100644
index 0000000000..8c69620e85
--- /dev/null
+++ b/libs/config/tools/configure.in
@@ -0,0 +1,463 @@
+# copyright John Maddock 2003
+# Use, modification and distribution are subject to the
+# Boost Software License, Version 1.0. (See accompanying file
+# LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+#
+# the following variables contain our macro definitions:
+#
+required_defs=""
+required_undefs=""
+
+dnl Process this file with autoconf to produce a configure script.
+dnl disable cache processing, it has no effect here:
+define([AC_CACHE_LOAD], )dnl
+define([AC_CACHE_SAVE], )dnl
+AC_INIT(./tools/configure.in)
+
+
+AC_ARG_ENABLE(test, --enable-test tests current settings rather than defining new ones)
+
+if test "foo"$enable_test = "foo"; then
+ enable_test="no"
+fi
+
+cat << EOF
+*** $0: boost configuration utility ***
+
+Please stand by while exploring compiler capabilities...
+Be patient - this could take some time...
+
+Note that this test script only gives an approximate
+configuration - you will need to test the results carefully
+using the boost regression test suite before using the results.
+EOF
+
+if test $enable_test = 'yes'; then
+
+cat << EOF
+
+This script reports only the difference between the detected
+configuration, and the existing boost configuration. Its
+primary aim is to quickly report how well boost is configured
+for one compiler.
+
+***
+
+EOF
+
+else
+
+cat << EOF
+
+***
+
+EOF
+fi
+
+AC_ARG_ENABLE(extension,[--enable-extension=<ext>],
+[
+case "$enableval" in
+ no) AC_MSG_RESULT(Info :.cpp used as extension for tests)
+ ac_ext=cpp
+ ;;
+ *) AC_MSG_RESULT(Argument : .$enableval used as extension)
+ ac_ext=$enableval
+esac
+],
+[AC_MSG_RESULT(Info : .cpp used as extension for tests)
+ ac_ext=cpp
+]
+)
+
+dnl figure out which version of sed to use, on some platforms
+dnl the version in the path is not Unix conforming (MacOS X ? )
+
+if test -f /bin/sed ; then
+ SED=/bin/sed
+else
+ if test -f /usr/bin/sed ; then
+ SED=/usr/bin/sed
+ else
+ SED=sed
+ fi
+fi
+
+dnl Set the boost main directory.
+AC_MSG_CHECKING(for boost main tree)
+boost_base=
+AC_ARG_WITH(boost,
+ AC_HELP_STRING([--with-boost=DIR],[path to the boost main tree]),
+ [
+ #echo "--with boost is set"
+ if test "x$withval" != "x"; then
+ if test "x$withval" != no; then
+ boost_base=`echo "$withval" | $SED 's,//*,/,g' | $SED 's,/$,,'`
+ #echo boost_base=$boost_base
+ if test -f "$boost_base/boost/config.hpp"; then
+ if test -f "$boost_base/libs/config/configure"; then :; else
+ boost_base=
+ #echo "$boost_base/libs/config/configure" not found
+ fi
+ else
+ #echo "$boost_base/boost/config.hpp" not found
+ boost_base=
+ fi
+ fi
+ fi
+ ]
+)
+if test "x$boost_base" = "x"; then
+ #echo '$0 = ' $0
+ boost_base=`expr "x$0" : 'x\(.*\)/@<:@/@:>@*' \| '.'`
+ boost_base="$boost_base/../.."
+ #echo boost_base=$boost_base
+ if test -f "$boost_base/boost/config.hpp"; then
+ if test -f "$boost_base/libs/config/configure"; then :; else
+ boost_base=
+ fi
+ else
+ boost_base=
+ fi
+fi
+if test "x$boost_base" != "x"; then
+ AC_MSG_RESULT([$boost_base])
+else
+ AC_MSG_RESULT([not found])
+ AC_MSG_ERROR([The boost main tree was not found.
+ Specify its location by the --with-boost option.])
+fi
+
+
+
+# Save that, as it is being redefined several times
+use_ac_ext=$ac_ext
+
+AC_PROG_CXX
+ac_ext=$use_ac_ext
+
+AC_LANG_CPLUSPLUS
+
+OLD_CXXFLAGS="$CXXFLAGS"
+
+
+if test $enable_test = 'yes'; then
+ CXXFLAGS="-I$boost_base -I$boost_base/libs/config/test $CXXFLAGS"
+else
+ CXXFLAGS="-I$boost_base -I$boost_base/libs/config/test $CXXFLAGS -DBOOST_NO_CONFIG"
+fi
+
+# add the -AA conformance option to CXXFLAGS for HP aCC only
+if test $CXX = 'aCC'; then
+ CXXFLAGS="-AA $CXXFLAGS"
+fi
+
+dnl check for some standard libraries
+dnl without these some of the tests may fail:
+
+AC_CHECK_LIB(pthread, pthread_exit)
+AC_CHECK_LIB(m, cos)
+AC_CHECK_LIB(rt, clock)
+
+#
+# enumerate test files and test each one:
+#
+for file in $boost_base/libs/config/test/boost_no*.ipp; do
+
+ basename=`echo $file | $SED 's/.*boost_\(.*\)\.ipp/\1/'`
+ macroname=`cat $file | grep '^//[[ ]]*MACRO:' | $SED 's/.*MACRO:[[ ]]*\([[_A-Z0-9]]*\).*/\1/'`
+ title=`cat $file | grep '^//[[ ]]*TITLE:' | $SED 's/.*TITLE:[[ ]]*\([[^ ]].*\)/\1/'`
+ namespace=`echo $macroname | tr [[A-Z]] [[a-z]]`
+
+#echo file = $file
+#echo basename = $basename
+#echo macroname = $macroname
+#echo title = $title
+#echo namespace = $namespace
+
+ ac_ext=$use_ac_ext
+ if test $enable_test = 'yes'; then
+ AC_MSG_CHECKING($title (pass expected) )
+ else
+ AC_MSG_CHECKING($title )
+ fi
+ AC_TRY_RUN(
+ [
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#if !defined($macroname) || defined(BOOST_NO_CONFIG)
+#include "boost_$basename.ipp"
+#else
+namespace ${namespace} = empty_boost;
+#endif
+
+int main(){ return ${namespace}::test(); } ]
+ ,
+ [AC_MSG_RESULT(OK)]
+ ,
+ [AC_MSG_RESULT(Failed)
+ required_defs="$macroname $required_defs"]
+ )
+
+ if test $enable_test = 'yes'; then
+
+ ac_ext=$use_ac_ext
+ AC_MSG_CHECKING($title (fail expected) )
+ AC_TRY_RUN(
+ [
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef $macroname
+#include "boost_$basename.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main() { return ${namespace}::test(); }]
+ ,
+ [AC_MSG_RESULT(failed)
+ required_undefs="$macroname $required_undefs"]
+ ,
+ [AC_MSG_RESULT(OK)]
+ )
+
+ fi
+
+done
+
+#
+# enumerate optional test files and test each one:
+#
+for file in $boost_base/libs/config/test/boost_has*.ipp; do
+
+ basename=`echo $file | $SED 's/.*boost_\(.*\)\.ipp/\1/'`
+ macroname=`cat $file | grep '^//[[ ]]*MACRO:' | $SED 's/.*MACRO:[[ ]]*\([[_A-Z0-9]]*\).*/\1/'`
+ title=`cat $file | grep '^//[[ ]]*TITLE:' | $SED 's/.*TITLE:[[ ]]*\([[^ ]].*\)/\1/'`
+ namespace=`echo $macroname | tr [[A-Z]] [[a-z]]`
+
+# echo $file
+# echo $basename
+# echo $macroname
+# echo $title
+
+ ac_ext=$use_ac_ext
+ if test $enable_test = 'yes'; then
+ AC_MSG_CHECKING($title (pass expected) )
+ AC_TRY_RUN(
+ [
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef $macroname
+#include "boost_$basename.ipp"
+#else
+namespace ${namespace} = empty_boost;
+#endif
+
+int main(){ return ${namespace}::test(); }]
+ ,
+ [AC_MSG_RESULT(OK)]
+ ,
+ [AC_MSG_RESULT(Failed)
+ required_undefs="$macroname $required_undefs"]
+ )
+
+ AC_MSG_CHECKING($title (fail expected) )
+ AC_TRY_RUN(
+ [
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef $macroname
+#include "boost_$basename.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main(){ return ${namespace}::test(); }]
+ ,
+ [
+ AC_MSG_RESULT(failed)
+ required_defs="$macroname $required_defs"
+ ]
+ ,
+ [
+ AC_MSG_RESULT(OK)
+ ]
+ )
+
+ else
+
+ ac_ext=$use_ac_ext
+ AC_MSG_CHECKING($title)
+ AC_TRY_RUN(
+ [
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#include "boost_$basename.ipp"
+
+int main(){ return ${namespace}::test(); }]
+ ,
+ [
+ AC_MSG_RESULT(Yes)
+ required_defs="$macroname $required_defs"
+ ]
+ ,
+ [
+ AC_MSG_RESULT(no)
+ ]
+ )
+
+ fi
+
+done
+
+
+#echo $required_defs
+#echo $required_undefs
+
+if test $enable_test = 'yes'; then
+
+if test "$required_defs" = ""; then
+echo no boost macros need to be defined
+echo no boost macros need to be defined >&5
+else
+echo the following macros need to be defined
+echo $required_defs
+echo the following macros need to be defined >&5
+echo $required_defs >&5
+fi
+if test "$required_undefs" = ""; then
+echo no boost macros need to be undefined
+echo no boost macros need to be undefined >&5
+else
+echo "the following macros need to be undef'ed"
+echo $required_undefs
+echo "the following macros need to be undef'ed" >&5
+echo $required_undefs >&5
+fi
+
+else
+
+date_string=`date`
+
+echo boost_base=$boost_base
+
+cat > user.hpp << EOF
+// (C) Copyright Boost.org 2001.
+// Do not check in modified versions of this file,
+// This file may be customised by the end user, but not by boost.
+
+//
+// Use this file to define a site and compiler specific
+// configuration policy, this version was auto-generated by
+// configure on ${date_string}
+// With the following options:
+// CXX = ${CXX}
+// CXXFLAGS = ${CXXFLAGS}
+// LDFLAGS = ${LDFLAGS}
+// LIBS = ${LIBS}
+//
+
+// define this to disable all config options,
+// excluding the user config. Use if your
+// setup is fully ISO complient, and has no
+// useful extentions, or for autoconf generated
+// setups:
+#ifndef BOOST_NO_CONFIG
+# define BOOST_NO_CONFIG
+#endif
+
+
+// define if you want to disable threading support, even
+// when available:
+// #define BOOST_DISABLE_THREADS
+
+// define if you want the regex library to use the C locale
+// even on Win32:
+// #define BOOST_REGEX_USE_C_LOCALE
+
+// define this is you want the regex library to use the C++
+// locale:
+// #define BOOST_REGEX_USE_CPP_LOCALE
+
+
+//
+// options added by configure:
+//
+EOF
+
+for name in $required_defs; do
+echo '#define '"$name" >> user.hpp
+done
+
+cat_conts=`cat user.hpp`
+
+#
+# post configuration step:
+#
+AC_MSG_CHECKING(original configuration )
+rm -f conftest$ac_exeext
+$CXX -I$boost_base $OLD_CXXFLAGS -DBOOST_NO_USER_CONFIG -o conftest$ac_exeext $LDFLAGS $boost_base/libs/config/test/config_info.cpp $LIBS >&5 2>&1
+./conftest >&5 2>&1
+AC_MSG_RESULT(done)
+AC_MSG_CHECKING(new configuration )
+rm -f conftest$ac_exeext
+$CXX -I$boost_base -I$boost_base/libs/config $OLD_CXXFLAGS -DBOOST_USER_CONFIG='"user.hpp"' -o conftest$ac_exeext $LDFLAGS $boost_base/libs/config/test/config_info.cpp $LIBS >&5 2>&1
+./conftest >&5 2>&1
+AC_MSG_RESULT(done)
+
+AC_OUTPUT(
+[],
+[
+cat > user.hpp << EEEOF
+${cat_conts}
+EEEOF
+cat << EEEOF
+
+Adjustments to boost configuration have been written to
+user.hpp. Copy this to boost/config/user.hpp to use "as is",
+or define BOOST_SITE_CONFIG to point to its location.
+
+TREAT THIS FILE WITH CARE.
+Autoconf generated options are not infallible!
+
+EEEOF
+],
+[
+cat_conts="$cat_conts"
+]
+)
+
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/libs/config/tools/generate.cpp b/libs/config/tools/generate.cpp
new file mode 100644
index 0000000000..c29f511210
--- /dev/null
+++ b/libs/config/tools/generate.cpp
@@ -0,0 +1,290 @@
+// (C) Copyright John Maddock 2004.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+//
+// This progam scans for *.ipp files in the libs/config/test
+// directory and then generates the *.cpp test files from them
+// along with config_test.cpp and a Jamfile.
+//
+
+#include <boost/regex.hpp>
+#include <boost/filesystem/path.hpp>
+#include <boost/filesystem/operations.hpp>
+#include <boost/filesystem/fstream.hpp>
+#include <boost/test/included/prg_exec_monitor.hpp>
+#include <iostream>
+#include <sstream>
+#include <string>
+#include <set>
+#include <ctime>
+
+namespace fs = boost::filesystem;
+
+fs::path config_path;
+
+std::string copyright(
+"// Copyright John Maddock 2002-4.\n"
+"// Use, modification and distribution are subject to the \n"
+"// Boost Software License, Version 1.0. (See accompanying file \n"
+"// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\n"
+"\n"
+"// See http://www.boost.org/libs/config for the most recent version."
+"//\n// Revision $Id: generate.cpp 73153 2011-07-16 20:12:46Z eric_niebler $\n//\n");
+
+std::stringstream config_test1;
+std::stringstream config_test1a;
+std::stringstream config_test2;
+std::stringstream jamfile;
+std::stringstream jamfile_v2;
+std::set<std::string> macro_list;
+
+
+void write_config_info()
+{
+ // load the file into memory so we can scan it:
+ fs::ifstream ifs(config_path / "config_info.cpp");
+ std::string file_text;
+ std::copy(std::istreambuf_iterator<char>(ifs), std::istreambuf_iterator<char>(), std::back_inserter(file_text));
+ ifs.close();
+ // create macro list:
+ std::stringstream ss;
+ for(std::set<std::string>::const_iterator i(macro_list.begin()), j(macro_list.end());
+ i != j;
+ ++i)
+ {
+ ss << " PRINT_MACRO(" << *i << ");\n";
+ }
+ std::string macros = ss.str();
+ // scan for Boost macro block:
+ boost::regex re("BEGIN\\s+GENERATED\\s+BLOCK\\s+DO\\s+NOT\\s+EDIT\\s+THIS[^\\n]+\\n(.*?)\\n\\s+//\\s*END\\s+GENERATED\\s+BLOCK");
+ boost::smatch what;
+ if(boost::regex_search(file_text, what, re))
+ {
+ std::string new_text;
+ new_text.append(what.prefix().first, what[1].first);
+ new_text.append(macros);
+ new_text.append(what[1].second, what.suffix().second);
+ fs::ofstream ofs(config_path / "config_info.cpp");
+ ofs << new_text;
+ }
+}
+
+void write_config_test()
+{
+ fs::ofstream ofs(config_path / "config_test.cpp");
+ time_t t = std::time(0);
+ ofs << "// This file was automatically generated on " << std::ctime(&t);
+ ofs << "// by libs/config/tools/generate.cpp\n" << copyright << std::endl;
+ ofs << "// Test file for config setup\n"
+ "// This file should compile, if it does not then\n"
+ "// one or more macros need to be defined.\n"
+ "// see boost_*.ipp for more details\n\n"
+ "// Do not edit this file, it was generated automatically by\n\n"
+ "#include <boost/config.hpp>\n#include <iostream>\n#include \"test.hpp\"\n\n"
+ "int error_count = 0;\n\n";
+ ofs << config_test1.str() << std::endl;
+ ofs << config_test1a.str() << std::endl;
+ ofs << "int main( int, char *[] )\n{\n" << config_test2.str() << " return error_count;\n}\n\n";
+}
+
+void write_jamfile_v2()
+{
+ fs::ofstream ofs(config_path / "all" / "Jamfile.v2");
+ time_t t = std::time(0);
+ ofs << "#\n# Regression test Jamfile for boost configuration setup.\n# *** DO NOT EDIT THIS FILE BY HAND ***\n"
+ "# This file was automatically generated on " << std::ctime(&t);
+ ofs << "# by libs/config/tools/generate.cpp\n"
+ "# Copyright John Maddock.\n"
+ "# Use, modification and distribution are subject to the \n"
+ "# Boost Software License, Version 1.0. (See accompanying file \n"
+ "# LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\n"
+ "#\n# If you need to alter build preferences then set them in\n"
+ "# the template defined in options_v2.jam.\n#\n"
+ "path-constant DOT : . ;\n"
+ "include $(DOT)/options_v2.jam ;\n\n"
+ "run ../config_info.cpp : : : <threading>single <toolset>msvc:<runtime-link>static <toolset>msvc:<link>static ;\n"
+ "run ../config_info.cpp : : : <threading>multi : config_info_threaded ;\n"
+ "run ../math_info.cpp : : : <toolset>borland:<runtime-link>static <toolset>borland:<link>static ;\n"
+ "run ../config_test.cpp : : : <threading>single <toolset>msvc:<runtime-link>static <toolset>msvc:<link>static ;\n"
+ "run ../config_test.cpp : : : <threading>multi : config_test_threaded ;\n"
+ "run ../limits_test.cpp ../../../test/build//boost_test_exec_monitor ;\n"
+ "run ../abi/abi_test.cpp ../abi/main.cpp ;\n\n";
+ ofs << jamfile_v2.str() << std::endl;
+
+}
+
+void write_test_file(const fs::path& file,
+ const std::string& macro_name,
+ const std::string& namespace_name,
+ const std::string& header_file,
+ bool positive_test,
+ bool expect_success)
+{
+ if(!fs::exists(file))
+ {
+ std::cout << "Writing test file " << file.string() << std::endl;
+
+ fs::ofstream ofs(file);
+ std::time_t t = std::time(0);
+ ofs << "// This file was automatically generated on " << std::ctime(&t);
+ ofs << "// by libs/config/tools/generate.cpp\n" << copyright << std::endl;
+ ofs << "\n// Test file for macro " << macro_name << std::endl;
+
+ if(expect_success)
+ {
+ ofs << "// This file should compile, if it does not then\n"
+ "// " << macro_name << " should ";
+ if(positive_test)
+ ofs << "not ";
+ ofs << "be defined.\n";
+ }
+ else
+ {
+ ofs << "// This file should not compile, if it does then\n"
+ "// " << macro_name << " should ";
+ if(!positive_test)
+ ofs << "not ";
+ ofs << "be defined.\n";
+ }
+ ofs << "// See file " << header_file << " for details\n\n";
+
+ ofs << "// Must not have BOOST_ASSERT_CONFIG set; it defeats\n"
+ "// the objective of this file:\n"
+ "#ifdef BOOST_ASSERT_CONFIG\n"
+ "# undef BOOST_ASSERT_CONFIG\n"
+ "#endif\n\n";
+
+ static const boost::regex tr1_exp("BOOST_HAS_TR1.*");
+
+ ofs << "#include <boost/config.hpp>\n";
+
+ if(regex_match(macro_name, tr1_exp))
+ ofs << "#include <boost/tr1/detail/config.hpp>\n";
+
+ ofs << "#include \"test.hpp\"\n\n"
+ "#if";
+ if(positive_test != expect_success)
+ ofs << "n";
+ ofs << "def " << macro_name <<
+ "\n#include \"" << header_file <<
+ "\"\n#else\n";
+ if(expect_success)
+ ofs << "namespace " << namespace_name << " = empty_boost;\n";
+ else
+ ofs << "#error \"this file should not compile\"\n";
+ ofs << "#endif\n\n";
+
+ ofs << "int main( int, char *[] )\n{\n return " << namespace_name << "::test();\n}\n\n";
+ }
+ else
+ {
+ std::cout << "Skipping existing test file " << file.string() << std::endl;
+ }
+}
+
+void process_ipp_file(const fs::path& file, bool positive_test)
+{
+ std::cout << "Info: Scanning file: " << file.string() << std::endl;
+
+ // our variables:
+ std::string file_text;
+ std::string macro_name;
+ std::string namespace_name;
+ fs::path positive_file;
+ fs::path negative_file;
+
+ // load the file into memory so we can scan it:
+ fs::ifstream ifs(file);
+ std::copy(std::istreambuf_iterator<char>(ifs), std::istreambuf_iterator<char>(), std::back_inserter(file_text));
+ ifs.close();
+ // scan for the macro name:
+ boost::regex macro_regex("//\\s*MACRO\\s*:\\s*(\\w+)");
+ boost::smatch macro_match;
+ if(boost::regex_search(file_text, macro_match, macro_regex))
+ {
+ macro_name = macro_match[1];
+ macro_list.insert(macro_name);
+ namespace_name = boost::regex_replace(file_text, macro_regex, "\\L$1", boost::format_first_only | boost::format_no_copy);
+ }
+ if(macro_name.empty())
+ {
+ std::cout << "Error: no macro definition found in " << file.string();
+ }
+ else
+ {
+ std::cout << "Info: Macroname: " << macro_name << std::endl;
+ }
+
+ // get the output filesnames:
+ boost::regex file_regex("boost_([^.]+)\\.ipp");
+ positive_file = file.branch_path() / boost::regex_replace(file.leaf().string(), file_regex, "$1_pass.cpp");
+ negative_file = file.branch_path() / boost::regex_replace(file.leaf().string(), file_regex, "$1_fail.cpp");
+ write_test_file(positive_file, macro_name, namespace_name, file.leaf().string(), positive_test, true);
+ write_test_file(negative_file, macro_name, namespace_name, file.leaf().string(), positive_test, false);
+
+ // always create config_test data,
+ // positive and negative tests go to separate streams, because for some
+ // reason some compilers choke unless we put them in a particular order...
+ std::ostream* pout = positive_test ? &config_test1a : &config_test1;
+ *pout << "#if";
+ if(!positive_test)
+ *pout << "n";
+ *pout << "def " << macro_name
+ << "\n#include \"" << file.leaf().string() << "\"\n#else\nnamespace "
+ << namespace_name << " = empty_boost;\n#endif\n";
+
+ config_test2 << " if(0 != " << namespace_name << "::test())\n"
+ " {\n"
+ " std::cerr << \"Failed test for " << macro_name << " at: \" << __FILE__ << \":\" << __LINE__ << std::endl;\n"
+ " ++error_count;\n"
+ " }\n";
+
+ // always generate the jamfile data:
+ jamfile << "test-suite \"" << macro_name << "\" : \n"
+ "[ run " << positive_file.leaf().string() << " <template>config_options ]\n"
+ "[ compile-fail " << negative_file.leaf().string() << " <template>config_options ] ;\n";
+
+ jamfile_v2 << "test-suite \"" << macro_name << "\" : \n"
+ "[ run ../" << positive_file.leaf().string() << " ]\n"
+ "[ compile-fail ../" << negative_file.leaf().string() << " ] ;\n";
+
+}
+
+int cpp_main(int argc, char* argv[])
+{
+ //
+ // get the boost path to begin with:
+ //
+ if(argc > 1)
+ {
+ fs::path p(argv[1]);
+ config_path = p / "libs" / "config" / "test" ;
+ }
+ else
+ {
+ // try __FILE__:
+ fs::path p(__FILE__);
+ config_path = p.branch_path().branch_path() / "test";
+ }
+ std::cout << "Info: Boost.Config test path set as: " << config_path.string() << std::endl;
+
+ // enumerate *.ipp files:
+ boost::regex ipp_mask("boost_(?:(has)|no).*\\.ipp");
+ boost::smatch ipp_match;
+ fs::directory_iterator i(config_path), j;
+ while(i != j)
+ {
+ if(boost::regex_match(i->path().leaf().string(), ipp_match, ipp_mask))
+ {
+ process_ipp_file(*i, ipp_match[1].matched);
+ }
+ ++i;
+ }
+ write_config_test();
+ write_jamfile_v2();
+ write_config_info();
+ return 0;
+}
+