[boost-doc-zh] r398 committed - 升级至1.43.0,第一批,libs/目录a-e子目录

  • From: boost-doc-zh@xxxxxxxxxxxxxx
  • To: boost-doc-zh-notify@xxxxxxxxxxxxx
  • Date: Fri, 28 May 2010 07:19:24 +0000

Revision: 398
Author: alai04
Date: Fri May 28 00:05:44 2010
Log: 升级至1.43.0,第一批,libs/目录a-e子目录
http://code.google.com/p/boost-doc-zh/source/detail?r=398

Added:
 /trunk/libs/array/test
 /trunk/libs/array/test/Jamfile.v2
 /trunk/libs/array/test/array0.cpp
 /trunk/libs/array/test/array1.cpp
 /trunk/libs/array/test/array2.cpp
 /trunk/libs/array/test/array3.cpp
 /trunk/libs/array/test/array4.cpp
 /trunk/libs/array/test/array5.cpp
 /trunk/libs/array/test/print.hpp
 /trunk/libs/config/doc/Jamfile.v2
 /trunk/libs/config/doc/acknowledgements.qbk
 /trunk/libs/config/doc/config.qbk
 /trunk/libs/config/doc/configuring_boost.qbk
 /trunk/libs/config/doc/guidelines.qbk
 /trunk/libs/config/doc/macro_reference.qbk
 /trunk/libs/config/doc/rationale.qbk
 /trunk/libs/config/test/Jamfile.v2
 /trunk/libs/config/test/all
 /trunk/libs/config/test/all/Jamfile.v2
 /trunk/libs/config/test/all/options_v2.jam
 /trunk/libs/config/test/boost_no_0x_hdr_array.ipp
 /trunk/libs/config/test/boost_no_0x_hdr_chrono.ipp
 /trunk/libs/config/test/boost_no_0x_hdr_codecvt.ipp
 /trunk/libs/config/test/boost_no_0x_hdr_concepts.ipp
 /trunk/libs/config/test/boost_no_0x_hdr_condition_variable.ipp
 /trunk/libs/config/test/boost_no_0x_hdr_container_concepts.ipp
 /trunk/libs/config/test/boost_no_0x_hdr_forward_list.ipp
 /trunk/libs/config/test/boost_no_0x_hdr_future.ipp
 /trunk/libs/config/test/boost_no_0x_hdr_initializer_list.ipp
 /trunk/libs/config/test/boost_no_0x_hdr_iterator_concepts.ipp
 /trunk/libs/config/test/boost_no_0x_hdr_memory_concepts.ipp
 /trunk/libs/config/test/boost_no_0x_hdr_mutex.ipp
 /trunk/libs/config/test/boost_no_0x_hdr_random.ipp
 /trunk/libs/config/test/boost_no_0x_hdr_ratio.ipp
 /trunk/libs/config/test/boost_no_0x_hdr_regex.ipp
 /trunk/libs/config/test/boost_no_0x_hdr_system_error.ipp
 /trunk/libs/config/test/boost_no_0x_hdr_thread.ipp
 /trunk/libs/config/test/boost_no_0x_hdr_tuple.ipp
 /trunk/libs/config/test/boost_no_0x_hdr_type_traits.ipp
 /trunk/libs/config/test/boost_no_0x_hdr_unordered_map.ipp
 /trunk/libs/config/test/boost_no_0x_hdr_unordered_set.ipp
 /trunk/libs/config/test/boost_no_auto_declarations.ipp
 /trunk/libs/config/test/boost_no_auto_multidecl.ipp
 /trunk/libs/config/test/boost_no_char16_t.ipp
 /trunk/libs/config/test/boost_no_char32_t.ipp
 /trunk/libs/config/test/boost_no_concepts.ipp
 /trunk/libs/config/test/boost_no_constexpr.ipp
 /trunk/libs/config/test/boost_no_decltype.ipp
 /trunk/libs/config/test/boost_no_defaulted_functions.ipp
 /trunk/libs/config/test/boost_no_deleted_functions.ipp
 /trunk/libs/config/test/boost_no_explicit_cvt_ops.ipp
 /trunk/libs/config/test/boost_no_extern_template.ipp
 /trunk/libs/config/test/boost_no_function_template_default_args.ipp
 /trunk/libs/config/test/boost_no_initializer_lists.ipp
 /trunk/libs/config/test/boost_no_lambdas.ipp
 /trunk/libs/config/test/boost_no_long_long.ipp
 /trunk/libs/config/test/boost_no_nullptr.ipp
 /trunk/libs/config/test/boost_no_raw_literals.ipp
 /trunk/libs/config/test/boost_no_rvalue_references.ipp
 /trunk/libs/config/test/boost_no_scoped_enums.ipp
 /trunk/libs/config/test/boost_no_sfinae_expr.ipp
 /trunk/libs/config/test/boost_no_static_assert.ipp
 /trunk/libs/config/test/boost_no_std_unordered.ipp
 /trunk/libs/config/test/boost_no_template_aliases.ipp
 /trunk/libs/config/test/boost_no_unicode_literals.ipp
 /trunk/libs/config/test/boost_no_variadic_templates.ipp
 /trunk/libs/config/test/link
 /trunk/libs/config/test/link/Jamfile.v2
 /trunk/libs/config/test/link/bc_gen.sh
 /trunk/libs/config/test/link/borland.mak
 /trunk/libs/config/test/link/common.sh
 /trunk/libs/config/test/link/link_test.cpp
 /trunk/libs/config/test/link/link_test.hpp
 /trunk/libs/config/test/link/main.cpp
 /trunk/libs/config/test/link/test
 /trunk/libs/config/test/link/test/Jamfile.v2
 /trunk/libs/config/test/link/vc6-stlport.mak
 /trunk/libs/config/test/link/vc6.mak
 /trunk/libs/config/test/link/vc7-stlport.mak
 /trunk/libs/config/test/link/vc7.mak
 /trunk/libs/config/test/link/vc71-stlport.mak
 /trunk/libs/config/test/link/vc71.mak
 /trunk/libs/config/test/link/vc_gen.sh
 /trunk/libs/config/test/no_0x_hdr_array_fail.cpp
 /trunk/libs/config/test/no_0x_hdr_array_pass.cpp
 /trunk/libs/config/test/no_0x_hdr_chrono_fail.cpp
 /trunk/libs/config/test/no_0x_hdr_chrono_pass.cpp
 /trunk/libs/config/test/no_0x_hdr_codecvt_fail.cpp
 /trunk/libs/config/test/no_0x_hdr_codecvt_pass.cpp
 /trunk/libs/config/test/no_0x_hdr_concepts_fail.cpp
 /trunk/libs/config/test/no_0x_hdr_concepts_pass.cpp
 /trunk/libs/config/test/no_0x_hdr_condition_variable_fail.cpp
 /trunk/libs/config/test/no_0x_hdr_condition_variable_pass.cpp
 /trunk/libs/config/test/no_0x_hdr_container_concepts_fail.cpp
 /trunk/libs/config/test/no_0x_hdr_container_concepts_pass.cpp
 /trunk/libs/config/test/no_0x_hdr_forward_list_fail.cpp
 /trunk/libs/config/test/no_0x_hdr_forward_list_pass.cpp
 /trunk/libs/config/test/no_0x_hdr_future_fail.cpp
 /trunk/libs/config/test/no_0x_hdr_future_pass.cpp
 /trunk/libs/config/test/no_0x_hdr_initializer_list_fail.cpp
 /trunk/libs/config/test/no_0x_hdr_initializer_list_pass.cpp
 /trunk/libs/config/test/no_0x_hdr_iterator_concepts_fail.cpp
 /trunk/libs/config/test/no_0x_hdr_iterator_concepts_pass.cpp
 /trunk/libs/config/test/no_0x_hdr_memory_concepts_fail.cpp
 /trunk/libs/config/test/no_0x_hdr_memory_concepts_pass.cpp
 /trunk/libs/config/test/no_0x_hdr_mutex_fail.cpp
 /trunk/libs/config/test/no_0x_hdr_mutex_pass.cpp
 /trunk/libs/config/test/no_0x_hdr_random_fail.cpp
 /trunk/libs/config/test/no_0x_hdr_random_pass.cpp
 /trunk/libs/config/test/no_0x_hdr_ratio_fail.cpp
 /trunk/libs/config/test/no_0x_hdr_ratio_pass.cpp
 /trunk/libs/config/test/no_0x_hdr_regex_fail.cpp
 /trunk/libs/config/test/no_0x_hdr_regex_pass.cpp
 /trunk/libs/config/test/no_0x_hdr_system_error_fail.cpp
 /trunk/libs/config/test/no_0x_hdr_system_error_pass.cpp
 /trunk/libs/config/test/no_0x_hdr_thread_fail.cpp
 /trunk/libs/config/test/no_0x_hdr_thread_pass.cpp
 /trunk/libs/config/test/no_0x_hdr_tuple_fail.cpp
 /trunk/libs/config/test/no_0x_hdr_tuple_pass.cpp
 /trunk/libs/config/test/no_0x_hdr_type_traits_fail.cpp
 /trunk/libs/config/test/no_0x_hdr_type_traits_pass.cpp
 /trunk/libs/config/test/no_0x_hdr_unordered_map_fail.cpp
 /trunk/libs/config/test/no_0x_hdr_unordered_map_pass.cpp
 /trunk/libs/config/test/no_0x_hdr_unordered_set_fail.cpp
 /trunk/libs/config/test/no_0x_hdr_unordered_set_pass.cpp
 /trunk/libs/config/test/no_auto_declarations_fail.cpp
 /trunk/libs/config/test/no_auto_declarations_pass.cpp
 /trunk/libs/config/test/no_auto_multidecl_fail.cpp
 /trunk/libs/config/test/no_auto_multidecl_pass.cpp
 /trunk/libs/config/test/no_char16_t_fail.cpp
 /trunk/libs/config/test/no_char16_t_pass.cpp
 /trunk/libs/config/test/no_char32_t_fail.cpp
 /trunk/libs/config/test/no_char32_t_pass.cpp
 /trunk/libs/config/test/no_concepts_fail.cpp
 /trunk/libs/config/test/no_concepts_pass.cpp
 /trunk/libs/config/test/no_constexpr_fail.cpp
 /trunk/libs/config/test/no_constexpr_pass.cpp
 /trunk/libs/config/test/no_decltype_fail.cpp
 /trunk/libs/config/test/no_decltype_pass.cpp
 /trunk/libs/config/test/no_defaulted_functions_fail.cpp
 /trunk/libs/config/test/no_defaulted_functions_pass.cpp
 /trunk/libs/config/test/no_deleted_functions_fail.cpp
 /trunk/libs/config/test/no_deleted_functions_pass.cpp
 /trunk/libs/config/test/no_explicit_cvt_ops_fail.cpp
 /trunk/libs/config/test/no_explicit_cvt_ops_pass.cpp
 /trunk/libs/config/test/no_extern_template_fail.cpp
 /trunk/libs/config/test/no_extern_template_pass.cpp
 /trunk/libs/config/test/no_function_template_default_args_fail.cpp
 /trunk/libs/config/test/no_function_template_default_args_pass.cpp
 /trunk/libs/config/test/no_initializer_lists_fail.cpp
 /trunk/libs/config/test/no_initializer_lists_pass.cpp
 /trunk/libs/config/test/no_lambdas_fail.cpp
 /trunk/libs/config/test/no_lambdas_pass.cpp
 /trunk/libs/config/test/no_long_long_fail.cpp
 /trunk/libs/config/test/no_long_long_pass.cpp
 /trunk/libs/config/test/no_nullptr_fail.cpp
 /trunk/libs/config/test/no_nullptr_pass.cpp
 /trunk/libs/config/test/no_raw_literals_fail.cpp
 /trunk/libs/config/test/no_raw_literals_pass.cpp
 /trunk/libs/config/test/no_rvalue_references_fail.cpp
 /trunk/libs/config/test/no_rvalue_references_pass.cpp
 /trunk/libs/config/test/no_scoped_enums_fail.cpp
 /trunk/libs/config/test/no_scoped_enums_pass.cpp
 /trunk/libs/config/test/no_sfinae_expr_fail.cpp
 /trunk/libs/config/test/no_sfinae_expr_pass.cpp
 /trunk/libs/config/test/no_static_assert_fail.cpp
 /trunk/libs/config/test/no_static_assert_pass.cpp
 /trunk/libs/config/test/no_std_unordered_fail.cpp
 /trunk/libs/config/test/no_std_unordered_pass.cpp
 /trunk/libs/config/test/no_template_aliases_fail.cpp
 /trunk/libs/config/test/no_template_aliases_pass.cpp
 /trunk/libs/config/test/no_unicode_literals_fail.cpp
 /trunk/libs/config/test/no_unicode_literals_pass.cpp
 /trunk/libs/config/test/no_variadic_templates_fail.cpp
 /trunk/libs/config/test/no_variadic_templates_pass.cpp
 /trunk/libs/exception/test/exception_ptr_test.cpp
Modified:
 /trunk/libs/algorithm/string/doc/design.xml
 /trunk/libs/algorithm/string/doc/usage.xml
 /trunk/libs/array/doc/array.xml
 /trunk/libs/asio/doc/history.qbk
 /trunk/libs/asio/doc/overview/allocation.qbk
 /trunk/libs/asio/doc/overview/serial_ports.qbk
 /trunk/libs/asio/doc/overview/threads.qbk
 /trunk/libs/asio/doc/reference.qbk
 /trunk/libs/asio/doc/reference.xsl
 /trunk/libs/asio/doc/using.qbk
 /trunk/libs/asio/example/http/client/async_client.cpp
 /trunk/libs/asio/example/http/client/sync_client.cpp
 /trunk/libs/asio/test/ip/tcp.cpp
 /trunk/libs/asio/test/read.cpp
 /trunk/libs/asio/test/write.cpp
 /trunk/libs/circular_buffer/doc/circular_buffer.html
 /trunk/libs/config/test/abi/abi_test.cpp
 /trunk/libs/config/test/abi/abi_test.hpp
 /trunk/libs/config/test/abi/main.cpp
 /trunk/libs/config/test/boost_has_2arg_use_facet.ipp
 /trunk/libs/config/test/boost_has_bethreads.ipp
 /trunk/libs/config/test/boost_has_clock_gettime.ipp
 /trunk/libs/config/test/boost_has_concepts.ipp
 /trunk/libs/config/test/boost_has_dirent_h.ipp
 /trunk/libs/config/test/boost_has_expm1.ipp
 /trunk/libs/config/test/boost_has_ftime.ipp
 /trunk/libs/config/test/boost_has_gettimeofday.ipp
 /trunk/libs/config/test/boost_has_hash.ipp
 /trunk/libs/config/test/boost_has_log1p.ipp
 /trunk/libs/config/test/boost_has_long_long.ipp
 /trunk/libs/config/test/boost_has_macro_use_facet.ipp
 /trunk/libs/config/test/boost_has_ms_int64.ipp
 /trunk/libs/config/test/boost_has_nanosleep.ipp
 /trunk/libs/config/test/boost_has_nl_types_h.ipp
 /trunk/libs/config/test/boost_has_nrvo.ipp
 /trunk/libs/config/test/boost_has_part_alloc.ipp
 /trunk/libs/config/test/boost_has_pthread_delay_np.ipp
 /trunk/libs/config/test/boost_has_pthread_ma_st.ipp
 /trunk/libs/config/test/boost_has_pthread_yield.ipp
 /trunk/libs/config/test/boost_has_pthreads.ipp
 /trunk/libs/config/test/boost_has_rvalue_refs.ipp
 /trunk/libs/config/test/boost_has_sched_yield.ipp
 /trunk/libs/config/test/boost_has_sgi_type_traits.ipp
 /trunk/libs/config/test/boost_has_sigaction.ipp
 /trunk/libs/config/test/boost_has_slist.ipp
 /trunk/libs/config/test/boost_has_static_assert.ipp
 /trunk/libs/config/test/boost_has_stdint_h.ipp
 /trunk/libs/config/test/boost_has_stlp_use_facet.ipp
 /trunk/libs/config/test/boost_has_tr1_array.ipp
 /trunk/libs/config/test/boost_has_tr1_bind.ipp
 /trunk/libs/config/test/boost_has_tr1_complex_over.ipp
 /trunk/libs/config/test/boost_has_tr1_complex_trig.ipp
 /trunk/libs/config/test/boost_has_tr1_function.ipp
 /trunk/libs/config/test/boost_has_tr1_hash.ipp
 /trunk/libs/config/test/boost_has_tr1_mem_fn.ipp
 /trunk/libs/config/test/boost_has_tr1_random.ipp
 /trunk/libs/config/test/boost_has_tr1_ref_wrap.ipp
 /trunk/libs/config/test/boost_has_tr1_regex.ipp
 /trunk/libs/config/test/boost_has_tr1_result_of.ipp
 /trunk/libs/config/test/boost_has_tr1_shared_ptr.ipp
 /trunk/libs/config/test/boost_has_tr1_tuple.ipp
 /trunk/libs/config/test/boost_has_tr1_type_traits.ipp
 /trunk/libs/config/test/boost_has_tr1_unordered_map.ipp
 /trunk/libs/config/test/boost_has_tr1_unordered_set.ipp
 /trunk/libs/config/test/boost_has_tr1_utility.ipp
 /trunk/libs/config/test/boost_has_unistd_h.ipp
 /trunk/libs/config/test/boost_has_variadic_tmpl.ipp
 /trunk/libs/config/test/boost_has_vc6_mem_templ.ipp
 /trunk/libs/config/test/boost_has_vc_iterator.ipp
 /trunk/libs/config/test/boost_has_winthreads.ipp
 /trunk/libs/config/test/boost_no_adl_barrier.ipp
 /trunk/libs/config/test/boost_no_arg_dep_lookup.ipp
 /trunk/libs/config/test/boost_no_array_type_spec.ipp
 /trunk/libs/config/test/boost_no_auto_ptr.ipp
 /trunk/libs/config/test/boost_no_bcb_partial_spec.ipp
 /trunk/libs/config/test/boost_no_ctype_functions.ipp
 /trunk/libs/config/test/boost_no_cv_spec.ipp
 /trunk/libs/config/test/boost_no_cv_void_spec.ipp
 /trunk/libs/config/test/boost_no_cwchar.ipp
 /trunk/libs/config/test/boost_no_cwctype.ipp
 /trunk/libs/config/test/boost_no_ded_typename.ipp
 /trunk/libs/config/test/boost_no_dep_nested_class.ipp
 /trunk/libs/config/test/boost_no_dep_val_param.ipp
 /trunk/libs/config/test/boost_no_excep_std.ipp
 /trunk/libs/config/test/boost_no_exceptions.ipp
 /trunk/libs/config/test/boost_no_exp_func_tem_arg.ipp
 /trunk/libs/config/test/boost_no_func_tmp_order.ipp
 /trunk/libs/config/test/boost_no_function_type_spec.ipp
 /trunk/libs/config/test/boost_no_i64_limits.ipp
 /trunk/libs/config/test/boost_no_inline_memb_init.ipp
 /trunk/libs/config/test/boost_no_integral_int64_t.ipp
 /trunk/libs/config/test/boost_no_iosfwd.ipp
 /trunk/libs/config/test/boost_no_iostream.ipp
 /trunk/libs/config/test/boost_no_is_abstract.ipp
 /trunk/libs/config/test/boost_no_iter_construct.ipp
 /trunk/libs/config/test/boost_no_limits.ipp
 /trunk/libs/config/test/boost_no_limits_const_exp.ipp
 /trunk/libs/config/test/boost_no_ll_limits.ipp
 /trunk/libs/config/test/boost_no_mem_func_spec.ipp
 /trunk/libs/config/test/boost_no_mem_tem_keyword.ipp
 /trunk/libs/config/test/boost_no_mem_tem_pnts.ipp
 /trunk/libs/config/test/boost_no_mem_templ_frnds.ipp
 /trunk/libs/config/test/boost_no_mem_templates.ipp
 /trunk/libs/config/test/boost_no_nested_friendship.ipp
 /trunk/libs/config/test/boost_no_ops_in_namespace.ipp
 /trunk/libs/config/test/boost_no_part_spec_def_args.ipp
 /trunk/libs/config/test/boost_no_partial_spec.ipp
 /trunk/libs/config/test/boost_no_priv_aggregate.ipp
 /trunk/libs/config/test/boost_no_ptr_mem_const.ipp
 /trunk/libs/config/test/boost_no_ret_det.ipp
 /trunk/libs/config/test/boost_no_rtti.ipp
 /trunk/libs/config/test/boost_no_sfinae.ipp
 /trunk/libs/config/test/boost_no_sstream.ipp
 /trunk/libs/config/test/boost_no_std_allocator.ipp
 /trunk/libs/config/test/boost_no_std_distance.ipp
 /trunk/libs/config/test/boost_no_std_iter_traits.ipp
 /trunk/libs/config/test/boost_no_std_iterator.ipp
 /trunk/libs/config/test/boost_no_std_locale.ipp
 /trunk/libs/config/test/boost_no_std_messages.ipp
 /trunk/libs/config/test/boost_no_std_min_max.ipp
 /trunk/libs/config/test/boost_no_std_oi_assign.ipp
 /trunk/libs/config/test/boost_no_std_typeinfo.ipp
 /trunk/libs/config/test/boost_no_std_use_facet.ipp
 /trunk/libs/config/test/boost_no_std_wstreambuf.ipp
 /trunk/libs/config/test/boost_no_std_wstring.ipp
 /trunk/libs/config/test/boost_no_stdc_namespace.ipp
 /trunk/libs/config/test/boost_no_swprintf.ipp
 /trunk/libs/config/test/boost_no_template_streams.ipp
 /trunk/libs/config/test/boost_no_template_template.ipp
 /trunk/libs/config/test/boost_no_two_phase_lookup.ipp
 /trunk/libs/config/test/boost_no_typeid.ipp
 /trunk/libs/config/test/boost_no_typename_with_ctor.ipp
 /trunk/libs/config/test/boost_no_using_breaks_adl.ipp
 /trunk/libs/config/test/boost_no_using_decl_overld.ipp
 /trunk/libs/config/test/boost_no_using_template.ipp
 /trunk/libs/config/test/boost_no_void_returns.ipp
 /trunk/libs/config/test/boost_no_wchar_t.ipp
 /trunk/libs/config/test/config_info.cpp
 /trunk/libs/config/test/config_test.cpp
 /trunk/libs/config/test/has_2arg_use_facet_fail.cpp
 /trunk/libs/config/test/has_2arg_use_facet_pass.cpp
 /trunk/libs/config/test/has_bethreads_fail.cpp
 /trunk/libs/config/test/has_bethreads_pass.cpp
 /trunk/libs/config/test/has_clock_gettime_fail.cpp
 /trunk/libs/config/test/has_clock_gettime_pass.cpp
 /trunk/libs/config/test/has_concepts_fail.cpp
 /trunk/libs/config/test/has_concepts_pass.cpp
 /trunk/libs/config/test/has_dirent_h_fail.cpp
 /trunk/libs/config/test/has_dirent_h_pass.cpp
 /trunk/libs/config/test/has_expm1_fail.cpp
 /trunk/libs/config/test/has_expm1_pass.cpp
 /trunk/libs/config/test/has_ftime_fail.cpp
 /trunk/libs/config/test/has_ftime_pass.cpp
 /trunk/libs/config/test/has_gettimeofday_fail.cpp
 /trunk/libs/config/test/has_gettimeofday_pass.cpp
 /trunk/libs/config/test/has_hash_fail.cpp
 /trunk/libs/config/test/has_hash_pass.cpp
 /trunk/libs/config/test/has_log1p_fail.cpp
 /trunk/libs/config/test/has_log1p_pass.cpp
 /trunk/libs/config/test/has_long_long_fail.cpp
 /trunk/libs/config/test/has_long_long_pass.cpp
 /trunk/libs/config/test/has_macro_use_facet_fail.cpp
 /trunk/libs/config/test/has_macro_use_facet_pass.cpp
 /trunk/libs/config/test/has_ms_int64_fail.cpp
 /trunk/libs/config/test/has_ms_int64_pass.cpp
 /trunk/libs/config/test/has_nanosleep_fail.cpp
 /trunk/libs/config/test/has_nanosleep_pass.cpp
 /trunk/libs/config/test/has_nl_types_h_fail.cpp
 /trunk/libs/config/test/has_nl_types_h_pass.cpp
 /trunk/libs/config/test/has_nrvo_fail.cpp
 /trunk/libs/config/test/has_nrvo_pass.cpp
 /trunk/libs/config/test/has_part_alloc_fail.cpp
 /trunk/libs/config/test/has_part_alloc_pass.cpp
 /trunk/libs/config/test/has_pthread_delay_np_fail.cpp
 /trunk/libs/config/test/has_pthread_delay_np_pass.cpp
 /trunk/libs/config/test/has_pthread_ma_st_fail.cpp
 /trunk/libs/config/test/has_pthread_ma_st_pass.cpp
 /trunk/libs/config/test/has_pthread_yield_fail.cpp
 /trunk/libs/config/test/has_pthread_yield_pass.cpp
 /trunk/libs/config/test/has_pthreads_fail.cpp
 /trunk/libs/config/test/has_pthreads_pass.cpp
 /trunk/libs/config/test/has_rvalue_refs_fail.cpp
 /trunk/libs/config/test/has_rvalue_refs_pass.cpp
 /trunk/libs/config/test/has_sched_yield_fail.cpp
 /trunk/libs/config/test/has_sched_yield_pass.cpp
 /trunk/libs/config/test/has_sgi_type_traits_fail.cpp
 /trunk/libs/config/test/has_sgi_type_traits_pass.cpp
 /trunk/libs/config/test/has_sigaction_fail.cpp
 /trunk/libs/config/test/has_sigaction_pass.cpp
 /trunk/libs/config/test/has_slist_fail.cpp
 /trunk/libs/config/test/has_slist_pass.cpp
 /trunk/libs/config/test/has_static_assert_fail.cpp
 /trunk/libs/config/test/has_static_assert_pass.cpp
 /trunk/libs/config/test/has_stdint_h_fail.cpp
 /trunk/libs/config/test/has_stdint_h_pass.cpp
 /trunk/libs/config/test/has_stlp_use_facet_fail.cpp
 /trunk/libs/config/test/has_stlp_use_facet_pass.cpp
 /trunk/libs/config/test/has_tr1_array_fail.cpp
 /trunk/libs/config/test/has_tr1_array_pass.cpp
 /trunk/libs/config/test/has_tr1_bind_fail.cpp
 /trunk/libs/config/test/has_tr1_bind_pass.cpp
 /trunk/libs/config/test/has_tr1_complex_over_fail.cpp
 /trunk/libs/config/test/has_tr1_complex_over_pass.cpp
 /trunk/libs/config/test/has_tr1_complex_trig_fail.cpp
 /trunk/libs/config/test/has_tr1_complex_trig_pass.cpp
 /trunk/libs/config/test/has_tr1_function_fail.cpp
 /trunk/libs/config/test/has_tr1_function_pass.cpp
 /trunk/libs/config/test/has_tr1_hash_fail.cpp
 /trunk/libs/config/test/has_tr1_hash_pass.cpp
 /trunk/libs/config/test/has_tr1_mem_fn_fail.cpp
 /trunk/libs/config/test/has_tr1_mem_fn_pass.cpp
 /trunk/libs/config/test/has_tr1_random_fail.cpp
 /trunk/libs/config/test/has_tr1_random_pass.cpp
 /trunk/libs/config/test/has_tr1_ref_wrap_fail.cpp
 /trunk/libs/config/test/has_tr1_ref_wrap_pass.cpp
 /trunk/libs/config/test/has_tr1_regex_fail.cpp
 /trunk/libs/config/test/has_tr1_regex_pass.cpp
 /trunk/libs/config/test/has_tr1_result_of_fail.cpp
 /trunk/libs/config/test/has_tr1_result_of_pass.cpp
 /trunk/libs/config/test/has_tr1_shared_ptr_fail.cpp
 /trunk/libs/config/test/has_tr1_shared_ptr_pass.cpp
 /trunk/libs/config/test/has_tr1_tuple_fail.cpp
 /trunk/libs/config/test/has_tr1_tuple_pass.cpp
 /trunk/libs/config/test/has_tr1_type_traits_fail.cpp
 /trunk/libs/config/test/has_tr1_type_traits_pass.cpp
 /trunk/libs/config/test/has_tr1_unordered_map_fail.cpp
 /trunk/libs/config/test/has_tr1_unordered_map_pass.cpp
 /trunk/libs/config/test/has_tr1_unordered_set_fail.cpp
 /trunk/libs/config/test/has_tr1_unordered_set_pass.cpp
 /trunk/libs/config/test/has_tr1_utility_fail.cpp
 /trunk/libs/config/test/has_tr1_utility_pass.cpp
 /trunk/libs/config/test/has_unistd_h_fail.cpp
 /trunk/libs/config/test/has_unistd_h_pass.cpp
 /trunk/libs/config/test/has_variadic_tmpl_fail.cpp
 /trunk/libs/config/test/has_variadic_tmpl_pass.cpp
 /trunk/libs/config/test/has_vc6_mem_templ_fail.cpp
 /trunk/libs/config/test/has_vc6_mem_templ_pass.cpp
 /trunk/libs/config/test/has_vc_iterator_fail.cpp
 /trunk/libs/config/test/has_vc_iterator_pass.cpp
 /trunk/libs/config/test/has_winthreads_fail.cpp
 /trunk/libs/config/test/has_winthreads_pass.cpp
 /trunk/libs/config/test/limits_test.cpp
 /trunk/libs/config/test/math_info.cpp
 /trunk/libs/config/test/no_adl_barrier_fail.cpp
 /trunk/libs/config/test/no_adl_barrier_pass.cpp
 /trunk/libs/config/test/no_arg_dep_lookup_fail.cpp
 /trunk/libs/config/test/no_arg_dep_lookup_pass.cpp
 /trunk/libs/config/test/no_array_type_spec_fail.cpp
 /trunk/libs/config/test/no_array_type_spec_pass.cpp
 /trunk/libs/config/test/no_auto_ptr_fail.cpp
 /trunk/libs/config/test/no_auto_ptr_pass.cpp
 /trunk/libs/config/test/no_bcb_partial_spec_fail.cpp
 /trunk/libs/config/test/no_bcb_partial_spec_pass.cpp
 /trunk/libs/config/test/no_ctype_functions_fail.cpp
 /trunk/libs/config/test/no_ctype_functions_pass.cpp
 /trunk/libs/config/test/no_cv_spec_fail.cpp
 /trunk/libs/config/test/no_cv_spec_pass.cpp
 /trunk/libs/config/test/no_cv_void_spec_fail.cpp
 /trunk/libs/config/test/no_cv_void_spec_pass.cpp
 /trunk/libs/config/test/no_cwchar_fail.cpp
 /trunk/libs/config/test/no_cwchar_pass.cpp
 /trunk/libs/config/test/no_cwctype_fail.cpp
 /trunk/libs/config/test/no_cwctype_pass.cpp
 /trunk/libs/config/test/no_ded_typename_fail.cpp
 /trunk/libs/config/test/no_ded_typename_pass.cpp
 /trunk/libs/config/test/no_dep_nested_class_fail.cpp
 /trunk/libs/config/test/no_dep_nested_class_pass.cpp
 /trunk/libs/config/test/no_dep_val_param_fail.cpp
 /trunk/libs/config/test/no_dep_val_param_pass.cpp
 /trunk/libs/config/test/no_excep_std_fail.cpp
 /trunk/libs/config/test/no_excep_std_pass.cpp
 /trunk/libs/config/test/no_exceptions_fail.cpp
 /trunk/libs/config/test/no_exceptions_pass.cpp
 /trunk/libs/config/test/no_exp_func_tem_arg_fail.cpp
 /trunk/libs/config/test/no_exp_func_tem_arg_pass.cpp
 /trunk/libs/config/test/no_func_tmp_order_fail.cpp
 /trunk/libs/config/test/no_func_tmp_order_pass.cpp
 /trunk/libs/config/test/no_function_type_spec_fail.cpp
 /trunk/libs/config/test/no_function_type_spec_pass.cpp
 /trunk/libs/config/test/no_i64_limits_fail.cpp
 /trunk/libs/config/test/no_i64_limits_pass.cpp
 /trunk/libs/config/test/no_inline_memb_init_fail.cpp
 /trunk/libs/config/test/no_inline_memb_init_pass.cpp
 /trunk/libs/config/test/no_integral_int64_t_fail.cpp
 /trunk/libs/config/test/no_integral_int64_t_pass.cpp
 /trunk/libs/config/test/no_iosfwd_fail.cpp
 /trunk/libs/config/test/no_iosfwd_pass.cpp
 /trunk/libs/config/test/no_iostream_fail.cpp
 /trunk/libs/config/test/no_iostream_pass.cpp
 /trunk/libs/config/test/no_is_abstract_fail.cpp
 /trunk/libs/config/test/no_is_abstract_pass.cpp
 /trunk/libs/config/test/no_iter_construct_fail.cpp
 /trunk/libs/config/test/no_iter_construct_pass.cpp
 /trunk/libs/config/test/no_limits_const_exp_fail.cpp
 /trunk/libs/config/test/no_limits_const_exp_pass.cpp
 /trunk/libs/config/test/no_limits_fail.cpp
 /trunk/libs/config/test/no_limits_pass.cpp
 /trunk/libs/config/test/no_ll_limits_fail.cpp
 /trunk/libs/config/test/no_ll_limits_pass.cpp
 /trunk/libs/config/test/no_mem_func_spec_fail.cpp
 /trunk/libs/config/test/no_mem_func_spec_pass.cpp
 /trunk/libs/config/test/no_mem_tem_keyword_fail.cpp
 /trunk/libs/config/test/no_mem_tem_keyword_pass.cpp
 /trunk/libs/config/test/no_mem_tem_pnts_fail.cpp
 /trunk/libs/config/test/no_mem_tem_pnts_pass.cpp
 /trunk/libs/config/test/no_mem_templ_frnds_fail.cpp
 /trunk/libs/config/test/no_mem_templ_frnds_pass.cpp
 /trunk/libs/config/test/no_mem_templates_fail.cpp
 /trunk/libs/config/test/no_mem_templates_pass.cpp
 /trunk/libs/config/test/no_nested_friendship_fail.cpp
 /trunk/libs/config/test/no_nested_friendship_pass.cpp
 /trunk/libs/config/test/no_ops_in_namespace_fail.cpp
 /trunk/libs/config/test/no_ops_in_namespace_pass.cpp
 /trunk/libs/config/test/no_part_spec_def_args_fail.cpp
 /trunk/libs/config/test/no_part_spec_def_args_pass.cpp
 /trunk/libs/config/test/no_partial_spec_fail.cpp
 /trunk/libs/config/test/no_partial_spec_pass.cpp
 /trunk/libs/config/test/no_priv_aggregate_fail.cpp
 /trunk/libs/config/test/no_priv_aggregate_pass.cpp
 /trunk/libs/config/test/no_ptr_mem_const_fail.cpp
 /trunk/libs/config/test/no_ptr_mem_const_pass.cpp
 /trunk/libs/config/test/no_ret_det_fail.cpp
 /trunk/libs/config/test/no_ret_det_pass.cpp
 /trunk/libs/config/test/no_rtti_fail.cpp
 /trunk/libs/config/test/no_rtti_pass.cpp
 /trunk/libs/config/test/no_sfinae_fail.cpp
 /trunk/libs/config/test/no_sfinae_pass.cpp
 /trunk/libs/config/test/no_sstream_fail.cpp
 /trunk/libs/config/test/no_sstream_pass.cpp
 /trunk/libs/config/test/no_std_allocator_fail.cpp
 /trunk/libs/config/test/no_std_allocator_pass.cpp
 /trunk/libs/config/test/no_std_distance_fail.cpp
 /trunk/libs/config/test/no_std_distance_pass.cpp
 /trunk/libs/config/test/no_std_iter_traits_fail.cpp
 /trunk/libs/config/test/no_std_iter_traits_pass.cpp
 /trunk/libs/config/test/no_std_iterator_fail.cpp
 /trunk/libs/config/test/no_std_iterator_pass.cpp
 /trunk/libs/config/test/no_std_locale_fail.cpp
 /trunk/libs/config/test/no_std_locale_pass.cpp
 /trunk/libs/config/test/no_std_messages_fail.cpp
 /trunk/libs/config/test/no_std_messages_pass.cpp
 /trunk/libs/config/test/no_std_min_max_fail.cpp
 /trunk/libs/config/test/no_std_min_max_pass.cpp
 /trunk/libs/config/test/no_std_oi_assign_fail.cpp
 /trunk/libs/config/test/no_std_oi_assign_pass.cpp
 /trunk/libs/config/test/no_std_typeinfo_fail.cpp
 /trunk/libs/config/test/no_std_typeinfo_pass.cpp
 /trunk/libs/config/test/no_std_use_facet_fail.cpp
 /trunk/libs/config/test/no_std_use_facet_pass.cpp
 /trunk/libs/config/test/no_std_wstreambuf_fail.cpp
 /trunk/libs/config/test/no_std_wstreambuf_pass.cpp
 /trunk/libs/config/test/no_std_wstring_fail.cpp
 /trunk/libs/config/test/no_std_wstring_pass.cpp
 /trunk/libs/config/test/no_stdc_namespace_fail.cpp
 /trunk/libs/config/test/no_stdc_namespace_pass.cpp
 /trunk/libs/config/test/no_swprintf_fail.cpp
 /trunk/libs/config/test/no_swprintf_pass.cpp
 /trunk/libs/config/test/no_template_streams_fail.cpp
 /trunk/libs/config/test/no_template_streams_pass.cpp
 /trunk/libs/config/test/no_template_template_fail.cpp
 /trunk/libs/config/test/no_template_template_pass.cpp
 /trunk/libs/config/test/no_two_phase_lookup_fail.cpp
 /trunk/libs/config/test/no_two_phase_lookup_pass.cpp
 /trunk/libs/config/test/no_typeid_fail.cpp
 /trunk/libs/config/test/no_typeid_pass.cpp
 /trunk/libs/config/test/no_typename_with_ctor_fail.cpp
 /trunk/libs/config/test/no_typename_with_ctor_pass.cpp
 /trunk/libs/config/test/no_using_breaks_adl_fail.cpp
 /trunk/libs/config/test/no_using_breaks_adl_pass.cpp
 /trunk/libs/config/test/no_using_decl_overld_fail.cpp
 /trunk/libs/config/test/no_using_decl_overld_pass.cpp
 /trunk/libs/config/test/no_using_template_fail.cpp
 /trunk/libs/config/test/no_using_template_pass.cpp
 /trunk/libs/config/test/no_void_returns_fail.cpp
 /trunk/libs/config/test/no_void_returns_pass.cpp
 /trunk/libs/config/test/no_wchar_t_fail.cpp
 /trunk/libs/config/test/no_wchar_t_pass.cpp
 /trunk/libs/config/test/test.hpp
 /trunk/libs/config/test/threads/test_thread_fail1.cpp
 /trunk/libs/config/test/threads/test_thread_fail2.cpp
 /trunk/libs/exception/doc/copy_exception.html
 /trunk/libs/exception/doc/current_exception.html
 /trunk/libs/exception/doc/exception_ptr.html
 /trunk/libs/exception/doc/rethrow_exception.html
 /trunk/libs/exception/test/Jamfile.v2
 /trunk/libs/exception/test/copy_exception_test.cpp
 /trunk/libs/exception/test/errinfos_test.cpp
 /trunk/libs/exception/test/error_info_test.cpp
 /trunk/libs/exception/test/is_output_streamable_test.cpp

=======================================
--- /dev/null
+++ /trunk/libs/array/test/Jamfile.v2   Fri May 28 00:05:44 2010
@@ -0,0 +1,14 @@
+#~ Copyright Rene Rivera 2008
+#~ 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)
+
+import testing ;
+
+test-suite array :
+    [ run array0.cpp ]
+    [ run array1.cpp ]
+    [ run array2.cpp ]
+    [ run array3.cpp ]
+    [ run array4.cpp ]
+    [ run array5.cpp ]
+    ;
=======================================
--- /dev/null
+++ /trunk/libs/array/test/array0.cpp   Fri May 28 00:05:44 2010
@@ -0,0 +1,107 @@
+/* tests for using class array<> specialization for size 0
+ * (C) Copyright Alisdair Meredith 2006.
+ * 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)
+ */
+
+#include <string>
+#include <iostream>
+#include <boost/array.hpp>
+
+namespace {
+unsigned int failed_tests = 0;
+
+void    fail_test( const char * reason ) {
+    ++failed_tests;
+ std::cerr << "Test failure " << failed_tests << ": " << reason << std::endl;
+}
+
+template< class T >
+void    BadValue( const T &  )
+{
+    fail_test( "Unexpected value" );
+}
+
+template< class T >
+void    RunTests()
+{
+    typedef boost::array< T, 0 >    test_type;
+
+    //  Test value and aggegrate initialization
+    test_type                   test_case   =   {};
+    const boost::array< T, 0 >  const_test_case = test_type();
+
+    test_case.fill ( T() );
+
+ // front/back and operator[] must compile, but calling them is undefined + // Likewise, all tests below should evaluate to false, avoiding undefined behaviour
+    if( !test_case.empty() ) {
+        BadValue( test_case.front() );
+    }
+
+    if( !const_test_case.empty() ) {
+        BadValue( const_test_case.back() );
+    }
+
+    if( test_case.size() > 0 ) {
+        BadValue( test_case[ 0 ] );
+    }
+
+    if( const_test_case.max_size() > 0 ) {
+        BadValue( const_test_case[ 0 ] );
+    }
+
+    //  Assert requirements of TR1 6.2.2.4
+    if( test_case.begin() != test_case.end() ) {
+        fail_test( "Not an empty range" );
+    }
+    if( const_test_case.begin() != const_test_case.end() ) {
+        fail_test( "Not an empty range" );
+    }
+
+    if( test_case.begin() == const_test_case.begin() ) {
+        fail_test( "iterators for different containers are not distinct" );
+    }
+
+    if( test_case.data() == const_test_case.data() ) {
+ // Value of data is unspecified in TR1, so no requirement this test pass or fail
+    //  However, it must compile!
+    }
+
+
+    //  Check can safely use all iterator types with std algorithms
+    std::for_each( test_case.begin(), test_case.end(), BadValue< T > );
+    std::for_each( test_case.rbegin(), test_case.rend(), BadValue< T > );
+ std::for_each( const_test_case.begin(), const_test_case.end(), BadValue< T > ); + std::for_each( const_test_case.rbegin(), const_test_case.rend(), BadValue< T > );
+
+    //  Check swap is well formed
+    std::swap( test_case, test_case );
+
+    //  Check assigment operator and overloads are well formed
+    test_case   =   const_test_case;
+
+    //  Confirm at() throws the std lib defined exception
+    try {
+        BadValue( test_case.at( 0 ) );
+    } catch ( const std::out_of_range & ) {
+    }
+
+    try {
+        BadValue( const_test_case.at( 0 ) );
+    } catch ( const std::out_of_range & ) {
+    }
+}
+
+}
+
+int main()
+{
+    RunTests< bool >();
+    RunTests< void * >();
+    RunTests< long double >();
+    RunTests< std::string >();
+    return failed_tests;
+}
+
=======================================
--- /dev/null
+++ /trunk/libs/array/test/array1.cpp   Fri May 28 00:05:44 2010
@@ -0,0 +1,58 @@
+/* simple example for using class array<>
+ *
+ * (C) Copyright Nicolai M. Josuttis 2001.
+ * 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)
+ *
+ * Changelog:
+ * 20 Jan 2001 - Removed boolalpha use since stock GCC doesn't support it
+ *               (David Abrahams)
+ */
+
+#include <iostream>
+#include <boost/array.hpp>
+
+int main()
+{
+    // define special type name
+    typedef boost::array<float,6> Array;
+
+    // create and initialize an array
+    Array a = { { 42 } };
+
+    // access elements
+    for (unsigned i=1; i<a.size(); ++i) {
+        a[i] = a[i-1]+1;
+    }
+
+    // use some common STL container operations
+    std::cout << "size:     " << a.size() << std::endl;
+ std::cout << "empty: " << (a.empty() ? "true" : "false") << std::endl;
+    std::cout << "max_size: " << a.max_size() << std::endl;
+    std::cout << "front:    " << a.front() << std::endl;
+    std::cout << "back:     " << a.back() << std::endl;
+    std::cout << "elems:    ";
+
+    // iterate through all elements
+    for (Array::const_iterator pos=a.begin(); pos<a.end(); ++pos) {
+        std::cout << *pos << ' ';
+    }
+    std::cout << std::endl;
+
+    // check copy constructor and assignment operator
+    Array b(a);
+    Array c;
+    c = a;
+    if (a==b && a==c) {
+        std::cout << "copy construction and copy assignment are OK"
+                  << std::endl;
+    }
+    else {
+        std::cout << "copy construction and copy assignment FAILED"
+                  << std::endl;
+    }
+
+    return 0;  // makes Visual-C++ compiler happy
+}
+
=======================================
--- /dev/null
+++ /trunk/libs/array/test/array2.cpp   Fri May 28 00:05:44 2010
@@ -0,0 +1,40 @@
+/* example for using class array<>
+ * (C) Copyright Nicolai M. Josuttis 2001.
+ * 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)
+ */
+
+#include <algorithm>
+#include <functional>
+#include <boost/array.hpp>
+#include "print.hpp"
+using namespace std;
+using namespace boost;
+
+int main()
+{
+    // create and initialize array
+    array<int,10> a = { { 1, 2, 3, 4, 5 } };
+
+    print_elements(a);
+
+    // modify elements directly
+    for (unsigned i=0; i<a.size(); ++i) {
+        ++a[i];
+    }
+    print_elements(a);
+
+    // change order using an STL algorithm
+    reverse(a.begin(),a.end());
+    print_elements(a);
+
+    // negate elements using STL framework
+    transform(a.begin(),a.end(),    // source
+              a.begin(),            // destination
+              negate<int>());       // operation
+    print_elements(a);
+
+    return 0;  // makes Visual-C++ compiler happy
+}
+
=======================================
--- /dev/null
+++ /trunk/libs/array/test/array3.cpp   Fri May 28 00:05:44 2010
@@ -0,0 +1,55 @@
+/* example for using class array<>
+ * (C) Copyright Nicolai M. Josuttis 2001.
+ * 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)
+ */
+
+#include <string>
+#include <iostream>
+#include <boost/array.hpp>
+
+template <class T>
+void print_elements (const T& x);
+
+int main()
+{
+    // create array of four seasons
+    boost::array<std::string,4> seasons = {
+        { "spring", "summer", "autumn", "winter" }
+    };
+
+    // copy and change order
+    boost::array<std::string,4> seasons_orig = seasons;
+    for (std::size_t i=seasons.size()-1; i>0; --i) {
+        std::swap(seasons.at(i),seasons.at((i+1)%seasons.size()));
+    }
+
+    std::cout << "one way:   ";
+    print_elements(seasons);
+
+    // try swap()
+    std::cout << "other way: ";
+    std::swap(seasons,seasons_orig);
+    print_elements(seasons);
+
+    // try reverse iterators
+    std::cout << "reverse:   ";
+    for (boost::array<std::string,4>::reverse_iterator pos
+           =seasons.rbegin(); pos<seasons.rend(); ++pos) {
+        std::cout << " " << *pos;
+    }
+    std::cout << std::endl;
+
+    return 0;  // makes Visual-C++ compiler happy
+}
+
+template <class T>
+void print_elements (const T& x)
+{
+    for (unsigned i=0; i<x.size(); ++i) {
+        std::cout << " " << x[i];
+    }
+    std::cout << std::endl;
+}
+
=======================================
--- /dev/null
+++ /trunk/libs/array/test/array4.cpp   Fri May 28 00:05:44 2010
@@ -0,0 +1,43 @@
+/* example for using class array<>
+ * (C) Copyright Nicolai M. Josuttis 2001.
+ * 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)
+ */
+
+#include <algorithm>
+#include <functional>
+#include <string>
+#include <iostream>
+#include <boost/array.hpp>
+
+int main()
+{
+    // array of arrays of seasons
+    boost::array<boost::array<std::string,4>,2> seasons_i18n = {
+        { { { "spring", "summer", "autumn", "winter", } },
+          { { "Fruehling", "Sommer", "Herbst", "Winter" } }
+        }
+    };
+
+    // for any array of seasons print seasons
+    for (unsigned i=0; i<seasons_i18n.size(); ++i) {
+        boost::array<std::string,4> seasons = seasons_i18n[i];
+        for (unsigned j=0; j<seasons.size(); ++j) {
+            std::cout << seasons[j] << " ";
+        }
+        std::cout << std::endl;
+    }
+
+    // print first element of first array
+    std::cout << "first element of first array: "
+              << seasons_i18n[0][0] << std::endl;
+
+    // print last element of last array
+    std::cout << "last element of last array: "
+ << seasons_i18n[seasons_i18n.size()-1][seasons_i18n[0].size()-1]
+              << std::endl;
+
+    return 0;  // makes Visual-C++ compiler happy
+}
+
=======================================
--- /dev/null
+++ /trunk/libs/array/test/array5.cpp   Fri May 28 00:05:44 2010
@@ -0,0 +1,72 @@
+/* simple example for using class array<>
+ * (C) Copyright Nicolai M. Josuttis 2001.
+ * 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)
+ */
+
+#include <iostream>
+#include <boost/array.hpp>
+
+template <typename T>
+void test_static_size (const T& cont)
+{
+    int tmp[T::static_size];
+    for (unsigned i=0; i<T::static_size; ++i) {
+        tmp[i] = int(cont[i]);
+    }
+    for (unsigned j=0; j<T::static_size; ++j) {
+        std::cout << tmp[j] << ' ';
+    }
+    std::cout << std::endl;
+}
+
+int main()
+{
+    // define special type name
+    typedef boost::array<float,6> Array;
+
+    // create and initialize an array
+    const Array a = { { 42.42f } };
+
+    // use some common STL container operations
+    std::cout << "static_size: " << a.size() << std::endl;
+    std::cout << "size:        " << a.size() << std::endl;
+    // Can't use std::boolalpha because it isn't portable
+ std::cout << "empty: " << (a.empty()? "true" : "false") << std::endl;
+    std::cout << "max_size:    " << a.max_size() << std::endl;
+    std::cout << "front:       " << a.front() << std::endl;
+    std::cout << "back:        " << a.back() << std::endl;
+    std::cout << "[0]:         " << a[0] << std::endl;
+    std::cout << "elems:       ";
+
+    // iterate through all elements
+    for (Array::const_iterator pos=a.begin(); pos<a.end(); ++pos) {
+        std::cout << *pos << ' ';
+    }
+    std::cout << std::endl;
+    test_static_size(a);
+
+    // check copy constructor and assignment operator
+    Array b(a);
+    Array c;
+    c = a;
+    if (a==b && a==c) {
+        std::cout << "copy construction and copy assignment are OK"
+                  << std::endl;
+    }
+    else {
+        std::cout << "copy construction and copy assignment are BROKEN"
+                  << std::endl;
+    }
+
+    typedef boost::array<double,6> DArray;
+    typedef boost::array<int,6> IArray;
+ IArray ia = { { 1, 2, 3, 4, 5, 6 } } ; // extra braces silence GCC warning
+    DArray da;
+    da = ia;
+    da.assign(42);
+
+    return 0;  // makes Visual-C++ compiler happy
+}
+
=======================================
--- /dev/null
+++ /trunk/libs/array/test/print.hpp    Fri May 28 00:05:44 2010
@@ -0,0 +1,27 @@
+/* The following code example is taken from the book
+ * "The C++ Standard Library - A Tutorial and Reference"
+ * by Nicolai M. Josuttis, Addison-Wesley, 1999
+ *
+ * (C) Copyright Nicolai M. Josuttis 1999.
+ * 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)
+ */
+#include <iostream>
+
+/* print_elements()
+ * - prints optional C-string optcstr followed by
+ * - all elements of the collection coll
+ * - separated by spaces
+ */
+template <class T>
+inline void print_elements (const T& coll, const char* optcstr="")
+{
+    typename T::const_iterator pos;
+
+    std::cout << optcstr;
+    for (pos=coll.begin(); pos!=coll.end(); ++pos) {
+        std::cout << *pos << ' ';
+    }
+    std::cout << std::endl;
+}
=======================================
--- /dev/null
+++ /trunk/libs/config/doc/Jamfile.v2   Fri May 28 00:05:44 2010
@@ -0,0 +1,64 @@
+# 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=../../../..
+        <xsl:param>boost.libraries=../../../../libs/libraries.htm
+        <xsl:param>navig.graphics=1
+        <xsl:param>html.stylesheet=../../../../doc/html/boostbook.css
+
+        # 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 ;
+
+
=======================================
--- /dev/null
+++ /trunk/libs/config/doc/acknowledgements.qbk Fri May 28 00:05:44 2010
@@ -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]
+
+
=======================================
--- /dev/null
+++ /trunk/libs/config/doc/config.qbk   Fri May 28 00:05:44 2010
@@ -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]
+
+
+
+
+
=======================================
--- /dev/null
+++ /trunk/libs/config/doc/configuring_boost.qbk        Fri May 28 00:05:44 2010
@@ -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]
+
=======================================
--- /dev/null
+++ /trunk/libs/config/doc/guidelines.qbk       Fri May 28 00:05:44 2010
@@ -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]
+
+
+
+
+
+
=======================================
--- /dev/null
+++ /trunk/libs/config/doc/macro_reference.qbk  Fri May 28 00:05:44 2010
@@ -0,0 +1,987 @@
+[/
+    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 defects]
+
+The following macros all describe features that are required by the C++ standard, +if one of the following macros is defined, then it represents a defect in the
+compiler's conformance with the 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_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_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_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_DECLSPEC`][Compiler][
+The compiler uses `__declspec(dllexport)` and `__declspec(dllimport)` to
+export/import symbols from dll's.
+]]
+[[`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 `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++0x features]
+
+The following macros describe features that are likely to be included in the +upcoming ISO C++ standard, C++0x, 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++0x features not supported]
+
+The following macros describe features in the upcoming ISO C++ standard, 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_CONCEPTS`][The standard library does not provide header <concepts>.]] +[[`BOOST_NO_0X_HDR_CONDITION_VARIABLE`][The standard library does not provide header <condition_variable>.]] +[[`BOOST_NO_0X_HDR_CONTAINER_CONCEPTS`][The standard library does not provide header <container_concepts>.]] +[[`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_ITERATOR_CONCEPTS`][The standard library does not provide header <iterator_concepts>.]] +[[`BOOST_NO_0X_HDR_MEMORY_CONCEPTS`][The standard library does not provide header <memory_concepts>.]] +[[`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_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_CONCEPTS`][The compiler does not support Concepts.
+]]
+[[`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_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_OPERATIONS`][The compiler does not support
+explicit conversion operators (`explicit operator T()`).
+]]
+[[`BOOST_NO_EXTERN_TEMPLATE`][The compiler does not support
+explicit instantiation declarations for templates (`explicit 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_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_VARIADIC_TEMPLATES`][The compiler does not support
+variadic templates.
+]]
+]
+
+[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_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__.
+]]
+]
+
+[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_WINDOWS`][`<boost/config.hpp>`][
+Defined if the Windows platfrom 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 two issues: fixing +the ABI of the compiled library, and selecting which compiled library to link
+against based upon the compilers settings.
+
+[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]
=======================================
--- /dev/null
+++ /trunk/libs/config/doc/rationale.qbk        Fri May 28 00:05:44 2010
@@ -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]
+
+
=======================================
--- /dev/null
+++ /trunk/libs/config/test/Jamfile.v2  Fri May 28 00:05:44 2010
@@ -0,0 +1,61 @@
+#
+# 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
+  :
+    [ 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 ]
+  ;
=======================================
--- /dev/null
+++ /trunk/libs/config/test/all/Jamfile.v2      Fri May 28 00:05:44 2010
@@ -0,0 +1,517 @@
+#
+# Regression test Jamfile for boost configuration setup.
+# *** DO NOT EDIT THIS FILE BY HAND ***
+# This file was automatically generated on Sun Oct 11 13:04:18 2009
+#  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_CONCEPTS" :
+[ run ../has_concepts_pass.cpp ]
+[ compile-fail ../has_concepts_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_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_CONCEPTS" :
+[ run ../no_0x_hdr_concepts_pass.cpp ]
+[ compile-fail ../no_0x_hdr_concepts_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_CONTAINER_CONCEPTS" :
+[ run ../no_0x_hdr_container_concepts_pass.cpp ]
+[ compile-fail ../no_0x_hdr_container_concepts_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_ITERATOR_CONCEPTS" :
+[ run ../no_0x_hdr_iterator_concepts_pass.cpp ]
+[ compile-fail ../no_0x_hdr_iterator_concepts_fail.cpp ] ;
+test-suite "BOOST_NO_0X_HDR_MEMORY_CONCEPTS" :
+[ run ../no_0x_hdr_memory_concepts_pass.cpp ]
+[ compile-fail ../no_0x_hdr_memory_concepts_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_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_CONCEPTS" :
+[ run ../no_concepts_pass.cpp ]
+[ compile-fail ../no_concepts_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_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_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_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_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_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_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 ] ;
+
=======================================
--- /dev/null
+++ /trunk/libs/config/test/all/options_v2.jam  Fri May 28 00:05:44 2010
@@ -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 ;
=======================================
--- /dev/null
+++ /trunk/libs/config/test/boost_no_0x_hdr_array.ipp Fri May 28 00:05:44 2010
@@ -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_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()
+{
+  return 0;
+}
+
+}
=======================================
--- /dev/null
+++ /trunk/libs/config/test/boost_no_0x_hdr_chrono.ipp Fri May 28 00:05:44 2010
@@ -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_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()
+{
+  return 0;
+}
+
+}
=======================================
--- /dev/null
+++ /trunk/libs/config/test/boost_no_0x_hdr_codecvt.ipp Fri May 28 00:05:44 2010
@@ -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_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()
+{
+  return 0;
+}
+
+}
=======================================
--- /dev/null
+++ /trunk/libs/config/test/boost_no_0x_hdr_concepts.ipp Fri May 28 00:05:44 2010
@@ -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_0X_HDR_CONCEPTS
+//  TITLE:         C++0x header <concepts> unavailable
+// DESCRIPTION: The standard library does not supply C++0x header <concepts>
+
+#include <concepts>
+
+namespace boost_no_0x_hdr_concepts {
+
+int test()
+{
+  return 0;
+}
+
+}
=======================================
--- /dev/null
+++ /trunk/libs/config/test/boost_no_0x_hdr_condition_variable.ipp Fri May 28 00:05:44 2010
@@ -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_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()
+{
+  return 0;
+}
+
+}
=======================================
--- /dev/null
+++ /trunk/libs/config/test/boost_no_0x_hdr_container_concepts.ipp Fri May 28 00:05:44 2010
@@ -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_0X_HDR_CONTAINER_CONCEPTS
+//  TITLE:         C++0x header <container_concepts> unavailable
+// DESCRIPTION: The standard library does not supply C++0x header <container_concepts>
+
+#include <container_concepts>
+
+namespace boost_no_0x_hdr_container_concepts {
+
+int test()
+{
+  return 0;
+}
+
+}
=======================================
--- /dev/null
+++ /trunk/libs/config/test/boost_no_0x_hdr_forward_list.ipp Fri May 28 00:05:44 2010
@@ -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_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()
+{
+  return 0;
+}
+
+}
=======================================
--- /dev/null
+++ /trunk/libs/config/test/boost_no_0x_hdr_future.ipp Fri May 28 00:05:44 2010
@@ -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_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()
+{
+  return 0;
+}
+
+}
=======================================
--- /dev/null
+++ /trunk/libs/config/test/boost_no_0x_hdr_initializer_list.ipp Fri May 28 00:05:44 2010
@@ -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_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 {
+
+int test()
+{
+  return 0;
+}
+
+}
=======================================
--- /dev/null
+++ /trunk/libs/config/test/boost_no_0x_hdr_iterator_concepts.ipp Fri May 28 00:05:44 2010
@@ -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_0X_HDR_ITERATOR_CONCEPTS
+//  TITLE:         C++0x header <iterator_concepts> unavailable
+// DESCRIPTION: The standard library does not supply C++0x header <iterator_concepts>
+
+#include <iterator_concepts>
+
+namespace boost_no_0x_hdr_iterator_concepts {
+
+int test()
+{
+  return 0;
+}
+
+}
=======================================
--- /dev/null
+++ /trunk/libs/config/test/boost_no_0x_hdr_memory_concepts.ipp Fri May 28 00:05:44 2010
@@ -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_0X_HDR_MEMORY_CONCEPTS
+//  TITLE:         C++0x header <memory_concepts> unavailable
+// DESCRIPTION: The standard library does not supply C++0x header <memory_concepts>
+
+#include <memory_concepts>
+
+namespace boost_no_0x_hdr_memory_concepts {
+
+int test()
+{
+  return 0;
+}
+
+}
=======================================
--- /dev/null
+++ /trunk/libs/config/test/boost_no_0x_hdr_mutex.ipp Fri May 28 00:05:44 2010
@@ -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_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()
+{
+  return 0;
+}
+
+}
=======================================
--- /dev/null
+++ /trunk/libs/config/test/boost_no_0x_hdr_random.ipp Fri May 28 00:05:44 2010
@@ -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_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()
+{
+  return 0;
+}
+
+}
=======================================
--- /dev/null
+++ /trunk/libs/config/test/boost_no_0x_hdr_ratio.ipp Fri May 28 00:05:44 2010
@@ -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_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()
+{
+  return 0;
+}
+
+}
=======================================
--- /dev/null
+++ /trunk/libs/config/test/boost_no_0x_hdr_regex.ipp Fri May 28 00:05:44 2010
@@ -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_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()
+{
+  return 0;
+}
+
+}
=======================================
--- /dev/null
+++ /trunk/libs/config/test/boost_no_0x_hdr_system_error.ipp Fri May 28 00:05:44 2010
@@ -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_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()
+{
+  return 0;
+}
+
+}
=======================================
--- /dev/null
+++ /trunk/libs/config/test/boost_no_0x_hdr_thread.ipp Fri May 28 00:05:44 2010
@@ -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_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()
+{
+  return 0;
+}
+
+}
=======================================
--- /dev/null
+++ /trunk/libs/config/test/boost_no_0x_hdr_tuple.ipp Fri May 28 00:05:44 2010
@@ -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_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()
+{
+  return 0;
+}
+
+}
=======================================
--- /dev/null
+++ /trunk/libs/config/test/boost_no_0x_hdr_type_traits.ipp Fri May 28 00:05:44 2010
@@ -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_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()
+{
+  return 0;
+}
+
+}
=======================================
--- /dev/null
+++ /trunk/libs/config/test/boost_no_0x_hdr_unordered_map.ipp Fri May 28 00:05:44 2010
@@ -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_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()
+{
+  return 0;
+}
+
+}
=======================================
--- /dev/null
+++ /trunk/libs/config/test/boost_no_0x_hdr_unordered_set.ipp Fri May 28 00:05:44 2010
@@ -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_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()
+{
+  return 0;
+}
+
+}
=======================================
--- /dev/null
+++ /trunk/libs/config/test/boost_no_auto_declarations.ipp Fri May 28 00:05:44 2010
@@ -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(int& x)
+{
+}
+
+int test()
+{
+   auto x = 10;
+   check(x);
+   return 0;
+}
+
+}
=======================================
--- /dev/null
+++ /trunk/libs/config/test/boost_no_auto_multidecl.ipp Fri May 28 00:05:44 2010
@@ -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(int& x, int*& y)
+{
+}
+
+int test()
+{
+   auto x = 10, *y = &x;
+   check(x, y);
+   return 0;
+}
+
+}
=======================================
--- /dev/null
+++ /trunk/libs/config/test/boost_no_char16_t.ipp       Fri May 28 00:05:44 2010
@@ -0,0 +1,21 @@
+//  (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 {
+
+int test()
+{
+  char16_t c;
+  return 0;
+}
+
+}
=======================================
--- /dev/null
+++ /trunk/libs/config/test/boost_no_char32_t.ipp       Fri May 28 00:05:44 2010
@@ -0,0 +1,21 @@
+//  (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 {
+
+int test()
+{
+  char32_t c;
+  return 0;
+}
+
+}
=======================================
--- /dev/null
+++ /trunk/libs/config/test/boost_no_concepts.ipp       Fri May 28 00:05:44 2010
@@ -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_CONCEPTS
+//  TITLE:         C++0x concepts feature unavailable
+//  DESCRIPTION:   The compiler does not support the C++0x concepts feature
+
+namespace boost_no_concepts {
+
+concept Foo<typename T> { }
+
+int test()
+{
+  return 0;
+}
+
+}
=======================================
--- /dev/null
+++ /trunk/libs/config/test/boost_no_constexpr.ipp      Fri May 28 00:05:44 2010
@@ -0,0 +1,23 @@
+//  (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 {
+
+constexpr int square(int x) { return x * x; }  // from N2235
+
+int test()
+{
+  int i = square(5);
+  return 0;
+}
+
+}
=======================================
--- /dev/null
+++ /trunk/libs/config/test/boost_no_decltype.ipp       Fri May 28 00:05:44 2010
@@ -0,0 +1,22 @@
+//  (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 {
+
+int test()
+{
+  int i;
+  decltype(i) j;
+  return 0;
+}
+
+}
=======================================
--- /dev/null
+++ /trunk/libs/config/test/boost_no_defaulted_functions.ipp Fri May 28 00:05:44 2010
@@ -0,0 +1,24 @@
+//  (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
+
+namespace boost_no_defaulted_functions {
+
+  struct foo {
+    foo() = default;
+  };
+
+int test()
+{
+  return 0;
+}
+
+}
=======================================
--- /dev/null
+++ /trunk/libs/config/test/boost_no_deleted_functions.ipp Fri May 28 00:05:44 2010
@@ -0,0 +1,24 @@
+//  (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
+
+namespace boost_no_deleted_functions {
+
+  struct foo {
+    foo() = delete;
+  };
+
+int test()
+{
+  return 0;
+}
+
+}
=======================================
***Additional files exist in this changeset.***

Other related posts:

  • » [boost-doc-zh] r398 committed - 升级至1.43.0,第一批,libs/目录a-e子目录 - boost-doc-zh