summaryrefslogtreecommitdiff
path: root/libs/config
diff options
context:
space:
mode:
authorChanho Park <chanho61.park@samsung.com>2014-12-11 18:55:56 +0900
committerChanho Park <chanho61.park@samsung.com>2014-12-11 18:55:56 +0900
commit08c1e93fa36a49f49325a07fe91ff92c964c2b6c (patch)
tree7a7053ceb8874b28ec4b868d4c49b500008a102e /libs/config
parentbb4dd8289b351fae6b55e303f189127a394a1edd (diff)
downloadboost-08c1e93fa36a49f49325a07fe91ff92c964c2b6c.tar.gz
boost-08c1e93fa36a49f49325a07fe91ff92c964c2b6c.tar.bz2
boost-08c1e93fa36a49f49325a07fe91ff92c964c2b6c.zip
Imported Upstream version 1.57.0upstream/1.57.0
Diffstat (limited to 'libs/config')
-rw-r--r--libs/config/checks/Jamfile.v2605
-rw-r--r--libs/config/checks/config.jam17
-rw-r--r--libs/config/checks/test_case.cpp785
-rw-r--r--libs/config/doc/build_time.qbk65
-rw-r--r--libs/config/doc/config.qbk2
-rw-r--r--libs/config/doc/configuring_boost.qbk8
-rw-r--r--libs/config/doc/cstdint.qbk139
-rw-r--r--libs/config/doc/html/boost_config/acknowledgements.html4
-rw-r--r--libs/config/doc/html/boost_config/boost_macro_reference.html1721
-rw-r--r--libs/config/doc/html/boost_config/build_config.html144
-rw-r--r--libs/config/doc/html/boost_config/cstdint.html289
-rw-r--r--libs/config/doc/html/boost_config/guidelines_for_boost_authors.html28
-rw-r--r--libs/config/doc/html/boost_config/rationale.html10
-rw-r--r--libs/config/doc/html/index.html77
-rw-r--r--libs/config/doc/macro_reference.qbk443
-rw-r--r--libs/config/meta/libraries.json13
-rw-r--r--libs/config/test/Jamfile.v253
-rw-r--r--libs/config/test/all/Jamfile.v2140
-rw-r--r--libs/config/test/boost_fallthrough_test.cpp20
-rw-r--r--libs/config/test/boost_has_hash.ipp11
-rw-r--r--libs/config/test/boost_has_int128.ipp36
-rw-r--r--libs/config/test/boost_has_nrvo.ipp8
-rw-r--r--libs/config/test/boost_has_part_alloc.ipp15
-rw-r--r--libs/config/test/boost_has_pthread_yield.ipp1
-rw-r--r--libs/config/test/boost_no_auto_declarations.ipp2
-rw-r--r--libs/config/test/boost_no_auto_multidecl.ipp2
-rw-r--r--libs/config/test/boost_no_char16_t.ipp4
-rw-r--r--libs/config/test/boost_no_char32_t.ipp4
-rw-r--r--libs/config/test/boost_no_constexpr.ipp6
-rw-r--r--libs/config/test/boost_no_cxx11_addressof.ipp28
-rw-r--r--libs/config/test/boost_no_cxx11_alignas.ipp36
-rw-r--r--libs/config/test/boost_no_cxx11_allocator.ipp12
-rw-r--r--libs/config/test/boost_no_cxx11_atomic_sp.ipp1
-rw-r--r--libs/config/test/boost_no_cxx11_final.ipp41
-rw-r--r--libs/config/test/boost_no_cxx11_hdr_array.ipp2
-rw-r--r--libs/config/test/boost_no_cxx11_hdr_atomic.ipp90
-rw-r--r--libs/config/test/boost_no_cxx11_hdr_future.ipp1
-rw-r--r--libs/config/test/boost_no_cxx11_hdr_initializer_list.ipp2
-rw-r--r--libs/config/test/boost_no_cxx11_hdr_regex.ipp9
-rw-r--r--libs/config/test/boost_no_cxx11_hdr_type_traits.ipp34
-rw-r--r--libs/config/test/boost_no_cxx11_hdr_typeindex.ipp8
-rw-r--r--libs/config/test/boost_no_cxx11_inline_namespaces.ipp30
-rw-r--r--libs/config/test/boost_no_cxx11_non_pub_def_fun.ipp38
-rw-r--r--libs/config/test/boost_no_cxx11_ref_qualifiers.ipp33
-rw-r--r--libs/config/test/boost_no_cxx11_smart_ptr.ipp3
-rw-r--r--libs/config/test/boost_no_cxx11_std_align.ipp34
-rw-r--r--libs/config/test/boost_no_cxx11_trailing_result_types.ipp26
-rw-r--r--libs/config/test/boost_no_cxx11_user_lit.ipp67
-rw-r--r--libs/config/test/boost_no_cxx14_binary_literals.ipp23
-rw-r--r--libs/config/test/boost_no_cxx14_constexpr.ipp43
-rw-r--r--libs/config/test/boost_no_cxx14_decltype_auto.ipp33
-rw-r--r--libs/config/test/boost_no_cxx14_digit_separator.ipp23
-rw-r--r--libs/config/test/boost_no_cxx14_generic_lambda.ipp23
-rw-r--r--libs/config/test/boost_no_cxx14_lambda_capture.ipp23
-rw-r--r--libs/config/test/boost_no_cxx14_member_init.ipp30
-rw-r--r--libs/config/test/boost_no_cxx14_return_type_ded.ipp29
-rw-r--r--libs/config/test/boost_no_cxx14_var_templ.ipp26
-rw-r--r--libs/config/test/boost_no_decltype.ipp8
-rw-r--r--libs/config/test/boost_no_fenv_h.ipp4
-rw-r--r--libs/config/test/boost_no_fixed_len_variadic_templates.ipp26
-rw-r--r--libs/config/test/boost_no_inline_memb_init.ipp11
-rw-r--r--libs/config/test/boost_no_is_abstract.ipp8
-rw-r--r--libs/config/test/boost_no_lambdas.ipp9
-rw-r--r--libs/config/test/boost_no_ret_det.ipp7
-rw-r--r--libs/config/test/boost_no_rtti.ipp7
-rw-r--r--libs/config/test/boost_no_std_allocator.ipp14
-rw-r--r--libs/config/test/boost_no_std_unordered.ipp27
-rw-r--r--libs/config/test/boost_no_std_wstreambuf.ipp10
-rw-r--r--libs/config/test/boost_no_stdc_namespace.ipp14
-rw-r--r--libs/config/test/boost_no_tem_local_classes.ipp2
-rw-r--r--libs/config/test/boost_no_template_streams.ipp7
-rw-r--r--libs/config/test/boost_no_typeid.ipp2
-rw-r--r--libs/config/test/boost_no_typename_with_ctor.ipp1
-rw-r--r--libs/config/test/boost_no_unicode_literals.ipp5
-rw-r--r--libs/config/test/boost_no_unified_init.ipp16
-rw-r--r--libs/config/test/boost_no_using_breaks_adl.ipp9
-rw-r--r--libs/config/test/cmd_line_check.cpp9
-rw-r--r--libs/config/test/config_build_check.cpp18
-rw-r--r--libs/config/test/config_info.cpp53
-rw-r--r--libs/config/test/config_test.cpp444
-rw-r--r--libs/config/test/cstdint_include_test.cpp69
-rw-r--r--libs/config/test/cstdint_test.cpp238
-rw-r--r--libs/config/test/cstdint_test2.cpp248
-rw-r--r--libs/config/test/has_int128_fail.cpp (renamed from libs/config/test/no_std_unordered_fail.cpp)16
-rw-r--r--libs/config/test/has_int128_pass.cpp (renamed from libs/config/test/no_std_unordered_pass.cpp)18
-rw-r--r--libs/config/test/has_tr1_array_fail.cpp2
-rw-r--r--libs/config/test/has_tr1_array_pass.cpp2
-rw-r--r--libs/config/test/has_tr1_bind_fail.cpp2
-rw-r--r--libs/config/test/has_tr1_bind_pass.cpp2
-rw-r--r--libs/config/test/has_tr1_complex_over_fail.cpp2
-rw-r--r--libs/config/test/has_tr1_complex_over_pass.cpp2
-rw-r--r--libs/config/test/has_tr1_complex_trig_fail.cpp2
-rw-r--r--libs/config/test/has_tr1_complex_trig_pass.cpp2
-rw-r--r--libs/config/test/has_tr1_function_fail.cpp2
-rw-r--r--libs/config/test/has_tr1_function_pass.cpp2
-rw-r--r--libs/config/test/has_tr1_hash_fail.cpp2
-rw-r--r--libs/config/test/has_tr1_hash_pass.cpp2
-rw-r--r--libs/config/test/has_tr1_mem_fn_fail.cpp2
-rw-r--r--libs/config/test/has_tr1_mem_fn_pass.cpp2
-rw-r--r--libs/config/test/has_tr1_random_fail.cpp2
-rw-r--r--libs/config/test/has_tr1_random_pass.cpp2
-rw-r--r--libs/config/test/has_tr1_ref_wrap_fail.cpp2
-rw-r--r--libs/config/test/has_tr1_ref_wrap_pass.cpp2
-rw-r--r--libs/config/test/has_tr1_regex_fail.cpp2
-rw-r--r--libs/config/test/has_tr1_regex_pass.cpp2
-rw-r--r--libs/config/test/has_tr1_result_of_fail.cpp2
-rw-r--r--libs/config/test/has_tr1_result_of_pass.cpp2
-rw-r--r--libs/config/test/has_tr1_shared_ptr_fail.cpp2
-rw-r--r--libs/config/test/has_tr1_shared_ptr_pass.cpp2
-rw-r--r--libs/config/test/has_tr1_tuple_fail.cpp2
-rw-r--r--libs/config/test/has_tr1_tuple_pass.cpp2
-rw-r--r--libs/config/test/has_tr1_type_traits_fail.cpp2
-rw-r--r--libs/config/test/has_tr1_type_traits_pass.cpp2
-rw-r--r--libs/config/test/has_tr1_unordered_map_fail.cpp2
-rw-r--r--libs/config/test/has_tr1_unordered_map_pass.cpp2
-rw-r--r--libs/config/test/has_tr1_unordered_set_fail.cpp2
-rw-r--r--libs/config/test/has_tr1_unordered_set_pass.cpp2
-rw-r--r--libs/config/test/has_tr1_utility_fail.cpp2
-rw-r--r--libs/config/test/has_tr1_utility_pass.cpp2
-rw-r--r--libs/config/test/helper_macro_test.cpp60
-rw-r--r--libs/config/test/limits_test.cpp2
-rw-r--r--libs/config/test/link/test/Jamfile.v24
-rw-r--r--libs/config/test/no_auto_declarations_fail.cpp4
-rw-r--r--libs/config/test/no_auto_declarations_pass.cpp6
-rw-r--r--libs/config/test/no_auto_multidecl_fail.cpp4
-rw-r--r--libs/config/test/no_auto_multidecl_pass.cpp6
-rw-r--r--libs/config/test/no_char16_t_fail.cpp4
-rw-r--r--libs/config/test/no_char16_t_pass.cpp6
-rw-r--r--libs/config/test/no_char32_t_fail.cpp4
-rw-r--r--libs/config/test/no_char32_t_pass.cpp6
-rw-r--r--libs/config/test/no_constexpr_fail.cpp4
-rw-r--r--libs/config/test/no_constexpr_pass.cpp6
-rw-r--r--libs/config/test/no_cxx11_addressof_fail.cpp37
-rw-r--r--libs/config/test/no_cxx11_addressof_pass.cpp37
-rw-r--r--libs/config/test/no_cxx11_alignas_fail.cpp37
-rw-r--r--libs/config/test/no_cxx11_alignas_pass.cpp37
-rw-r--r--libs/config/test/no_cxx11_final_fail.cpp37
-rw-r--r--libs/config/test/no_cxx11_final_pass.cpp37
-rw-r--r--libs/config/test/no_cxx11_hdr_array_fail.cpp2
-rw-r--r--libs/config/test/no_cxx11_hdr_array_pass.cpp2
-rw-r--r--libs/config/test/no_cxx11_hdr_atomic_fail.cpp37
-rw-r--r--libs/config/test/no_cxx11_hdr_atomic_pass.cpp37
-rw-r--r--libs/config/test/no_cxx11_hdr_chrono_fail.cpp2
-rw-r--r--libs/config/test/no_cxx11_hdr_chrono_pass.cpp2
-rw-r--r--libs/config/test/no_cxx11_hdr_codecvt_fail.cpp2
-rw-r--r--libs/config/test/no_cxx11_hdr_codecvt_pass.cpp2
-rw-r--r--libs/config/test/no_cxx11_hdr_condition_variable_fail.cpp2
-rw-r--r--libs/config/test/no_cxx11_hdr_condition_variable_pass.cpp2
-rw-r--r--libs/config/test/no_cxx11_hdr_forward_list_fail.cpp2
-rw-r--r--libs/config/test/no_cxx11_hdr_forward_list_pass.cpp2
-rw-r--r--libs/config/test/no_cxx11_hdr_future_fail.cpp2
-rw-r--r--libs/config/test/no_cxx11_hdr_future_pass.cpp2
-rw-r--r--libs/config/test/no_cxx11_hdr_initializer_list_fail.cpp2
-rw-r--r--libs/config/test/no_cxx11_hdr_initializer_list_pass.cpp2
-rw-r--r--libs/config/test/no_cxx11_hdr_mutex_fail.cpp2
-rw-r--r--libs/config/test/no_cxx11_hdr_mutex_pass.cpp2
-rw-r--r--libs/config/test/no_cxx11_hdr_random_fail.cpp2
-rw-r--r--libs/config/test/no_cxx11_hdr_random_pass.cpp2
-rw-r--r--libs/config/test/no_cxx11_hdr_ratio_fail.cpp2
-rw-r--r--libs/config/test/no_cxx11_hdr_ratio_pass.cpp2
-rw-r--r--libs/config/test/no_cxx11_hdr_regex_fail.cpp2
-rw-r--r--libs/config/test/no_cxx11_hdr_regex_pass.cpp2
-rw-r--r--libs/config/test/no_cxx11_hdr_system_error_fail.cpp2
-rw-r--r--libs/config/test/no_cxx11_hdr_system_error_pass.cpp2
-rw-r--r--libs/config/test/no_cxx11_hdr_thread_fail.cpp2
-rw-r--r--libs/config/test/no_cxx11_hdr_thread_pass.cpp2
-rw-r--r--libs/config/test/no_cxx11_hdr_tuple_fail.cpp2
-rw-r--r--libs/config/test/no_cxx11_hdr_tuple_pass.cpp2
-rw-r--r--libs/config/test/no_cxx11_hdr_type_traits_fail.cpp2
-rw-r--r--libs/config/test/no_cxx11_hdr_type_traits_pass.cpp2
-rw-r--r--libs/config/test/no_cxx11_hdr_unordered_map_fail.cpp2
-rw-r--r--libs/config/test/no_cxx11_hdr_unordered_map_pass.cpp2
-rw-r--r--libs/config/test/no_cxx11_hdr_unordered_set_fail.cpp2
-rw-r--r--libs/config/test/no_cxx11_hdr_unordered_set_pass.cpp2
-rw-r--r--libs/config/test/no_cxx11_inline_namespaces_fail.cpp37
-rw-r--r--libs/config/test/no_cxx11_inline_namespaces_pass.cpp37
-rw-r--r--libs/config/test/no_cxx11_non_pub_def_fun_fail.cpp37
-rw-r--r--libs/config/test/no_cxx11_non_pub_def_fun_pass.cpp37
-rw-r--r--libs/config/test/no_cxx11_ref_qualifiers_fail.cpp37
-rw-r--r--libs/config/test/no_cxx11_ref_qualifiers_pass.cpp37
-rw-r--r--libs/config/test/no_cxx11_std_align_fail.cpp37
-rw-r--r--libs/config/test/no_cxx11_std_align_pass.cpp37
-rw-r--r--libs/config/test/no_cxx11_trailing_result_types_fail.cpp37
-rw-r--r--libs/config/test/no_cxx11_trailing_result_types_pass.cpp37
-rw-r--r--libs/config/test/no_cxx11_user_lit_fail.cpp37
-rw-r--r--libs/config/test/no_cxx11_user_lit_pass.cpp37
-rw-r--r--libs/config/test/no_cxx14_binary_literals_fail.cpp37
-rw-r--r--libs/config/test/no_cxx14_binary_literals_pass.cpp37
-rw-r--r--libs/config/test/no_cxx14_constexpr_fail.cpp37
-rw-r--r--libs/config/test/no_cxx14_constexpr_pass.cpp37
-rw-r--r--libs/config/test/no_cxx14_decltype_auto_fail.cpp37
-rw-r--r--libs/config/test/no_cxx14_decltype_auto_pass.cpp37
-rw-r--r--libs/config/test/no_cxx14_digit_separator_fail.cpp37
-rw-r--r--libs/config/test/no_cxx14_digit_separator_pass.cpp37
-rw-r--r--libs/config/test/no_cxx14_generic_lambda_fail.cpp37
-rw-r--r--libs/config/test/no_cxx14_generic_lambda_pass.cpp37
-rw-r--r--libs/config/test/no_cxx14_lambda_capture_fail.cpp37
-rw-r--r--libs/config/test/no_cxx14_lambda_capture_pass.cpp37
-rw-r--r--libs/config/test/no_cxx14_member_init_fail.cpp37
-rw-r--r--libs/config/test/no_cxx14_member_init_pass.cpp37
-rw-r--r--libs/config/test/no_cxx14_return_type_ded_fail.cpp37
-rw-r--r--libs/config/test/no_cxx14_return_type_ded_pass.cpp37
-rw-r--r--libs/config/test/no_cxx14_var_templ_fail.cpp37
-rw-r--r--libs/config/test/no_cxx14_var_templ_pass.cpp37
-rw-r--r--libs/config/test/no_decltype_fail.cpp4
-rw-r--r--libs/config/test/no_decltype_n3276_fail.cpp4
-rw-r--r--libs/config/test/no_decltype_n3276_pass.cpp6
-rw-r--r--libs/config/test/no_decltype_pass.cpp6
-rw-r--r--libs/config/test/no_defaulted_functions_fail.cpp4
-rw-r--r--libs/config/test/no_defaulted_functions_pass.cpp6
-rw-r--r--libs/config/test/no_deleted_functions_fail.cpp4
-rw-r--r--libs/config/test/no_deleted_functions_pass.cpp6
-rw-r--r--libs/config/test/no_explicit_cvt_ops_fail.cpp4
-rw-r--r--libs/config/test/no_explicit_cvt_ops_pass.cpp6
-rw-r--r--libs/config/test/no_extern_template_fail.cpp4
-rw-r--r--libs/config/test/no_extern_template_pass.cpp6
-rw-r--r--libs/config/test/no_fixed_len_variadic_templates_fail.cpp37
-rw-r--r--libs/config/test/no_fixed_len_variadic_templates_pass.cpp37
-rw-r--r--libs/config/test/no_function_template_default_args_fail.cpp4
-rw-r--r--libs/config/test/no_function_template_default_args_pass.cpp6
-rw-r--r--libs/config/test/no_lambdas_fail.cpp4
-rw-r--r--libs/config/test/no_lambdas_pass.cpp6
-rw-r--r--libs/config/test/no_long_long_fail.cpp2
-rw-r--r--libs/config/test/no_long_long_pass.cpp2
-rw-r--r--libs/config/test/no_noexcept_fail.cpp2
-rw-r--r--libs/config/test/no_noexcept_pass.cpp4
-rw-r--r--libs/config/test/no_nullptr_fail.cpp4
-rw-r--r--libs/config/test/no_nullptr_pass.cpp6
-rw-r--r--libs/config/test/no_range_based_for_fail.cpp2
-rw-r--r--libs/config/test/no_range_based_for_pass.cpp2
-rw-r--r--libs/config/test/no_raw_literals_fail.cpp4
-rw-r--r--libs/config/test/no_raw_literals_pass.cpp6
-rw-r--r--libs/config/test/no_rvalue_references_fail.cpp4
-rw-r--r--libs/config/test/no_rvalue_references_pass.cpp6
-rw-r--r--libs/config/test/no_scoped_enums_fail.cpp4
-rw-r--r--libs/config/test/no_scoped_enums_pass.cpp6
-rw-r--r--libs/config/test/no_sfinae_expr_fail.cpp2
-rw-r--r--libs/config/test/no_sfinae_expr_pass.cpp2
-rw-r--r--libs/config/test/no_static_assert_fail.cpp4
-rw-r--r--libs/config/test/no_static_assert_pass.cpp6
-rw-r--r--libs/config/test/no_tem_local_classes_fail.cpp4
-rw-r--r--libs/config/test/no_tem_local_classes_pass.cpp6
-rw-r--r--libs/config/test/no_template_aliases_fail.cpp4
-rw-r--r--libs/config/test/no_template_aliases_pass.cpp6
-rw-r--r--libs/config/test/no_unicode_literals_fail.cpp4
-rw-r--r--libs/config/test/no_unicode_literals_pass.cpp6
-rw-r--r--libs/config/test/no_unified_init_fail.cpp2
-rw-r--r--libs/config/test/no_unified_init_pass.cpp4
-rw-r--r--libs/config/test/no_variadic_macros_fail.cpp2
-rw-r--r--libs/config/test/no_variadic_macros_pass.cpp4
-rw-r--r--libs/config/test/no_variadic_templates_fail.cpp4
-rw-r--r--libs/config/test/no_variadic_templates_pass.cpp6
-rw-r--r--libs/config/tools/generate.cpp70
253 files changed, 7891 insertions, 811 deletions
diff --git a/libs/config/checks/Jamfile.v2 b/libs/config/checks/Jamfile.v2
new file mode 100644
index 0000000000..4d2f4373b7
--- /dev/null
+++ b/libs/config/checks/Jamfile.v2
@@ -0,0 +1,605 @@
+#
+# *** DO NOT EDIT THIS FILE BY HAND ***
+# This file was automatically generated on Mon Oct 13 13:09:13 2014
+# 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)
+
+import modules ;
+import path ;
+
+actions simple_run_action
+{
+ $(>) > $(<)
+}
+
+rule run-simple ( sources + : args * : input-files * : requirements * : target-name )
+{
+ obj $(target-name)_obj : $(sources) : $(requirements) ;
+ explicit $(target-name)_obj ;
+ exe $(target-name)_exe : $(target-name)_obj : $(requirements) ;
+ explicit $(target-name)_exe ;
+ #testing.capture-output $(target-name)_output : $(target-name) : $(requirements) <name>$(target-name) ;
+ make $(target-name).output : $(target-name)_exe : @simple_run_action ;
+ explicit $(target-name).output ;
+}
+
+run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_TWO_ARG_USE_FACET : two_arg_use_facet ;
+alias two_arg_use_facet : two_arg_use_facet.output ;
+explicit two_arg_use_facet ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_BETHREADS : bethreads ;
+alias bethreads : bethreads.output ;
+explicit bethreads ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_CLOCK_GETTIME : clock_gettime ;
+alias clock_gettime : clock_gettime.output ;
+explicit clock_gettime ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_DIRENT_H : dirent_h ;
+alias dirent_h : dirent_h.output ;
+explicit dirent_h ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_EXPM1 : expm1 ;
+alias expm1 : expm1.output ;
+explicit expm1 ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_FTIME : ftime ;
+alias ftime : ftime.output ;
+explicit ftime ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_GETSYSTEMTIMEASFILETIME : getsystemtimeasfiletime ;
+alias getsystemtimeasfiletime : getsystemtimeasfiletime.output ;
+explicit getsystemtimeasfiletime ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_GETTIMEOFDAY : gettimeofday ;
+alias gettimeofday : gettimeofday.output ;
+explicit gettimeofday ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_HASH : hash ;
+alias hash : hash.output ;
+explicit hash ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_INT128 : int128 ;
+alias int128 : int128.output ;
+explicit int128 ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_LOG1P : log1p ;
+alias log1p : log1p.output ;
+explicit log1p ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_LONG_LONG : long_long ;
+alias long_long : long_long.output ;
+explicit long_long ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_MACRO_USE_FACET : macro_use_facet ;
+alias macro_use_facet : macro_use_facet.output ;
+explicit macro_use_facet ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_MS_INT64 : ms_int64 ;
+alias ms_int64 : ms_int64.output ;
+explicit ms_int64 ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_NANOSLEEP : nanosleep ;
+alias nanosleep : nanosleep.output ;
+explicit nanosleep ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_NL_TYPES_H : nl_types_h ;
+alias nl_types_h : nl_types_h.output ;
+explicit nl_types_h ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_NRVO : nrvo ;
+alias nrvo : nrvo.output ;
+explicit nrvo ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_PARTIAL_STD_ALLOCATOR : partial_std_allocator ;
+alias partial_std_allocator : partial_std_allocator.output ;
+explicit partial_std_allocator ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_PTHREAD_DELAY_NP : pthread_delay_np ;
+alias pthread_delay_np : pthread_delay_np.output ;
+explicit pthread_delay_np ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE : pthread_mutexattr_settype ;
+alias pthread_mutexattr_settype : pthread_mutexattr_settype.output ;
+explicit pthread_mutexattr_settype ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_PTHREAD_YIELD : pthread_yield ;
+alias pthread_yield : pthread_yield.output ;
+explicit pthread_yield ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_PTHREADS : pthreads ;
+alias pthreads : pthreads.output ;
+explicit pthreads ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_RVALUE_REFS : rvalue_refs ;
+alias rvalue_refs : rvalue_refs.output ;
+explicit rvalue_refs ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_SCHED_YIELD : sched_yield ;
+alias sched_yield : sched_yield.output ;
+explicit sched_yield ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_SGI_TYPE_TRAITS : sgi_type_traits ;
+alias sgi_type_traits : sgi_type_traits.output ;
+explicit sgi_type_traits ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_SIGACTION : sigaction ;
+alias sigaction : sigaction.output ;
+explicit sigaction ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_SLIST : slist ;
+alias slist : slist.output ;
+explicit slist ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_STATIC_ASSERT : static_assert ;
+alias static_assert : static_assert.output ;
+explicit static_assert ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_STDINT_H : stdint_h ;
+alias stdint_h : stdint_h.output ;
+explicit stdint_h ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_STLP_USE_FACET : stlp_use_facet ;
+alias stlp_use_facet : stlp_use_facet.output ;
+explicit stlp_use_facet ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_TR1_ARRAY : tr1_array ;
+alias tr1_array : tr1_array.output ;
+explicit tr1_array ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_TR1_BIND : tr1_bind ;
+alias tr1_bind : tr1_bind.output ;
+explicit tr1_bind ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_TR1_COMPLEX_OVERLOADS : tr1_complex_overloads ;
+alias tr1_complex_overloads : tr1_complex_overloads.output ;
+explicit tr1_complex_overloads ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_TR1_COMPLEX_INVERSE_TRIG : tr1_complex_inverse_trig ;
+alias tr1_complex_inverse_trig : tr1_complex_inverse_trig.output ;
+explicit tr1_complex_inverse_trig ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_TR1_FUNCTION : tr1_function ;
+alias tr1_function : tr1_function.output ;
+explicit tr1_function ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_TR1_HASH : tr1_hash ;
+alias tr1_hash : tr1_hash.output ;
+explicit tr1_hash ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_TR1_MEM_FN : tr1_mem_fn ;
+alias tr1_mem_fn : tr1_mem_fn.output ;
+explicit tr1_mem_fn ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_TR1_RANDOM : tr1_random ;
+alias tr1_random : tr1_random.output ;
+explicit tr1_random ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_TR1_REFERENCE_WRAPPER : tr1_reference_wrapper ;
+alias tr1_reference_wrapper : tr1_reference_wrapper.output ;
+explicit tr1_reference_wrapper ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_TR1_REGEX : tr1_regex ;
+alias tr1_regex : tr1_regex.output ;
+explicit tr1_regex ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_TR1_RESULT_OF : tr1_result_of ;
+alias tr1_result_of : tr1_result_of.output ;
+explicit tr1_result_of ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_TR1_SHARED_PTR : tr1_shared_ptr ;
+alias tr1_shared_ptr : tr1_shared_ptr.output ;
+explicit tr1_shared_ptr ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_TR1_TUPLE : tr1_tuple ;
+alias tr1_tuple : tr1_tuple.output ;
+explicit tr1_tuple ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_TR1_TYPE_TRAITS : tr1_type_traits ;
+alias tr1_type_traits : tr1_type_traits.output ;
+explicit tr1_type_traits ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_TR1_UNORDERED_MAP : tr1_unordered_map ;
+alias tr1_unordered_map : tr1_unordered_map.output ;
+explicit tr1_unordered_map ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_TR1_UNORDERED_SET : tr1_unordered_set ;
+alias tr1_unordered_set : tr1_unordered_set.output ;
+explicit tr1_unordered_set ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_TR1_UTILITY : tr1_utility ;
+alias tr1_utility : tr1_utility.output ;
+explicit tr1_utility ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_UNISTD_H : unistd_h ;
+alias unistd_h : unistd_h.output ;
+explicit unistd_h ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_VARIADIC_TMPL : variadic_tmpl ;
+alias variadic_tmpl : variadic_tmpl.output ;
+explicit variadic_tmpl ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_MSVC6_MEMBER_TEMPLATES : boost_msvc6_member_templates ;
+alias boost_msvc6_member_templates : boost_msvc6_member_templates.output ;
+explicit boost_msvc6_member_templates ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_MSVC_STD_ITERATOR : boost_msvc_std_iterator ;
+alias boost_msvc_std_iterator : boost_msvc_std_iterator.output ;
+explicit boost_msvc_std_iterator ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_WINTHREADS : winthreads ;
+alias winthreads : winthreads.output ;
+explicit winthreads ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_ADL_BARRIER : adl_barrier ;
+alias adl_barrier : adl_barrier.output ;
+explicit adl_barrier ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP : argument_dependent_lookup ;
+alias argument_dependent_lookup : argument_dependent_lookup.output ;
+explicit argument_dependent_lookup ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS : array_type_specializations ;
+alias array_type_specializations : array_type_specializations.output ;
+explicit array_type_specializations ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_AUTO_DECLARATIONS : cxx11_auto_declarations ;
+alias cxx11_auto_declarations : cxx11_auto_declarations.output ;
+explicit cxx11_auto_declarations ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS : cxx11_auto_multideclarations ;
+alias cxx11_auto_multideclarations : cxx11_auto_multideclarations.output ;
+explicit cxx11_auto_multideclarations ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_AUTO_PTR : auto_ptr ;
+alias auto_ptr : auto_ptr.output ;
+explicit auto_ptr ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_BCB_PARTIAL_SPECIALIZATION_BUG : boost_bcb_partial_specialization_bug ;
+alias boost_bcb_partial_specialization_bug : boost_bcb_partial_specialization_bug.output ;
+explicit boost_bcb_partial_specialization_bug ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_CHAR16_T : cxx11_char16_t ;
+alias cxx11_char16_t : cxx11_char16_t.output ;
+explicit cxx11_char16_t ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_CHAR32_T : cxx11_char32_t ;
+alias cxx11_char32_t : cxx11_char32_t.output ;
+explicit cxx11_char32_t ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_COMPLETE_VALUE_INITIALIZATION : complete_value_initialization ;
+alias complete_value_initialization : complete_value_initialization.output ;
+explicit complete_value_initialization ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_CONSTEXPR : cxx11_constexpr ;
+alias cxx11_constexpr : cxx11_constexpr.output ;
+explicit cxx11_constexpr ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CTYPE_FUNCTIONS : ctype_functions ;
+alias ctype_functions : ctype_functions.output ;
+explicit ctype_functions ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CV_SPECIALIZATIONS : cv_specializations ;
+alias cv_specializations : cv_specializations.output ;
+explicit cv_specializations ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CV_VOID_SPECIALIZATIONS : cv_void_specializations ;
+alias cv_void_specializations : cv_void_specializations.output ;
+explicit cv_void_specializations ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CWCHAR : cwchar ;
+alias cwchar : cwchar.output ;
+explicit cwchar ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CWCTYPE : cwctype ;
+alias cwctype : cwctype.output ;
+explicit cwctype ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_ADDRESSOF : cxx11_addressof ;
+alias cxx11_addressof : cxx11_addressof.output ;
+explicit cxx11_addressof ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_ALIGNAS : cxx11_alignas ;
+alias cxx11_alignas : cxx11_alignas.output ;
+explicit cxx11_alignas ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_ALLOCATOR : cxx11_allocator ;
+alias cxx11_allocator : cxx11_allocator.output ;
+explicit cxx11_allocator ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_ATOMIC_SMART_PTR : cxx11_atomic_smart_ptr ;
+alias cxx11_atomic_smart_ptr : cxx11_atomic_smart_ptr.output ;
+explicit cxx11_atomic_smart_ptr ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_FINAL : cxx11_final ;
+alias cxx11_final : cxx11_final.output ;
+explicit cxx11_final ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_HDR_ARRAY : cxx11_hdr_array ;
+alias cxx11_hdr_array : cxx11_hdr_array.output ;
+explicit cxx11_hdr_array ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_HDR_ATOMIC : cxx11_hdr_atomic ;
+alias cxx11_hdr_atomic : cxx11_hdr_atomic.output ;
+explicit cxx11_hdr_atomic ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_HDR_CHRONO : cxx11_hdr_chrono ;
+alias cxx11_hdr_chrono : cxx11_hdr_chrono.output ;
+explicit cxx11_hdr_chrono ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_HDR_CODECVT : cxx11_hdr_codecvt ;
+alias cxx11_hdr_codecvt : cxx11_hdr_codecvt.output ;
+explicit cxx11_hdr_codecvt ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_HDR_CONDITION_VARIABLE : cxx11_hdr_condition_variable ;
+alias cxx11_hdr_condition_variable : cxx11_hdr_condition_variable.output ;
+explicit cxx11_hdr_condition_variable ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_HDR_FORWARD_LIST : cxx11_hdr_forward_list ;
+alias cxx11_hdr_forward_list : cxx11_hdr_forward_list.output ;
+explicit cxx11_hdr_forward_list ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_HDR_FUTURE : cxx11_hdr_future ;
+alias cxx11_hdr_future : cxx11_hdr_future.output ;
+explicit cxx11_hdr_future ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_HDR_INITIALIZER_LIST : cxx11_hdr_initializer_list ;
+alias cxx11_hdr_initializer_list : cxx11_hdr_initializer_list.output ;
+explicit cxx11_hdr_initializer_list ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_HDR_MUTEX : cxx11_hdr_mutex ;
+alias cxx11_hdr_mutex : cxx11_hdr_mutex.output ;
+explicit cxx11_hdr_mutex ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_HDR_RANDOM : cxx11_hdr_random ;
+alias cxx11_hdr_random : cxx11_hdr_random.output ;
+explicit cxx11_hdr_random ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_HDR_RATIO : cxx11_hdr_ratio ;
+alias cxx11_hdr_ratio : cxx11_hdr_ratio.output ;
+explicit cxx11_hdr_ratio ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_HDR_REGEX : cxx11_hdr_regex ;
+alias cxx11_hdr_regex : cxx11_hdr_regex.output ;
+explicit cxx11_hdr_regex ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_HDR_SYSTEM_ERROR : cxx11_hdr_system_error ;
+alias cxx11_hdr_system_error : cxx11_hdr_system_error.output ;
+explicit cxx11_hdr_system_error ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_HDR_THREAD : cxx11_hdr_thread ;
+alias cxx11_hdr_thread : cxx11_hdr_thread.output ;
+explicit cxx11_hdr_thread ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_HDR_TUPLE : cxx11_hdr_tuple ;
+alias cxx11_hdr_tuple : cxx11_hdr_tuple.output ;
+explicit cxx11_hdr_tuple ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_HDR_TYPE_TRAITS : cxx11_hdr_type_traits ;
+alias cxx11_hdr_type_traits : cxx11_hdr_type_traits.output ;
+explicit cxx11_hdr_type_traits ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_HDR_TYPEINDEX : cxx11_hdr_typeindex ;
+alias cxx11_hdr_typeindex : cxx11_hdr_typeindex.output ;
+explicit cxx11_hdr_typeindex ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_HDR_UNORDERED_MAP : cxx11_hdr_unordered_map ;
+alias cxx11_hdr_unordered_map : cxx11_hdr_unordered_map.output ;
+explicit cxx11_hdr_unordered_map ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_HDR_UNORDERED_SET : cxx11_hdr_unordered_set ;
+alias cxx11_hdr_unordered_set : cxx11_hdr_unordered_set.output ;
+explicit cxx11_hdr_unordered_set ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_INLINE_NAMESPACES : cxx11_inline_namespaces ;
+alias cxx11_inline_namespaces : cxx11_inline_namespaces.output ;
+explicit cxx11_inline_namespaces ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS : cxx11_non_public_defaulted_functions ;
+alias cxx11_non_public_defaulted_functions : cxx11_non_public_defaulted_functions.output ;
+explicit cxx11_non_public_defaulted_functions ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_NUMERIC_LIMITS : cxx11_numeric_limits ;
+alias cxx11_numeric_limits : cxx11_numeric_limits.output ;
+explicit cxx11_numeric_limits ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_REF_QUALIFIERS : cxx11_ref_qualifiers ;
+alias cxx11_ref_qualifiers : cxx11_ref_qualifiers.output ;
+explicit cxx11_ref_qualifiers ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_SMART_PTR : cxx11_smart_ptr ;
+alias cxx11_smart_ptr : cxx11_smart_ptr.output ;
+explicit cxx11_smart_ptr ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_STD_ALIGN : cxx11_std_align ;
+alias cxx11_std_align : cxx11_std_align.output ;
+explicit cxx11_std_align ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_TRAILING_RESULT_TYPES : cxx11_trailing_result_types ;
+alias cxx11_trailing_result_types : cxx11_trailing_result_types.output ;
+explicit cxx11_trailing_result_types ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_USER_DEFINED_LITERALS : cxx11_user_defined_literals ;
+alias cxx11_user_defined_literals : cxx11_user_defined_literals.output ;
+explicit cxx11_user_defined_literals ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX14_BINARY_LITERALS : cxx14_binary_literals ;
+alias cxx14_binary_literals : cxx14_binary_literals.output ;
+explicit cxx14_binary_literals ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX14_CONSTEXPR : cxx14_constexpr ;
+alias cxx14_constexpr : cxx14_constexpr.output ;
+explicit cxx14_constexpr ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX14_DECLTYPE_AUTO : cxx14_decltype_auto ;
+alias cxx14_decltype_auto : cxx14_decltype_auto.output ;
+explicit cxx14_decltype_auto ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX14_DIGIT_SEPARATOR : cxx14_digit_separator ;
+alias cxx14_digit_separator : cxx14_digit_separator.output ;
+explicit cxx14_digit_separator ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX14_GENERIC_LAMBDAS : cxx14_generic_lambdas ;
+alias cxx14_generic_lambdas : cxx14_generic_lambdas.output ;
+explicit cxx14_generic_lambdas ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES : cxx14_initialized_lambda_captures ;
+alias cxx14_initialized_lambda_captures : cxx14_initialized_lambda_captures.output ;
+explicit cxx14_initialized_lambda_captures ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX14_AGGREGATE_NSDMI : cxx14_aggregate_nsdmi ;
+alias cxx14_aggregate_nsdmi : cxx14_aggregate_nsdmi.output ;
+explicit cxx14_aggregate_nsdmi ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION : cxx14_return_type_deduction ;
+alias cxx14_return_type_deduction : cxx14_return_type_deduction.output ;
+explicit cxx14_return_type_deduction ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX14_VARIABLE_TEMPLATES : cxx14_variable_templates ;
+alias cxx14_variable_templates : cxx14_variable_templates.output ;
+explicit cxx14_variable_templates ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_HDR_FUNCTIONAL : cxx11_hdr_functional ;
+alias cxx11_hdr_functional : cxx11_hdr_functional.output ;
+explicit cxx11_hdr_functional ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_DECLTYPE : cxx11_decltype ;
+alias cxx11_decltype : cxx11_decltype.output ;
+explicit cxx11_decltype ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_DECLTYPE_N3276 : cxx11_decltype_n3276 ;
+alias cxx11_decltype_n3276 : cxx11_decltype_n3276.output ;
+explicit cxx11_decltype_n3276 ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_DEDUCED_TYPENAME : boost_deduced_typename ;
+alias boost_deduced_typename : boost_deduced_typename.output ;
+explicit boost_deduced_typename ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_DEFAULTED_FUNCTIONS : cxx11_defaulted_functions ;
+alias cxx11_defaulted_functions : cxx11_defaulted_functions.output ;
+explicit cxx11_defaulted_functions ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_DELETED_FUNCTIONS : cxx11_deleted_functions ;
+alias cxx11_deleted_functions : cxx11_deleted_functions.output ;
+explicit cxx11_deleted_functions ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_DEPENDENT_NESTED_DERIVATIONS : dependent_nested_derivations ;
+alias dependent_nested_derivations : dependent_nested_derivations.output ;
+explicit dependent_nested_derivations ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS : dependent_types_in_template_value_parameters ;
+alias dependent_types_in_template_value_parameters : dependent_types_in_template_value_parameters.output ;
+explicit dependent_types_in_template_value_parameters ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_EXCEPTION_STD_NAMESPACE : exception_std_namespace ;
+alias exception_std_namespace : exception_std_namespace.output ;
+explicit exception_std_namespace ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_EXCEPTIONS : exceptions ;
+alias exceptions : exceptions.output ;
+explicit exceptions ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS : explicit_function_template_arguments ;
+alias explicit_function_template_arguments : explicit_function_template_arguments.output ;
+explicit explicit_function_template_arguments ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS : cxx11_explicit_conversion_operators ;
+alias cxx11_explicit_conversion_operators : cxx11_explicit_conversion_operators.output ;
+explicit cxx11_explicit_conversion_operators ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_EXTERN_TEMPLATE : cxx11_extern_template ;
+alias cxx11_extern_template : cxx11_extern_template.output ;
+explicit cxx11_extern_template ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_FENV_H : fenv_h ;
+alias fenv_h : fenv_h.output ;
+explicit fenv_h ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS : cxx11_fixed_length_variadic_template_expansion_packs ;
+alias cxx11_fixed_length_variadic_template_expansion_packs : cxx11_fixed_length_variadic_template_expansion_packs.output ;
+explicit cxx11_fixed_length_variadic_template_expansion_packs ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_FUNCTION_TEMPLATE_ORDERING : function_template_ordering ;
+alias function_template_ordering : function_template_ordering.output ;
+explicit function_template_ordering ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS : cxx11_function_template_default_args ;
+alias cxx11_function_template_default_args : cxx11_function_template_default_args.output ;
+explicit cxx11_function_template_default_args ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS : function_type_specializations ;
+alias function_type_specializations : function_type_specializations.output ;
+explicit function_type_specializations ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_MS_INT64_NUMERIC_LIMITS : ms_int64_numeric_limits ;
+alias ms_int64_numeric_limits : ms_int64_numeric_limits.output ;
+explicit ms_int64_numeric_limits ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_INCLASS_MEMBER_INITIALIZATION : inclass_member_initialization ;
+alias inclass_member_initialization : inclass_member_initialization.output ;
+explicit inclass_member_initialization ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_INTEGRAL_INT64_T : integral_int64_t ;
+alias integral_int64_t : integral_int64_t.output ;
+explicit integral_int64_t ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_IOSFWD : iosfwd ;
+alias iosfwd : iosfwd.output ;
+explicit iosfwd ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_IOSTREAM : iostream ;
+alias iostream : iostream.output ;
+explicit iostream ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_IS_ABSTRACT : is_abstract ;
+alias is_abstract : is_abstract.output ;
+explicit is_abstract ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS : templated_iterator_constructors ;
+alias templated_iterator_constructors : templated_iterator_constructors.output ;
+explicit templated_iterator_constructors ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_LAMBDAS : cxx11_lambdas ;
+alias cxx11_lambdas : cxx11_lambdas.output ;
+explicit cxx11_lambdas ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_LIMITS : limits ;
+alias limits : limits.output ;
+explicit limits ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS : limits_compile_time_constants ;
+alias limits_compile_time_constants : limits_compile_time_constants.output ;
+explicit limits_compile_time_constants ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_LONG_LONG_NUMERIC_LIMITS : long_long_numeric_limits ;
+alias long_long_numeric_limits : long_long_numeric_limits.output ;
+explicit long_long_numeric_limits ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_LONG_LONG : long_long ;
+alias long_long : long_long.output ;
+explicit long_long ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS : member_function_specializations ;
+alias member_function_specializations : member_function_specializations.output ;
+explicit member_function_specializations ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_MEMBER_TEMPLATE_KEYWORD : member_template_keyword ;
+alias member_template_keyword : member_template_keyword.output ;
+explicit member_template_keyword ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS : pointer_to_member_template_parameters ;
+alias pointer_to_member_template_parameters : pointer_to_member_template_parameters.output ;
+explicit pointer_to_member_template_parameters ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_MEMBER_TEMPLATE_FRIENDS : member_template_friends ;
+alias member_template_friends : member_template_friends.output ;
+explicit member_template_friends ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_MEMBER_TEMPLATES : member_templates ;
+alias member_templates : member_templates.output ;
+explicit member_templates ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_NESTED_FRIENDSHIP : nested_friendship ;
+alias nested_friendship : nested_friendship.output ;
+explicit nested_friendship ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_NOEXCEPT : cxx11_noexcept ;
+alias cxx11_noexcept : cxx11_noexcept.output ;
+explicit cxx11_noexcept ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_NULLPTR : cxx11_nullptr ;
+alias cxx11_nullptr : cxx11_nullptr.output ;
+explicit cxx11_nullptr ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_OPERATORS_IN_NAMESPACE : operators_in_namespace ;
+alias operators_in_namespace : operators_in_namespace.output ;
+explicit operators_in_namespace ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS : partial_specialization_implicit_default_args ;
+alias partial_specialization_implicit_default_args : partial_specialization_implicit_default_args.output ;
+explicit partial_specialization_implicit_default_args ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION : template_partial_specialization ;
+alias template_partial_specialization : template_partial_specialization.output ;
+explicit template_partial_specialization ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_PRIVATE_IN_AGGREGATE : private_in_aggregate ;
+alias private_in_aggregate : private_in_aggregate.output ;
+explicit private_in_aggregate ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_POINTER_TO_MEMBER_CONST : pointer_to_member_const ;
+alias pointer_to_member_const : pointer_to_member_const.output ;
+explicit pointer_to_member_const ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_RANGE_BASED_FOR : cxx11_range_based_for ;
+alias cxx11_range_based_for : cxx11_range_based_for.output ;
+explicit cxx11_range_based_for ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_RAW_LITERALS : cxx11_raw_literals ;
+alias cxx11_raw_literals : cxx11_raw_literals.output ;
+explicit cxx11_raw_literals ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_UNREACHABLE_RETURN_DETECTION : unreachable_return_detection ;
+alias unreachable_return_detection : unreachable_return_detection.output ;
+explicit unreachable_return_detection ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_RTTI : rtti ;
+alias rtti : rtti.output ;
+explicit rtti ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_RVALUE_REFERENCES : cxx11_rvalue_references ;
+alias cxx11_rvalue_references : cxx11_rvalue_references.output ;
+explicit cxx11_rvalue_references ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_SCOPED_ENUMS : cxx11_scoped_enums ;
+alias cxx11_scoped_enums : cxx11_scoped_enums.output ;
+explicit cxx11_scoped_enums ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_SFINAE : sfinae ;
+alias sfinae : sfinae.output ;
+explicit sfinae ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_SFINAE_EXPR : sfinae_expr ;
+alias sfinae_expr : sfinae_expr.output ;
+explicit sfinae_expr ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_STRINGSTREAM : stringstream ;
+alias stringstream : stringstream.output ;
+explicit stringstream ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_STATIC_ASSERT : cxx11_static_assert ;
+alias cxx11_static_assert : cxx11_static_assert.output ;
+explicit cxx11_static_assert ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_STD_ALLOCATOR : std_allocator ;
+alias std_allocator : std_allocator.output ;
+explicit std_allocator ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_STD_DISTANCE : std_distance ;
+alias std_distance : std_distance.output ;
+explicit std_distance ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_STD_ITERATOR_TRAITS : std_iterator_traits ;
+alias std_iterator_traits : std_iterator_traits.output ;
+explicit std_iterator_traits ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_STD_ITERATOR : std_iterator ;
+alias std_iterator : std_iterator.output ;
+explicit std_iterator ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_STD_LOCALE : std_locale ;
+alias std_locale : std_locale.output ;
+explicit std_locale ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_STD_MESSAGES : std_messages ;
+alias std_messages : std_messages.output ;
+explicit std_messages ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_STD_MIN_MAX : std_min_max ;
+alias std_min_max : std_min_max.output ;
+explicit std_min_max ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN : std_output_iterator_assign ;
+alias std_output_iterator_assign : std_output_iterator_assign.output ;
+explicit std_output_iterator_assign ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_STD_TYPEINFO : std_typeinfo ;
+alias std_typeinfo : std_typeinfo.output ;
+explicit std_typeinfo ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_STD_USE_FACET : std_use_facet ;
+alias std_use_facet : std_use_facet.output ;
+explicit std_use_facet ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_STD_WSTREAMBUF : std_wstreambuf ;
+alias std_wstreambuf : std_wstreambuf.output ;
+explicit std_wstreambuf ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_STD_WSTRING : std_wstring ;
+alias std_wstring : std_wstring.output ;
+explicit std_wstring ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_STDC_NAMESPACE : stdc_namespace ;
+alias stdc_namespace : stdc_namespace.output ;
+explicit stdc_namespace ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_SWPRINTF : swprintf ;
+alias swprintf : swprintf.output ;
+explicit swprintf ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS : cxx11_local_class_template_parameters ;
+alias cxx11_local_class_template_parameters : cxx11_local_class_template_parameters.output ;
+explicit cxx11_local_class_template_parameters ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_TEMPLATE_ALIASES : cxx11_template_aliases ;
+alias cxx11_template_aliases : cxx11_template_aliases.output ;
+explicit cxx11_template_aliases ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_TEMPLATED_IOSTREAMS : templated_iostreams ;
+alias templated_iostreams : templated_iostreams.output ;
+explicit templated_iostreams ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_TEMPLATE_TEMPLATES : template_templates ;
+alias template_templates : template_templates.output ;
+explicit template_templates ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_TWO_PHASE_NAME_LOOKUP : two_phase_name_lookup ;
+alias two_phase_name_lookup : two_phase_name_lookup.output ;
+explicit two_phase_name_lookup ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_TYPEID : typeid ;
+alias typeid : typeid.output ;
+explicit typeid ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_TYPENAME_WITH_CTOR : typename_with_ctor ;
+alias typename_with_ctor : typename_with_ctor.output ;
+explicit typename_with_ctor ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_UNICODE_LITERALS : cxx11_unicode_literals ;
+alias cxx11_unicode_literals : cxx11_unicode_literals.output ;
+explicit cxx11_unicode_literals ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX : cxx11_unified_initialization_syntax ;
+alias cxx11_unified_initialization_syntax : cxx11_unified_initialization_syntax.output ;
+explicit cxx11_unified_initialization_syntax ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL : boost_function_scope_using_declaration_breaks_adl ;
+alias boost_function_scope_using_declaration_breaks_adl : boost_function_scope_using_declaration_breaks_adl.output ;
+explicit boost_function_scope_using_declaration_breaks_adl ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE : using_declaration_overloads_from_typename_base ;
+alias using_declaration_overloads_from_typename_base : using_declaration_overloads_from_typename_base.output ;
+explicit using_declaration_overloads_from_typename_base ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_USING_TEMPLATE : using_template ;
+alias using_template : using_template.output ;
+explicit using_template ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_VARIADIC_MACROS : cxx11_variadic_macros ;
+alias cxx11_variadic_macros : cxx11_variadic_macros.output ;
+explicit cxx11_variadic_macros ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX11_VARIADIC_TEMPLATES : cxx11_variadic_templates ;
+alias cxx11_variadic_templates : cxx11_variadic_templates.output ;
+explicit cxx11_variadic_templates ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_VOID_RETURNS : void_returns ;
+alias void_returns : void_returns.output ;
+explicit void_returns ;
+run-simple test_case.cpp : : : <define>TEST_BOOST_NO_INTRINSIC_WCHAR_T : intrinsic_wchar_t ;
+alias intrinsic_wchar_t : intrinsic_wchar_t.output ;
+explicit intrinsic_wchar_t ;
+
diff --git a/libs/config/checks/config.jam b/libs/config/checks/config.jam
new file mode 100644
index 0000000000..f8f978a230
--- /dev/null
+++ b/libs/config/checks/config.jam
@@ -0,0 +1,17 @@
+# 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)
+
+rule requires ( names + )
+{
+ local result ;
+ for name in $(names)
+ {
+ local msg = "Boost.Config Feature Check: " ;
+ msg += $(name) ;
+ result += [ check-target-builds $(__name__:D)//$(name) $(msg:J=) : : <build>no ] ;
+ }
+ return $(result) ;
+}
+
diff --git a/libs/config/checks/test_case.cpp b/libs/config/checks/test_case.cpp
new file mode 100644
index 0000000000..7d21a8f33b
--- /dev/null
+++ b/libs/config/checks/test_case.cpp
@@ -0,0 +1,785 @@
+// This file was automatically generated on Mon Oct 13 13:09:13 2014
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id$
+//
+
+#ifdef TEST_BOOST_HAS_TWO_ARG_USE_FACET
+# include "../test/boost_has_2arg_use_facet.ipp"
+namespace test = boost_has_two_arg_use_facet;
+#endif
+#ifdef TEST_BOOST_HAS_BETHREADS
+# include "../test/boost_has_bethreads.ipp"
+namespace test = boost_has_bethreads;
+#endif
+#ifdef TEST_BOOST_HAS_CLOCK_GETTIME
+# include "../test/boost_has_clock_gettime.ipp"
+namespace test = boost_has_clock_gettime;
+#endif
+#ifdef TEST_BOOST_HAS_DIRENT_H
+# include "../test/boost_has_dirent_h.ipp"
+namespace test = boost_has_dirent_h;
+#endif
+#ifdef TEST_BOOST_HAS_EXPM1
+# include "../test/boost_has_expm1.ipp"
+namespace test = boost_has_expm1;
+#endif
+#ifdef TEST_BOOST_HAS_FTIME
+# include "../test/boost_has_ftime.ipp"
+namespace test = boost_has_ftime;
+#endif
+#ifdef TEST_BOOST_HAS_GETSYSTEMTIMEASFILETIME
+# include "../test/boost_has_getsystemtimeasfiletime.ipp"
+namespace test = boost_has_getsystemtimeasfiletime;
+#endif
+#ifdef TEST_BOOST_HAS_GETTIMEOFDAY
+# include "../test/boost_has_gettimeofday.ipp"
+namespace test = boost_has_gettimeofday;
+#endif
+#ifdef TEST_BOOST_HAS_HASH
+# include "../test/boost_has_hash.ipp"
+namespace test = boost_has_hash;
+#endif
+#ifdef TEST_BOOST_HAS_INT128
+# include "../test/boost_has_int128.ipp"
+namespace test = boost_has_int128;
+#endif
+#ifdef TEST_BOOST_HAS_LOG1P
+# include "../test/boost_has_log1p.ipp"
+namespace test = boost_has_log1p;
+#endif
+#ifdef TEST_BOOST_HAS_LONG_LONG
+# include "../test/boost_has_long_long.ipp"
+namespace test = boost_has_long_long;
+#endif
+#ifdef TEST_BOOST_HAS_MACRO_USE_FACET
+# include "../test/boost_has_macro_use_facet.ipp"
+namespace test = boost_has_macro_use_facet;
+#endif
+#ifdef TEST_BOOST_HAS_MS_INT64
+# include "../test/boost_has_ms_int64.ipp"
+namespace test = boost_has_ms_int64;
+#endif
+#ifdef TEST_BOOST_HAS_NANOSLEEP
+# include "../test/boost_has_nanosleep.ipp"
+namespace test = boost_has_nanosleep;
+#endif
+#ifdef TEST_BOOST_HAS_NL_TYPES_H
+# include "../test/boost_has_nl_types_h.ipp"
+namespace test = boost_has_nl_types_h;
+#endif
+#ifdef TEST_BOOST_HAS_NRVO
+# include "../test/boost_has_nrvo.ipp"
+namespace test = boost_has_nrvo;
+#endif
+#ifdef TEST_BOOST_HAS_PARTIAL_STD_ALLOCATOR
+# include "../test/boost_has_part_alloc.ipp"
+namespace test = boost_has_partial_std_allocator;
+#endif
+#ifdef TEST_BOOST_HAS_PTHREAD_DELAY_NP
+# include "../test/boost_has_pthread_delay_np.ipp"
+namespace test = boost_has_pthread_delay_np;
+#endif
+#ifdef TEST_BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
+# include "../test/boost_has_pthread_ma_st.ipp"
+namespace test = boost_has_pthread_mutexattr_settype;
+#endif
+#ifdef TEST_BOOST_HAS_PTHREAD_YIELD
+# include "../test/boost_has_pthread_yield.ipp"
+namespace test = boost_has_pthread_yield;
+#endif
+#ifdef TEST_BOOST_HAS_PTHREADS
+# include "../test/boost_has_pthreads.ipp"
+namespace test = boost_has_pthreads;
+#endif
+#ifdef TEST_BOOST_HAS_RVALUE_REFS
+# include "../test/boost_has_rvalue_refs.ipp"
+namespace test = boost_has_rvalue_refs;
+#endif
+#ifdef TEST_BOOST_HAS_SCHED_YIELD
+# include "../test/boost_has_sched_yield.ipp"
+namespace test = boost_has_sched_yield;
+#endif
+#ifdef TEST_BOOST_HAS_SGI_TYPE_TRAITS
+# include "../test/boost_has_sgi_type_traits.ipp"
+namespace test = boost_has_sgi_type_traits;
+#endif
+#ifdef TEST_BOOST_HAS_SIGACTION
+# include "../test/boost_has_sigaction.ipp"
+namespace test = boost_has_sigaction;
+#endif
+#ifdef TEST_BOOST_HAS_SLIST
+# include "../test/boost_has_slist.ipp"
+namespace test = boost_has_slist;
+#endif
+#ifdef TEST_BOOST_HAS_STATIC_ASSERT
+# include "../test/boost_has_static_assert.ipp"
+namespace test = boost_has_static_assert;
+#endif
+#ifdef TEST_BOOST_HAS_STDINT_H
+# include "../test/boost_has_stdint_h.ipp"
+namespace test = boost_has_stdint_h;
+#endif
+#ifdef TEST_BOOST_HAS_STLP_USE_FACET
+# include "../test/boost_has_stlp_use_facet.ipp"
+namespace test = boost_has_stlp_use_facet;
+#endif
+#ifdef TEST_BOOST_HAS_TR1_ARRAY
+# include "../test/boost_has_tr1_array.ipp"
+namespace test = boost_has_tr1_array;
+#endif
+#ifdef TEST_BOOST_HAS_TR1_BIND
+# include "../test/boost_has_tr1_bind.ipp"
+namespace test = boost_has_tr1_bind;
+#endif
+#ifdef TEST_BOOST_HAS_TR1_COMPLEX_OVERLOADS
+# include "../test/boost_has_tr1_complex_over.ipp"
+namespace test = boost_has_tr1_complex_overloads;
+#endif
+#ifdef TEST_BOOST_HAS_TR1_COMPLEX_INVERSE_TRIG
+# include "../test/boost_has_tr1_complex_trig.ipp"
+namespace test = boost_has_tr1_complex_inverse_trig;
+#endif
+#ifdef TEST_BOOST_HAS_TR1_FUNCTION
+# include "../test/boost_has_tr1_function.ipp"
+namespace test = boost_has_tr1_function;
+#endif
+#ifdef TEST_BOOST_HAS_TR1_HASH
+# include "../test/boost_has_tr1_hash.ipp"
+namespace test = boost_has_tr1_hash;
+#endif
+#ifdef TEST_BOOST_HAS_TR1_MEM_FN
+# include "../test/boost_has_tr1_mem_fn.ipp"
+namespace test = boost_has_tr1_mem_fn;
+#endif
+#ifdef TEST_BOOST_HAS_TR1_RANDOM
+# include "../test/boost_has_tr1_random.ipp"
+namespace test = boost_has_tr1_random;
+#endif
+#ifdef TEST_BOOST_HAS_TR1_REFERENCE_WRAPPER
+# include "../test/boost_has_tr1_ref_wrap.ipp"
+namespace test = boost_has_tr1_reference_wrapper;
+#endif
+#ifdef TEST_BOOST_HAS_TR1_REGEX
+# include "../test/boost_has_tr1_regex.ipp"
+namespace test = boost_has_tr1_regex;
+#endif
+#ifdef TEST_BOOST_HAS_TR1_RESULT_OF
+# include "../test/boost_has_tr1_result_of.ipp"
+namespace test = boost_has_tr1_result_of;
+#endif
+#ifdef TEST_BOOST_HAS_TR1_SHARED_PTR
+# include "../test/boost_has_tr1_shared_ptr.ipp"
+namespace test = boost_has_tr1_shared_ptr;
+#endif
+#ifdef TEST_BOOST_HAS_TR1_TUPLE
+# include "../test/boost_has_tr1_tuple.ipp"
+namespace test = boost_has_tr1_tuple;
+#endif
+#ifdef TEST_BOOST_HAS_TR1_TYPE_TRAITS
+# include "../test/boost_has_tr1_type_traits.ipp"
+namespace test = boost_has_tr1_type_traits;
+#endif
+#ifdef TEST_BOOST_HAS_TR1_UNORDERED_MAP
+# include "../test/boost_has_tr1_unordered_map.ipp"
+namespace test = boost_has_tr1_unordered_map;
+#endif
+#ifdef TEST_BOOST_HAS_TR1_UNORDERED_SET
+# include "../test/boost_has_tr1_unordered_set.ipp"
+namespace test = boost_has_tr1_unordered_set;
+#endif
+#ifdef TEST_BOOST_HAS_TR1_UTILITY
+# include "../test/boost_has_tr1_utility.ipp"
+namespace test = boost_has_tr1_utility;
+#endif
+#ifdef TEST_BOOST_HAS_UNISTD_H
+# include "../test/boost_has_unistd_h.ipp"
+namespace test = boost_has_unistd_h;
+#endif
+#ifdef TEST_BOOST_HAS_VARIADIC_TMPL
+# include "../test/boost_has_variadic_tmpl.ipp"
+namespace test = boost_has_variadic_tmpl;
+#endif
+#ifdef TEST_BOOST_MSVC6_MEMBER_TEMPLATES
+# include "../test/boost_has_vc6_mem_templ.ipp"
+namespace test = boost_msvc6_member_templates;
+#endif
+#ifdef TEST_BOOST_MSVC_STD_ITERATOR
+# include "../test/boost_has_vc_iterator.ipp"
+namespace test = boost_msvc_std_iterator;
+#endif
+#ifdef TEST_BOOST_HAS_WINTHREADS
+# include "../test/boost_has_winthreads.ipp"
+namespace test = boost_has_winthreads;
+#endif
+#ifdef TEST_BOOST_NO_ADL_BARRIER
+# include "../test/boost_no_adl_barrier.ipp"
+namespace test = boost_no_adl_barrier;
+#endif
+#ifdef TEST_BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
+# include "../test/boost_no_arg_dep_lookup.ipp"
+namespace test = boost_no_argument_dependent_lookup;
+#endif
+#ifdef TEST_BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS
+# include "../test/boost_no_array_type_spec.ipp"
+namespace test = boost_no_array_type_specializations;
+#endif
+#ifdef TEST_BOOST_NO_CXX11_AUTO_DECLARATIONS
+# include "../test/boost_no_auto_declarations.ipp"
+namespace test = boost_no_cxx11_auto_declarations;
+#endif
+#ifdef TEST_BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
+# include "../test/boost_no_auto_multidecl.ipp"
+namespace test = boost_no_cxx11_auto_multideclarations;
+#endif
+#ifdef TEST_BOOST_NO_AUTO_PTR
+# include "../test/boost_no_auto_ptr.ipp"
+namespace test = boost_no_auto_ptr;
+#endif
+#ifdef TEST_BOOST_BCB_PARTIAL_SPECIALIZATION_BUG
+# include "../test/boost_no_bcb_partial_spec.ipp"
+namespace test = boost_bcb_partial_specialization_bug;
+#endif
+#ifdef TEST_BOOST_NO_CXX11_CHAR16_T
+# include "../test/boost_no_char16_t.ipp"
+namespace test = boost_no_cxx11_char16_t;
+#endif
+#ifdef TEST_BOOST_NO_CXX11_CHAR32_T
+# include "../test/boost_no_char32_t.ipp"
+namespace test = boost_no_cxx11_char32_t;
+#endif
+#ifdef TEST_BOOST_NO_COMPLETE_VALUE_INITIALIZATION
+# include "../test/boost_no_com_value_init.ipp"
+namespace test = boost_no_complete_value_initialization;
+#endif
+#ifdef TEST_BOOST_NO_CXX11_CONSTEXPR
+# include "../test/boost_no_constexpr.ipp"
+namespace test = boost_no_cxx11_constexpr;
+#endif
+#ifdef TEST_BOOST_NO_CTYPE_FUNCTIONS
+# include "../test/boost_no_ctype_functions.ipp"
+namespace test = boost_no_ctype_functions;
+#endif
+#ifdef TEST_BOOST_NO_CV_SPECIALIZATIONS
+# include "../test/boost_no_cv_spec.ipp"
+namespace test = boost_no_cv_specializations;
+#endif
+#ifdef TEST_BOOST_NO_CV_VOID_SPECIALIZATIONS
+# include "../test/boost_no_cv_void_spec.ipp"
+namespace test = boost_no_cv_void_specializations;
+#endif
+#ifdef TEST_BOOST_NO_CWCHAR
+# include "../test/boost_no_cwchar.ipp"
+namespace test = boost_no_cwchar;
+#endif
+#ifdef TEST_BOOST_NO_CWCTYPE
+# include "../test/boost_no_cwctype.ipp"
+namespace test = boost_no_cwctype;
+#endif
+#ifdef TEST_BOOST_NO_CXX11_ADDRESSOF
+# include "../test/boost_no_cxx11_addressof.ipp"
+namespace test = boost_no_cxx11_addressof;
+#endif
+#ifdef TEST_BOOST_NO_CXX11_ALIGNAS
+# include "../test/boost_no_cxx11_alignas.ipp"
+namespace test = boost_no_cxx11_alignas;
+#endif
+#ifdef TEST_BOOST_NO_CXX11_ALLOCATOR
+# include "../test/boost_no_cxx11_allocator.ipp"
+namespace test = boost_no_cxx11_allocator;
+#endif
+#ifdef TEST_BOOST_NO_CXX11_ATOMIC_SMART_PTR
+# include "../test/boost_no_cxx11_atomic_sp.ipp"
+namespace test = boost_no_cxx11_atomic_smart_ptr;
+#endif
+#ifdef TEST_BOOST_NO_CXX11_FINAL
+# include "../test/boost_no_cxx11_final.ipp"
+namespace test = boost_no_cxx11_final;
+#endif
+#ifdef TEST_BOOST_NO_CXX11_HDR_ARRAY
+# include "../test/boost_no_cxx11_hdr_array.ipp"
+namespace test = boost_no_cxx11_hdr_array;
+#endif
+#ifdef TEST_BOOST_NO_CXX11_HDR_ATOMIC
+# include "../test/boost_no_cxx11_hdr_atomic.ipp"
+namespace test = boost_no_cxx11_hdr_atomic;
+#endif
+#ifdef TEST_BOOST_NO_CXX11_HDR_CHRONO
+# include "../test/boost_no_cxx11_hdr_chrono.ipp"
+namespace test = boost_no_cxx11_hdr_chrono;
+#endif
+#ifdef TEST_BOOST_NO_CXX11_HDR_CODECVT
+# include "../test/boost_no_cxx11_hdr_codecvt.ipp"
+namespace test = boost_no_cxx11_hdr_codecvt;
+#endif
+#ifdef TEST_BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
+# include "../test/boost_no_cxx11_hdr_condition_variable.ipp"
+namespace test = boost_no_cxx11_hdr_condition_variable;
+#endif
+#ifdef TEST_BOOST_NO_CXX11_HDR_FORWARD_LIST
+# include "../test/boost_no_cxx11_hdr_forward_list.ipp"
+namespace test = boost_no_cxx11_hdr_forward_list;
+#endif
+#ifdef TEST_BOOST_NO_CXX11_HDR_FUTURE
+# include "../test/boost_no_cxx11_hdr_future.ipp"
+namespace test = boost_no_cxx11_hdr_future;
+#endif
+#ifdef TEST_BOOST_NO_CXX11_HDR_INITIALIZER_LIST
+# include "../test/boost_no_cxx11_hdr_initializer_list.ipp"
+namespace test = boost_no_cxx11_hdr_initializer_list;
+#endif
+#ifdef TEST_BOOST_NO_CXX11_HDR_MUTEX
+# include "../test/boost_no_cxx11_hdr_mutex.ipp"
+namespace test = boost_no_cxx11_hdr_mutex;
+#endif
+#ifdef TEST_BOOST_NO_CXX11_HDR_RANDOM
+# include "../test/boost_no_cxx11_hdr_random.ipp"
+namespace test = boost_no_cxx11_hdr_random;
+#endif
+#ifdef TEST_BOOST_NO_CXX11_HDR_RATIO
+# include "../test/boost_no_cxx11_hdr_ratio.ipp"
+namespace test = boost_no_cxx11_hdr_ratio;
+#endif
+#ifdef TEST_BOOST_NO_CXX11_HDR_REGEX
+# include "../test/boost_no_cxx11_hdr_regex.ipp"
+namespace test = boost_no_cxx11_hdr_regex;
+#endif
+#ifdef TEST_BOOST_NO_CXX11_HDR_SYSTEM_ERROR
+# include "../test/boost_no_cxx11_hdr_system_error.ipp"
+namespace test = boost_no_cxx11_hdr_system_error;
+#endif
+#ifdef TEST_BOOST_NO_CXX11_HDR_THREAD
+# include "../test/boost_no_cxx11_hdr_thread.ipp"
+namespace test = boost_no_cxx11_hdr_thread;
+#endif
+#ifdef TEST_BOOST_NO_CXX11_HDR_TUPLE
+# include "../test/boost_no_cxx11_hdr_tuple.ipp"
+namespace test = boost_no_cxx11_hdr_tuple;
+#endif
+#ifdef TEST_BOOST_NO_CXX11_HDR_TYPE_TRAITS
+# include "../test/boost_no_cxx11_hdr_type_traits.ipp"
+namespace test = boost_no_cxx11_hdr_type_traits;
+#endif
+#ifdef TEST_BOOST_NO_CXX11_HDR_TYPEINDEX
+# include "../test/boost_no_cxx11_hdr_typeindex.ipp"
+namespace test = boost_no_cxx11_hdr_typeindex;
+#endif
+#ifdef TEST_BOOST_NO_CXX11_HDR_UNORDERED_MAP
+# include "../test/boost_no_cxx11_hdr_unordered_map.ipp"
+namespace test = boost_no_cxx11_hdr_unordered_map;
+#endif
+#ifdef TEST_BOOST_NO_CXX11_HDR_UNORDERED_SET
+# include "../test/boost_no_cxx11_hdr_unordered_set.ipp"
+namespace test = boost_no_cxx11_hdr_unordered_set;
+#endif
+#ifdef TEST_BOOST_NO_CXX11_INLINE_NAMESPACES
+# include "../test/boost_no_cxx11_inline_namespaces.ipp"
+namespace test = boost_no_cxx11_inline_namespaces;
+#endif
+#ifdef TEST_BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS
+# include "../test/boost_no_cxx11_non_pub_def_fun.ipp"
+namespace test = boost_no_cxx11_non_public_defaulted_functions;
+#endif
+#ifdef TEST_BOOST_NO_CXX11_NUMERIC_LIMITS
+# include "../test/boost_no_cxx11_numeric_limits.ipp"
+namespace test = boost_no_cxx11_numeric_limits;
+#endif
+#ifdef TEST_BOOST_NO_CXX11_REF_QUALIFIERS
+# include "../test/boost_no_cxx11_ref_qualifiers.ipp"
+namespace test = boost_no_cxx11_ref_qualifiers;
+#endif
+#ifdef TEST_BOOST_NO_CXX11_SMART_PTR
+# include "../test/boost_no_cxx11_smart_ptr.ipp"
+namespace test = boost_no_cxx11_smart_ptr;
+#endif
+#ifdef TEST_BOOST_NO_CXX11_STD_ALIGN
+# include "../test/boost_no_cxx11_std_align.ipp"
+namespace test = boost_no_cxx11_std_align;
+#endif
+#ifdef TEST_BOOST_NO_CXX11_TRAILING_RESULT_TYPES
+# include "../test/boost_no_cxx11_trailing_result_types.ipp"
+namespace test = boost_no_cxx11_trailing_result_types;
+#endif
+#ifdef TEST_BOOST_NO_CXX11_USER_DEFINED_LITERALS
+# include "../test/boost_no_cxx11_user_lit.ipp"
+namespace test = boost_no_cxx11_user_defined_literals;
+#endif
+#ifdef TEST_BOOST_NO_CXX14_BINARY_LITERALS
+# include "../test/boost_no_cxx14_binary_literals.ipp"
+namespace test = boost_no_cxx14_binary_literals;
+#endif
+#ifdef TEST_BOOST_NO_CXX14_CONSTEXPR
+# include "../test/boost_no_cxx14_constexpr.ipp"
+namespace test = boost_no_cxx14_constexpr;
+#endif
+#ifdef TEST_BOOST_NO_CXX14_DECLTYPE_AUTO
+# include "../test/boost_no_cxx14_decltype_auto.ipp"
+namespace test = boost_no_cxx14_decltype_auto;
+#endif
+#ifdef TEST_BOOST_NO_CXX14_DIGIT_SEPARATORS
+# include "../test/boost_no_cxx14_digit_separator.ipp"
+namespace test = boost_no_cxx14_digit_separator;
+#endif
+#ifdef TEST_BOOST_NO_CXX14_GENERIC_LAMBDAS
+# include "../test/boost_no_cxx14_generic_lambda.ipp"
+namespace test = boost_no_cxx14_generic_lambdas;
+#endif
+#ifdef TEST_BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
+# include "../test/boost_no_cxx14_lambda_capture.ipp"
+namespace test = boost_no_cxx14_initialized_lambda_captures;
+#endif
+#ifdef TEST_BOOST_NO_CXX14_AGGREGATE_NSDMI
+# include "../test/boost_no_cxx14_member_init.ipp"
+namespace test = boost_no_cxx14_aggregate_nsdmi;
+#endif
+#ifdef TEST_BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
+# include "../test/boost_no_cxx14_return_type_ded.ipp"
+namespace test = boost_no_cxx14_return_type_deduction;
+#endif
+#ifdef TEST_BOOST_NO_CXX14_VARIABLE_TEMPLATES
+# include "../test/boost_no_cxx14_var_templ.ipp"
+namespace test = boost_no_cxx14_variable_templates;
+#endif
+#ifdef TEST_BOOST_NO_CXX11_HDR_FUNCTIONAL
+# include "../test/boost_no_cxx_hdr_functional.ipp"
+namespace test = boost_no_cxx11_hdr_functional;
+#endif
+#ifdef TEST_BOOST_NO_CXX11_DECLTYPE
+# include "../test/boost_no_decltype.ipp"
+namespace test = boost_no_cxx11_decltype;
+#endif
+#ifdef TEST_BOOST_NO_CXX11_DECLTYPE_N3276
+# include "../test/boost_no_decltype_n3276.ipp"
+namespace test = boost_no_cxx11_decltype_n3276;
+#endif
+#ifdef TEST_BOOST_DEDUCED_TYPENAME
+# include "../test/boost_no_ded_typename.ipp"
+namespace test = boost_deduced_typename;
+#endif
+#ifdef TEST_BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
+# include "../test/boost_no_defaulted_functions.ipp"
+namespace test = boost_no_cxx11_defaulted_functions;
+#endif
+#ifdef TEST_BOOST_NO_CXX11_DELETED_FUNCTIONS
+# include "../test/boost_no_deleted_functions.ipp"
+namespace test = boost_no_cxx11_deleted_functions;
+#endif
+#ifdef TEST_BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
+# include "../test/boost_no_dep_nested_class.ipp"
+namespace test = boost_no_dependent_nested_derivations;
+#endif
+#ifdef TEST_BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
+# include "../test/boost_no_dep_val_param.ipp"
+namespace test = boost_no_dependent_types_in_template_value_parameters;
+#endif
+#ifdef TEST_BOOST_NO_EXCEPTION_STD_NAMESPACE
+# include "../test/boost_no_excep_std.ipp"
+namespace test = boost_no_exception_std_namespace;
+#endif
+#ifdef TEST_BOOST_NO_EXCEPTIONS
+# include "../test/boost_no_exceptions.ipp"
+namespace test = boost_no_exceptions;
+#endif
+#ifdef TEST_BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
+# include "../test/boost_no_exp_func_tem_arg.ipp"
+namespace test = boost_no_explicit_function_template_arguments;
+#endif
+#ifdef TEST_BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
+# include "../test/boost_no_explicit_cvt_ops.ipp"
+namespace test = boost_no_cxx11_explicit_conversion_operators;
+#endif
+#ifdef TEST_BOOST_NO_CXX11_EXTERN_TEMPLATE
+# include "../test/boost_no_extern_template.ipp"
+namespace test = boost_no_cxx11_extern_template;
+#endif
+#ifdef TEST_BOOST_NO_FENV_H
+# include "../test/boost_no_fenv_h.ipp"
+namespace test = boost_no_fenv_h;
+#endif
+#ifdef TEST_BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS
+# include "../test/boost_no_fixed_len_variadic_templates.ipp"
+namespace test = boost_no_cxx11_fixed_length_variadic_template_expansion_packs;
+#endif
+#ifdef TEST_BOOST_NO_FUNCTION_TEMPLATE_ORDERING
+# include "../test/boost_no_func_tmp_order.ipp"
+namespace test = boost_no_function_template_ordering;
+#endif
+#ifdef TEST_BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
+# include "../test/boost_no_function_template_default_args.ipp"
+namespace test = boost_no_cxx11_function_template_default_args;
+#endif
+#ifdef TEST_BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS
+# include "../test/boost_no_function_type_spec.ipp"
+namespace test = boost_no_function_type_specializations;
+#endif
+#ifdef TEST_BOOST_NO_MS_INT64_NUMERIC_LIMITS
+# include "../test/boost_no_i64_limits.ipp"
+namespace test = boost_no_ms_int64_numeric_limits;
+#endif
+#ifdef TEST_BOOST_NO_INCLASS_MEMBER_INITIALIZATION
+# include "../test/boost_no_inline_memb_init.ipp"
+namespace test = boost_no_inclass_member_initialization;
+#endif
+#ifdef TEST_BOOST_NO_INTEGRAL_INT64_T
+# include "../test/boost_no_integral_int64_t.ipp"
+namespace test = boost_no_integral_int64_t;
+#endif
+#ifdef TEST_BOOST_NO_IOSFWD
+# include "../test/boost_no_iosfwd.ipp"
+namespace test = boost_no_iosfwd;
+#endif
+#ifdef TEST_BOOST_NO_IOSTREAM
+# include "../test/boost_no_iostream.ipp"
+namespace test = boost_no_iostream;
+#endif
+#ifdef TEST_BOOST_NO_IS_ABSTRACT
+# include "../test/boost_no_is_abstract.ipp"
+namespace test = boost_no_is_abstract;
+#endif
+#ifdef TEST_BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
+# include "../test/boost_no_iter_construct.ipp"
+namespace test = boost_no_templated_iterator_constructors;
+#endif
+#ifdef TEST_BOOST_NO_CXX11_LAMBDAS
+# include "../test/boost_no_lambdas.ipp"
+namespace test = boost_no_cxx11_lambdas;
+#endif
+#ifdef TEST_BOOST_NO_LIMITS
+# include "../test/boost_no_limits.ipp"
+namespace test = boost_no_limits;
+#endif
+#ifdef TEST_BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
+# include "../test/boost_no_limits_const_exp.ipp"
+namespace test = boost_no_limits_compile_time_constants;
+#endif
+#ifdef TEST_BOOST_NO_LONG_LONG_NUMERIC_LIMITS
+# include "../test/boost_no_ll_limits.ipp"
+namespace test = boost_no_long_long_numeric_limits;
+#endif
+#ifdef TEST_BOOST_NO_LONG_LONG
+# include "../test/boost_no_long_long.ipp"
+namespace test = boost_no_long_long;
+#endif
+#ifdef TEST_BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
+# include "../test/boost_no_mem_func_spec.ipp"
+namespace test = boost_no_member_function_specializations;
+#endif
+#ifdef TEST_BOOST_NO_MEMBER_TEMPLATE_KEYWORD
+# include "../test/boost_no_mem_tem_keyword.ipp"
+namespace test = boost_no_member_template_keyword;
+#endif
+#ifdef TEST_BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS
+# include "../test/boost_no_mem_tem_pnts.ipp"
+namespace test = boost_no_pointer_to_member_template_parameters;
+#endif
+#ifdef TEST_BOOST_NO_MEMBER_TEMPLATE_FRIENDS
+# include "../test/boost_no_mem_templ_frnds.ipp"
+namespace test = boost_no_member_template_friends;
+#endif
+#ifdef TEST_BOOST_NO_MEMBER_TEMPLATES
+# include "../test/boost_no_mem_templates.ipp"
+namespace test = boost_no_member_templates;
+#endif
+#ifdef TEST_BOOST_NO_NESTED_FRIENDSHIP
+# include "../test/boost_no_nested_friendship.ipp"
+namespace test = boost_no_nested_friendship;
+#endif
+#ifdef TEST_BOOST_NO_CXX11_NOEXCEPT
+# include "../test/boost_no_noexcept.ipp"
+namespace test = boost_no_cxx11_noexcept;
+#endif
+#ifdef TEST_BOOST_NO_CXX11_NULLPTR
+# include "../test/boost_no_nullptr.ipp"
+namespace test = boost_no_cxx11_nullptr;
+#endif
+#ifdef TEST_BOOST_NO_OPERATORS_IN_NAMESPACE
+# include "../test/boost_no_ops_in_namespace.ipp"
+namespace test = boost_no_operators_in_namespace;
+#endif
+#ifdef TEST_BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS
+# include "../test/boost_no_part_spec_def_args.ipp"
+namespace test = boost_no_partial_specialization_implicit_default_args;
+#endif
+#ifdef TEST_BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+# include "../test/boost_no_partial_spec.ipp"
+namespace test = boost_no_template_partial_specialization;
+#endif
+#ifdef TEST_BOOST_NO_PRIVATE_IN_AGGREGATE
+# include "../test/boost_no_priv_aggregate.ipp"
+namespace test = boost_no_private_in_aggregate;
+#endif
+#ifdef TEST_BOOST_NO_POINTER_TO_MEMBER_CONST
+# include "../test/boost_no_ptr_mem_const.ipp"
+namespace test = boost_no_pointer_to_member_const;
+#endif
+#ifdef TEST_BOOST_NO_CXX11_RANGE_BASED_FOR
+# include "../test/boost_no_range_based_for.ipp"
+namespace test = boost_no_cxx11_range_based_for;
+#endif
+#ifdef TEST_BOOST_NO_CXX11_RAW_LITERALS
+# include "../test/boost_no_raw_literals.ipp"
+namespace test = boost_no_cxx11_raw_literals;
+#endif
+#ifdef TEST_BOOST_NO_UNREACHABLE_RETURN_DETECTION
+# include "../test/boost_no_ret_det.ipp"
+namespace test = boost_no_unreachable_return_detection;
+#endif
+#ifdef TEST_BOOST_NO_RTTI
+# include "../test/boost_no_rtti.ipp"
+namespace test = boost_no_rtti;
+#endif
+#ifdef TEST_BOOST_NO_CXX11_RVALUE_REFERENCES
+# include "../test/boost_no_rvalue_references.ipp"
+namespace test = boost_no_cxx11_rvalue_references;
+#endif
+#ifdef TEST_BOOST_NO_CXX11_SCOPED_ENUMS
+# include "../test/boost_no_scoped_enums.ipp"
+namespace test = boost_no_cxx11_scoped_enums;
+#endif
+#ifdef TEST_BOOST_NO_SFINAE
+# include "../test/boost_no_sfinae.ipp"
+namespace test = boost_no_sfinae;
+#endif
+#ifdef TEST_BOOST_NO_SFINAE_EXPR
+# include "../test/boost_no_sfinae_expr.ipp"
+namespace test = boost_no_sfinae_expr;
+#endif
+#ifdef TEST_BOOST_NO_STRINGSTREAM
+# include "../test/boost_no_sstream.ipp"
+namespace test = boost_no_stringstream;
+#endif
+#ifdef TEST_BOOST_NO_CXX11_STATIC_ASSERT
+# include "../test/boost_no_static_assert.ipp"
+namespace test = boost_no_cxx11_static_assert;
+#endif
+#ifdef TEST_BOOST_NO_STD_ALLOCATOR
+# include "../test/boost_no_std_allocator.ipp"
+namespace test = boost_no_std_allocator;
+#endif
+#ifdef TEST_BOOST_NO_STD_DISTANCE
+# include "../test/boost_no_std_distance.ipp"
+namespace test = boost_no_std_distance;
+#endif
+#ifdef TEST_BOOST_NO_STD_ITERATOR_TRAITS
+# include "../test/boost_no_std_iter_traits.ipp"
+namespace test = boost_no_std_iterator_traits;
+#endif
+#ifdef TEST_BOOST_NO_STD_ITERATOR
+# include "../test/boost_no_std_iterator.ipp"
+namespace test = boost_no_std_iterator;
+#endif
+#ifdef TEST_BOOST_NO_STD_LOCALE
+# include "../test/boost_no_std_locale.ipp"
+namespace test = boost_no_std_locale;
+#endif
+#ifdef TEST_BOOST_NO_STD_MESSAGES
+# include "../test/boost_no_std_messages.ipp"
+namespace test = boost_no_std_messages;
+#endif
+#ifdef TEST_BOOST_NO_STD_MIN_MAX
+# include "../test/boost_no_std_min_max.ipp"
+namespace test = boost_no_std_min_max;
+#endif
+#ifdef TEST_BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN
+# include "../test/boost_no_std_oi_assign.ipp"
+namespace test = boost_no_std_output_iterator_assign;
+#endif
+#ifdef TEST_BOOST_NO_STD_TYPEINFO
+# include "../test/boost_no_std_typeinfo.ipp"
+namespace test = boost_no_std_typeinfo;
+#endif
+#ifdef TEST_BOOST_NO_STD_USE_FACET
+# include "../test/boost_no_std_use_facet.ipp"
+namespace test = boost_no_std_use_facet;
+#endif
+#ifdef TEST_BOOST_NO_STD_WSTREAMBUF
+# include "../test/boost_no_std_wstreambuf.ipp"
+namespace test = boost_no_std_wstreambuf;
+#endif
+#ifdef TEST_BOOST_NO_STD_WSTRING
+# include "../test/boost_no_std_wstring.ipp"
+namespace test = boost_no_std_wstring;
+#endif
+#ifdef TEST_BOOST_NO_STDC_NAMESPACE
+# include "../test/boost_no_stdc_namespace.ipp"
+namespace test = boost_no_stdc_namespace;
+#endif
+#ifdef TEST_BOOST_NO_SWPRINTF
+# include "../test/boost_no_swprintf.ipp"
+namespace test = boost_no_swprintf;
+#endif
+#ifdef TEST_BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
+# include "../test/boost_no_tem_local_classes.ipp"
+namespace test = boost_no_cxx11_local_class_template_parameters;
+#endif
+#ifdef TEST_BOOST_NO_CXX11_TEMPLATE_ALIASES
+# include "../test/boost_no_template_aliases.ipp"
+namespace test = boost_no_cxx11_template_aliases;
+#endif
+#ifdef TEST_BOOST_NO_TEMPLATED_IOSTREAMS
+# include "../test/boost_no_template_streams.ipp"
+namespace test = boost_no_templated_iostreams;
+#endif
+#ifdef TEST_BOOST_NO_TEMPLATE_TEMPLATES
+# include "../test/boost_no_template_template.ipp"
+namespace test = boost_no_template_templates;
+#endif
+#ifdef TEST_BOOST_NO_TWO_PHASE_NAME_LOOKUP
+# include "../test/boost_no_two_phase_lookup.ipp"
+namespace test = boost_no_two_phase_name_lookup;
+#endif
+#ifdef TEST_BOOST_NO_TYPEID
+# include "../test/boost_no_typeid.ipp"
+namespace test = boost_no_typeid;
+#endif
+#ifdef TEST_BOOST_NO_TYPENAME_WITH_CTOR
+# include "../test/boost_no_typename_with_ctor.ipp"
+namespace test = boost_no_typename_with_ctor;
+#endif
+#ifdef TEST_BOOST_NO_CXX11_UNICODE_LITERALS
+# include "../test/boost_no_unicode_literals.ipp"
+namespace test = boost_no_cxx11_unicode_literals;
+#endif
+#ifdef TEST_BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
+# include "../test/boost_no_unified_init.ipp"
+namespace test = boost_no_cxx11_unified_initialization_syntax;
+#endif
+#ifdef TEST_BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
+# include "../test/boost_no_using_breaks_adl.ipp"
+namespace test = boost_function_scope_using_declaration_breaks_adl;
+#endif
+#ifdef TEST_BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
+# include "../test/boost_no_using_decl_overld.ipp"
+namespace test = boost_no_using_declaration_overloads_from_typename_base;
+#endif
+#ifdef TEST_BOOST_NO_USING_TEMPLATE
+# include "../test/boost_no_using_template.ipp"
+namespace test = boost_no_using_template;
+#endif
+#ifdef TEST_BOOST_NO_CXX11_VARIADIC_MACROS
+# include "../test/boost_no_variadic_macros.ipp"
+namespace test = boost_no_cxx11_variadic_macros;
+#endif
+#ifdef TEST_BOOST_NO_CXX11_VARIADIC_TEMPLATES
+# include "../test/boost_no_variadic_templates.ipp"
+namespace test = boost_no_cxx11_variadic_templates;
+#endif
+#ifdef TEST_BOOST_NO_VOID_RETURNS
+# include "../test/boost_no_void_returns.ipp"
+namespace test = boost_no_void_returns;
+#endif
+#ifdef TEST_BOOST_NO_INTRINSIC_WCHAR_T
+# include "../test/boost_no_wchar_t.ipp"
+namespace test = boost_no_intrinsic_wchar_t;
+#endif
+
+int main( int, char *[] )
+{
+ return test::test();
+}
+
diff --git a/libs/config/doc/build_time.qbk b/libs/config/doc/build_time.qbk
new file mode 100644
index 0000000000..d0c578a729
--- /dev/null
+++ b/libs/config/doc/build_time.qbk
@@ -0,0 +1,65 @@
+
+[section:build_config Build Time Configuration]
+
+There are times when you want to control whether a build target gets built or not, based
+on what features the compiler supports. For example, suppose you have a test file
+"test_constexpr_128.cpp" which requires three key features in order to build:
+
+* The `constexpr` keyword as detected by BOOST_NO_CXX11_CONSTEXPR.
+* User defined literals, as detected by BOOST_NO_CXX11_USER_DEFINED_LITERALS.
+* The `__int128` data type, as detected by BOOST_HAS_INT128.
+
+Clearly we know that if these features are not supported by the compiler, then
+there's simply no point in even trying to build the test program. The main advantages being:
+
+* Faster compile times - build configuration uses lightweight tests the results of which are also cached.
+* Less noise in build output - there's no reason to be faced with pages of template
+instantiation backtrace if we know the file can never compile anyway.
+* Less noise in the online test results - the test will show up as blank, rather than as a fail
+in the online test matrix.
+* A better experience for end users building all of Boost, if those libraries which can not be built
+for the current target compiler are simply skipped, rather than generating pages of error output.
+
+Returning to our example, the test case is probably executed in it's Jamfile via the "run" rule:
+
+ run test_constexpr_128.cpp ;
+
+We now need to make this target conditional on the necessary features.
+We can do that by first importing the necessary rule at the start of the Jamfile:
+
+ import path-to-config-lib/checks/config : requires ;
+
+Assuming that the test case is in the usual directory:
+
+ libs/yourlib/test
+
+then the import rule will actually be:
+
+ import ../../config/checks/config : requires ;
+
+Then add a "requires" rule invocation to the requirements section of the target:
+
+ run test_constexpr_128.cpp
+ : : : #requirements:
+ [ requires cxx11_constexpr cxx11_user_defined_literals int128 ] ;
+
+Notice that multiple arguments can be added to the requires rule, and that these are
+always the same as the Boost.Config macro name, but in lower case and with the ['boost_no_]
+or ['boost_has_] prefix removed.
+
+When building the above example, you will see at the start of the build process the results
+of the configuration, for example GCC in C++11 mode gives:
+
+ - Boost.Config Feature Check: int128 : yes
+ - Boost.Config Feature Check: cxx11_constexpr : yes
+ - Boost.Config Feature Check: cxx11_user_defined_literals : yes
+
+That's all there is to this handy feature, should at any time you be unsure of the feature-test
+names you can pass to the "requires" rule, then search for the Boost.Config macro of interest in
+libs/config/checks/Jamfiles.v2, and the name of the feature check will follow it.
+
+And finally, this feature is built around the Boost.Build built in rule ['check-target-builds]
+which can be used to perform more generalized build-time feature testing. The checks in this
+library are provided as a convenient shorthand without the need for you to write the test cases yourself.
+
+[endsect] \ No newline at end of file
diff --git a/libs/config/doc/config.qbk b/libs/config/doc/config.qbk
index 0b02ee80a9..fd10efc993 100644
--- a/libs/config/doc/config.qbk
+++ b/libs/config/doc/config.qbk
@@ -50,6 +50,8 @@ Distributed under the Boost Software License, Version 1.0.
[include configuring_boost.qbk]
[include macro_reference.qbk]
+[include build_time.qbk]
+[include cstdint.qbk]
[include guidelines.qbk]
[include rationale.qbk]
[include acknowledgements.qbk]
diff --git a/libs/config/doc/configuring_boost.qbk b/libs/config/doc/configuring_boost.qbk
index 2e444bab9c..ee86a9a3ff 100644
--- a/libs/config/doc/configuring_boost.qbk
+++ b/libs/config/doc/configuring_boost.qbk
@@ -271,6 +271,12 @@ feature off.
Causes the auto-linking code to output diagnostic messages indicating the
name of the library that is selected for linking.
]]
+[[`BOOST_LIB_BUILDID`][
+If you built Boost using the `--buildid` option then set this macro to the same value
+as you passed to bjam. For example if you built using `bjam address-model=64 --buildid=amd64`
+then compile your code with `-DBOOST_LIB_BUILDID=amd64` to ensure the correct libraries
+are selected at link time.
+]]
[[`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
@@ -372,7 +378,7 @@ under the __BOOST_CONFIG_DIR__ `test/` sub-directory:
[[`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
+program is 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.
]]
diff --git a/libs/config/doc/cstdint.qbk b/libs/config/doc/cstdint.qbk
new file mode 100644
index 0000000000..3f352075da
--- /dev/null
+++ b/libs/config/doc/cstdint.qbk
@@ -0,0 +1,139 @@
+[section:cstdint Standard Integer Types]
+
+[section Overview]
+
+The header [^[@../../../../boost/cstdint.hpp <boost/cstdint.hpp>]] provides the typedef's useful
+for writing portable code that requires certain integer widths. All typedef's are in namespace boost.
+
+The specifications for these types are based on the ISO/IEC 9899:1999 C Language standard header <stdint.h>.
+The 64-bit types required by the C standard are ['not required] in the boost header,
+and may not be supplied for all platforms/compilers, because [^long long] is not [yet] included in the C++ standard.
+
+See [@../../test/cstdint_test.cpp cstdint_test.cpp] for a test program.
+
+[endsect]
+
+[section:rationale Rationale]
+
+The organization of the Boost.Integer headers and classes is designed to take advantage of <stdint.h> types from the
+1999 C standard without causing undefined behavior in terms of the 1998 C++ standard.
+The header <boost/cstdint.hpp> makes the standard integer types safely available in namespace [^boost]
+without placing any names in namespace [^std]. The intension is to complement rather than compete
+with the C++ Standard Library. Should some future C++ standard include <stdint.h> and <cstdint>,
+then <boost/cstdint.hpp> will continue to function, but will become redundant and may be safely deprecated.
+
+Because these are boost headers, their names conform to boost header naming conventions rather than
+C++ Standard Library header naming conventions.
+
+[endsect]
+
+[section:ce ['Caveat emptor]]
+
+As an implementation artifact, certain C <limits.h> macro names may possibly be
+visible to users of <boost/cstdint.hpp>. Don't use these macros; they are not part of
+any Boost-specified interface. Use [^boost::integer_traits<>] or [^std::numeric_limits<>] instead.
+
+As another implementation artifact, certain C <stdint.h> typedef names may possibly be visible
+in the global namespace to users of <boost/cstdint.hpp>. Don't use these names, they are not part of
+any Boost-specified interface. Use the respective names in namespace [^boost] instead.
+
+[endsect]
+
+[section Exact-width integer types]
+
+The typedef [^int#_t], with # replaced by the width, designates a signed integer type of exactly # bits;
+for example [^int8_t] denotes an 8-bit signed integer type. Similarly, the typedef [^uint#_t] designates an unsigned
+integer type of exactly # bits.
+
+These types are optional. However, if a platform supports integer types with widths of
+8, 16, 32, 64, or any combination thereof, then <boost/cstdint.hpp> does provide the
+corresponding typedefs.
+
+The absence of int64_t and uint64_t is indicated by the macro `BOOST_NO_INT64_T`.
+
+[endsect]
+
+[section Minimum-width integer types]
+
+The typedef [^int_least#_t], with # replaced by the width, designates a signed integer type with a width
+of at least # bits, such that no signed integer type with lesser size has at least the specified width.
+Thus, [^int_least32_t] denotes the smallest signed integer type with a width of at least 32 bits.
+Similarly, the typedef name [^uint_least#_t] designates an unsigned integer type with a width of at least # bits,
+such that no unsigned integer type with lesser size has at least the specified width.
+
+The following minimum-width integer types are provided for all platforms:
+
+* [^int_least8_t]
+* [^int_least16_t]
+* [^int_least32_t]
+* [^uint_least8_t]
+* [^uint_least16_t]
+* [^uint_least32_t]
+
+The following types are available only if, after including <boost/cstdint.hpp>, the macro BOOST_NO_INT64_T is not defined:
+
+* [^int_least64_t]
+* [^uint_least64_t]
+
+
+All other minimum-width integer types are optional.
+
+[endsect]
+
+[section Fastest minimum-width integer types]
+
+The typedef [^int_fast#_t], with # replaced by the width, designates the fastest signed integer type
+with a width of at least # bits. Similarly, the typedef name [^uint_fast#_t] designates the fastest
+unsigned integer type with a width of at least # bits.
+
+There is no guarantee that these types are fastest for all purposes. In any case, however, they satisfy
+the signedness and width requirements.
+
+The following fastest minimum-width integer types are provided for all platforms:
+
+* [^int_fast8_t]
+* [^int_fast16_t]
+* [^int_fast32_t]
+* [^uint_fast8_t]
+* [^uint_fast16_t]
+* [^uint_fast32_t]
+
+The following types are available only if, after including <boost/cstdint.hpp>, the macro BOOST_NO_INT64_T is not defined:
+
+* [^int_fast64_t]
+* [^uint_fast64_t]
+
+All other fastest minimum-width integer types are optional.
+
+[endsect]
+
+[section Greatest-width integer types]
+
+The typedef [^intmax_t ]designates a signed integer type capable of representing any value of any signed integer type.
+
+The typedef [^uintmax_t] designates an unsigned integer type capable of representing any value of any unsigned integer type.
+
+These types are provided for all platforms.
+
+[endsect]
+
+[section Integer Constant Macros]
+
+The following macros are always defined after inclusion of this header, these allow
+integer constants of at least the specified width to be declared:
+INT8_C, UINT8_C, INT16_C, UINT16_C, INT32_C, UINT32_C, INTMAX_C, UINTMAX_C.
+
+The macros INT64_C and UINT64_C are also defined if the the macro BOOST_NO_INT64_T is not defined.
+
+The C99 macro __STDC_CONSTANT_MACROS is also defined as an artifact of the implementation.
+
+For example:
+
+ #include <boost/cstdint.hpp>
+
+ // Here the constant 0x1FFFFFFFF has the correct suffix applied:
+ static const boost::uint64_t c = INT64_C(0x1FFFFFFFF);
+
+[endsect]
+
+[endsect]
diff --git a/libs/config/doc/html/boost_config/acknowledgements.html b/libs/config/doc/html/boost_config/acknowledgements.html
index 2e961d14c4..e3cd5555c9 100644
--- a/libs/config/doc/html/boost_config/acknowledgements.html
+++ b/libs/config/doc/html/boost_config/acknowledgements.html
@@ -3,7 +3,7 @@
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Acknowledgements</title>
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="../index.html" title="Boost.Config">
<link rel="up" href="../index.html" title="Boost.Config">
<link rel="prev" href="rationale.html" title="Rationale">
@@ -21,7 +21,7 @@
<div class="spirit-nav">
<a accesskey="p" href="rationale.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a>
</div>
-<div class="section boost_config_acknowledgements">
+<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="boost_config.acknowledgements"></a><a class="link" href="acknowledgements.html" title="Acknowledgements">Acknowledgements</a>
</h2></div></div></div>
diff --git a/libs/config/doc/html/boost_config/boost_macro_reference.html b/libs/config/doc/html/boost_config/boost_macro_reference.html
index 25ec1a13de..69a1606699 100644
--- a/libs/config/doc/html/boost_config/boost_macro_reference.html
+++ b/libs/config/doc/html/boost_config/boost_macro_reference.html
@@ -3,11 +3,11 @@
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Boost Macro Reference</title>
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="../index.html" title="Boost.Config">
<link rel="up" href="../index.html" title="Boost.Config">
<link rel="prev" href="../index.html" title="Boost.Config">
-<link rel="next" href="guidelines_for_boost_authors.html" title="Guidelines for Boost Authors">
+<link rel="next" href="build_config.html" title="Build Time Configuration">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -20,13 +20,13 @@
</tr></table>
<hr>
<div class="spirit-nav">
-<a accesskey="p" href="../index.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="guidelines_for_boost_authors.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
+<a accesskey="p" href="../index.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="build_config.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
-<div class="section boost_config_boost_macro_reference">
+<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="boost_config.boost_macro_reference"></a><a class="link" href="boost_macro_reference.html" title="Boost Macro Reference">Boost Macro Reference</a>
</h2></div></div></div>
-<div class="toc"><dl>
+<div class="toc"><dl class="toc">
<dt><span class="section"><a href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_c__03_defects">Macros
that describe C++03 defects</a></span></dt>
<dt><span class="section"><a href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_optional_features">Macros
@@ -37,6 +37,10 @@
that describe C++11 features not supported</a></span></dt>
<dt><span class="section"><a href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_allow_use_of_c__11_features_with_c__03_compilers">Macros
that allow use of C++11 features with C++03 compilers</a></span></dt>
+<dt><span class="section"><a href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_c__14_features_not_supported">Macros
+ that describe C++14 features not supported</a></span></dt>
+<dt><span class="section"><a href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_allow_use_of_c__14_features_with_c__11_or_earlier_compilers">Macros
+ that allow use of C++14 features with C++11 or earlier compilers</a></span></dt>
<dt><span class="section"><a href="boost_macro_reference.html#boost_config.boost_macro_reference.boost_helper_macros">Boost
Helper Macros</a></span></dt>
<dt><span class="section"><a href="boost_macro_reference.html#boost_config.boost_macro_reference.boost_informational_macros">Boost
@@ -46,7 +50,7 @@
<dt><span class="section"><a href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_for_libraries_with_separate_source_code">Macros
for libraries with separate source code</a></span></dt>
</dl></div>
-<div class="section boost_config_boost_macro_reference_macros_that_describe_c__03_defects">
+<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.boost_macro_reference.macros_that_describe_c__03_defects"></a><a name="config_defects"></a><a class="link" href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_c__03_defects" title="Macros that describe C++03 defects">Macros
that describe C++03 defects</a>
@@ -93,7 +97,7 @@
</td>
<td>
<p>
- The compiler exibits certain partial specialisation bug - probably
+ The compiler exhibits certain partial specialisation bug - probably
Borland C++ Builder specific.
</p>
</td>
@@ -394,24 +398,6 @@
<tr>
<td>
<p>
- <code class="computeroutput"><span class="identifier">BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS</span></code>
- </p>
- </td>
-<td>
- <p>
- Compiler
- </p>
- </td>
-<td>
- <p>
- Can only use deduced template arguments when calling function template
- instantiations.
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
<code class="computeroutput"><span class="identifier">BOOST_NO_FUNCTION_TEMPLATE_ORDERING</span></code>
</p>
</td>
@@ -556,7 +542,7 @@
<tr>
<td>
<p>
- <code class="computeroutput"><span class="identifier">BOOST_NO_NUMERIC_LIMITS_LOWEST</span></code>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_NUMERIC_LIMITS</span></code>
</p>
</td>
<td>
@@ -566,7 +552,18 @@
</td>
<td>
<p>
- Static function <code class="computeroutput"><span class="identifier">numeric_limits</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">lowest</span><span class="special">()</span></code> is not available for use.
+ C++11 additions to <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span></code>
+ are not available for use. <code class="computeroutput"><span class="keyword">static</span>
+ <span class="identifier">function</span> <span class="identifier">numeric_limits</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">lowest</span><span class="special">()</span></code> the lowest finite value representable
+ by the numeric type. <code class="computeroutput"><span class="keyword">static</span>
+ <span class="keyword">int</span> <span class="keyword">const</span>
+ <span class="identifier">max_digits10</span></code> the number
+ of decimal digits that are required to make sure that two distinct
+ values of the type have distinct decimal representations. <code class="computeroutput"><span class="keyword">template</span><span class="special">&lt;&gt;</span>
+ <span class="keyword">class</span> <span class="identifier">numeric_limits</span><span class="special">&lt;</span><span class="keyword">char16_t</span><span class="special">&gt;;</span></code>, see also <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_CHAR16_T</span></code>,
+ <code class="computeroutput"><span class="keyword">template</span><span class="special">&lt;&gt;</span>
+ <span class="keyword">class</span> <span class="identifier">numeric_limits</span><span class="special">&lt;</span><span class="keyword">char32_t</span><span class="special">&gt;;</span></code> see also <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_CHAR32_T</span></code>.
+ Replaces BOOST_NO_NUMERIC_LIMITS_LOWEST.
</p>
</td>
</tr>
@@ -1327,7 +1324,7 @@
</tbody>
</table></div>
</div>
-<div class="section boost_config_boost_macro_reference_macros_that_describe_optional_features">
+<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.boost_macro_reference.macros_that_describe_optional_features"></a><a name="config_features"></a><a class="link" href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_optional_features" title="Macros that describe optional features">Macros
that describe optional features</a>
@@ -1505,6 +1502,26 @@
<tr>
<td>
<p>
+ <code class="computeroutput"><span class="identifier">BOOST_HAS_INT128</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Compiler
+ </p>
+ </td>
+<td>
+ <p>
+ The compiler has <code class="computeroutput"><span class="identifier">__int128</span></code>
+ and <code class="computeroutput"><span class="keyword">unsigned</span> <span class="identifier">__int128</span></code>
+ as native types which are distinct from all the regular C++ integer
+ types.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
<code class="computeroutput"><span class="identifier">BOOST_HAS_LOG1P</span></code>
</p>
</td>
@@ -1631,6 +1648,50 @@
<tr>
<td>
<p>
+ <code class="computeroutput"><span class="identifier">BOOST_HAS_PRAGMA_ONCE</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Compiler
+ </p>
+ </td>
+<td>
+ <p>
+ The compiler recognizes the <code class="computeroutput"><span class="preprocessor">#pragma</span>
+ <span class="identifier">once</span></code> directive which
+ tells that the containing header should be included only once while
+ preprocessing the current translation unit. The pragma may improve
+ compile times of large projects with some compilers.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_HAS_PRAGMA_DETECT_MISMATCH</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Compiler
+ </p>
+ </td>
+<td>
+ <p>
+ The compiler recognizes the <code class="computeroutput"><span class="preprocessor">#pragma</span>
+ <span class="identifier">detect_mismatch</span><span class="special">(</span><span class="string">"name"</span><span class="special">,</span>
+ <span class="string">"value"</span><span class="special">)</span></code>
+ directive which tells that the link stage should be terminated
+ with error if values for provided <code class="computeroutput"><span class="string">"name"</span></code>
+ missmatch. This pragma may be a help in preventing ODR violations
+ and ensuring that different modules are compiled with same flags.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
<code class="computeroutput"><span class="identifier">BOOST_HAS_PTHREAD_DELAY_NP</span></code>
</p>
</td>
@@ -1801,6 +1862,9 @@
<td>
<p>
The library has a TR1 conforming version of <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">array</span><span class="special">&gt;</span></code>.
+ This macro is only guaranteed to be defined after including one
+ of the headers from Boost.TR1. Further this macro is now deprecated
+ in favour of BOOST_NO_CXX11_HDR_ARRAY.
</p>
</td>
</tr>
@@ -1853,7 +1917,9 @@
</td>
<td>
<p>
- The library has TR1 conforming reference wrappers in <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">functional</span><span class="special">&gt;</span></code>.
+ The library has TR1 conforming reference wrappers in <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">functional</span><span class="special">&gt;</span></code>. This macro is only guaranteed
+ to be defined after including one of the headers from Boost.TR1.
+ Further this macro is now deprecated in favour of BOOST_NO_CXX11_HDR_FUNCTIONAL.
</p>
</td>
</tr>
@@ -1870,7 +1936,9 @@
</td>
<td>
<p>
- The library has a TR1 conforming result_of template in <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">functional</span><span class="special">&gt;</span></code>.
+ The library has a TR1 conforming result_of template in <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">functional</span><span class="special">&gt;</span></code>. This macro is only guaranteed
+ to be defined after including one of the headers from Boost.TR1.
+ Further this macro is now deprecated in favour of BOOST_NO_CXX11_HDR_FUNCTIONAL.
</p>
</td>
</tr>
@@ -1887,7 +1955,9 @@
</td>
<td>
<p>
- The library has a TR1 conforming mem_fn function template in <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">functional</span><span class="special">&gt;</span></code>.
+ The library has a TR1 conforming mem_fn function template in <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">functional</span><span class="special">&gt;</span></code>. This macro is only guaranteed
+ to be defined after including one of the headers from Boost.TR1.
+ Further this macro is now deprecated in favour of BOOST_NO_CXX11_HDR_FUNCTIONAL.
</p>
</td>
</tr>
@@ -1904,7 +1974,9 @@
</td>
<td>
<p>
- The library has a TR1 conforming bind function template in <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">functional</span><span class="special">&gt;</span></code>.
+ The library has a TR1 conforming bind function template in <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">functional</span><span class="special">&gt;</span></code>. This macro is only guaranteed
+ to be defined after including one of the headers from Boost.TR1.
+ Further this macro is now deprecated in favour of BOOST_NO_CXX11_HDR_FUNCTIONAL.
</p>
</td>
</tr>
@@ -1921,7 +1993,9 @@
</td>
<td>
<p>
- The library has a TR1 conforming function class template in <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">functional</span><span class="special">&gt;</span></code>.
+ The library has a TR1 conforming function class template in <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">functional</span><span class="special">&gt;</span></code>. This macro is only guaranteed
+ to be defined after including one of the headers from Boost.TR1.
+ Further this macro is now deprecated in favour of BOOST_NO_CXX11_HDR_FUNCTIONAL.
</p>
</td>
</tr>
@@ -1938,7 +2012,9 @@
</td>
<td>
<p>
- The library has a TR1 conforming hash function template in <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">functional</span><span class="special">&gt;</span></code>.
+ The library has a TR1 conforming hash function template in <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">functional</span><span class="special">&gt;</span></code>. This macro is only guaranteed
+ to be defined after including one of the headers from Boost.TR1.
+ Further this macro is now deprecated in favour of BOOST_NO_CXX11_HDR_FUNCTIONAL.
</p>
</td>
</tr>
@@ -1957,6 +2033,9 @@
<p>
The library has a TR1 conforming <code class="computeroutput"><span class="identifier">shared_ptr</span></code>
class template in <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">memory</span><span class="special">&gt;</span></code>.
+ This macro is only guaranteed to be defined after including one
+ of the headers from Boost.TR1. Further this macro is now deprecated
+ in favour of BOOST_NO_CXX11_SMART_PTR.
</p>
</td>
</tr>
@@ -1974,6 +2053,9 @@
<td>
<p>
The library has a TR1 conforming version of <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">random</span><span class="special">&gt;</span></code>.
+ This macro is only guaranteed to be defined after including one
+ of the headers from Boost.TR1. Further this macro is now deprecated
+ in favour of BOOST_NO_CXX11_HDR_RANDOM.
</p>
</td>
</tr>
@@ -1991,6 +2073,9 @@
<td>
<p>
The library has a TR1 conforming version of <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">regex</span><span class="special">&gt;</span></code>.
+ This macro is only guaranteed to be defined after including one
+ of the headers from Boost.TR1. Further this macro is now deprecated
+ in favour of BOOST_NO_CXX11_HDR_REGEX.
</p>
</td>
</tr>
@@ -2008,6 +2093,9 @@
<td>
<p>
The library has a TR1 conforming version of <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">tuple</span><span class="special">&gt;</span></code>.
+ This macro is only guaranteed to be defined after including one
+ of the headers from Boost.TR1. Further this macro is now deprecated
+ in favour of BOOST_NO_CXX11_HDR_TUPLE.
</p>
</td>
</tr>
@@ -2025,6 +2113,9 @@
<td>
<p>
The library has a TR1 conforming version of <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">type_traits</span><span class="special">&gt;</span></code>.
+ This macro is only guaranteed to be defined after including one
+ of the headers from Boost.TR1. Further this macro is now deprecated
+ in favour of BOOST_NO_CXX11_HDR_TYPE_TRAITS.
</p>
</td>
</tr>
@@ -2043,6 +2134,9 @@
<p>
The library has the TR1 additions to <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">utility</span><span class="special">&gt;</span></code>
(tuple interface to <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span></code>).
+ This macro is only guaranteed to be defined after including one
+ of the headers from Boost.TR1. Further this macro is now deprecated
+ in favour of BOOST_NO_CXX11_HDR_TUPLE.
</p>
</td>
</tr>
@@ -2060,6 +2154,9 @@
<td>
<p>
The library has a TR1 conforming version of <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">unordered_map</span><span class="special">&gt;</span></code>.
+ This macro is only guaranteed to be defined after including one
+ of the headers from Boost.TR1. Further this macro is now deprecated
+ in favour of BOOST_NO_CXX11_HDR_UNORDERED_MAP.
</p>
</td>
</tr>
@@ -2077,6 +2174,9 @@
<td>
<p>
The library has a TR1 conforming version of <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">unordered_set</span><span class="special">&gt;</span></code>.
+ This macro is only guaranteed to be defined after including one
+ of the headers from Boost.TR1. Further this macro is now deprecated
+ in favour of BOOST_NO_CXX11_HDR_UNORDERED_SET.
</p>
</td>
</tr>
@@ -2236,7 +2336,7 @@
</tbody>
</table></div>
</div>
-<div class="section boost_config_boost_macro_reference_macros_that_describe_possible_c___future_features">
+<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.boost_macro_reference.macros_that_describe_possible_c___future_features"></a><a class="link" href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_possible_c___future_features" title="Macros that describe possible C++ future features">Macros
that describe possible C++ future features</a>
@@ -2276,7 +2376,7 @@
</tr></tbody>
</table></div>
</div>
-<div class="section boost_config_boost_macro_reference_macros_that_describe_c__11_features_not_supported">
+<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.boost_macro_reference.macros_that_describe_c__11_features_not_supported"></a><a class="link" href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_c__11_features_not_supported" title="Macros that describe C++11 features not supported">Macros
that describe C++11 features not supported</a>
@@ -2306,6 +2406,31 @@
<tr>
<td>
<p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_ADDRESSOF</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The standard library header &lt;memory&gt; has no working std::addressof.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_ALIGNAS</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The compiler does not support the <code class="computeroutput"><span class="keyword">alignas</span></code>
+ keyword.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_ALLOCATOR</span></code>
</p>
</td>
@@ -2318,7 +2443,7 @@
<tr>
<td>
<p>
- <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_ATOMIC_SP</span></code>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_ATOMIC_SMART_PTR</span></code>
</p>
</td>
<td>
@@ -2331,420 +2456,444 @@
<tr>
<td>
<p>
- <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_HDR_ARRAY</span></code>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_AUTO_DECLARATIONS</span></code>
</p>
</td>
<td>
<p>
- The standard library does not provide header &lt;array&gt;.
+ The compiler does not support type deduction for variables declared
+ with the <code class="computeroutput"><span class="keyword">auto</span></code> keyword
+ (<code class="computeroutput"><span class="keyword">auto</span> <span class="identifier">var</span>
+ <span class="special">=</span> <span class="special">...;</span></code>).
</p>
</td>
</tr>
<tr>
<td>
<p>
- <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_HDR_CHRONO</span></code>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS</span></code>
</p>
</td>
<td>
<p>
- The standard library does not provide header &lt;chrono&gt;.
+ The compiler does not support type deduction for multiple variables
+ declared with the <code class="computeroutput"><span class="keyword">auto</span></code>
+ keyword (<code class="computeroutput"><span class="keyword">auto</span> <span class="identifier">var</span>
+ <span class="special">=</span> <span class="special">...,</span>
+ <span class="special">*</span><span class="identifier">ptr</span>
+ <span class="special">=</span> <span class="special">...;</span></code>).
</p>
</td>
</tr>
<tr>
<td>
<p>
- <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_HDR_CODECVT</span></code>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_CHAR16_T</span></code>
</p>
</td>
<td>
<p>
- The standard library does not provide header &lt;codecvt&gt;.
+ The compiler does not support type <code class="computeroutput"><span class="keyword">char16_t</span></code>.
</p>
</td>
</tr>
<tr>
<td>
<p>
- <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_HDR_CONDITION_VARIABLE</span></code>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_CHAR32_T</span></code>
</p>
</td>
<td>
<p>
- The standard library does not provide header &lt;condition_variable&gt;.
+ The compiler does not support type <code class="computeroutput"><span class="keyword">char32_t</span></code>.
</p>
</td>
</tr>
<tr>
<td>
<p>
- <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_HDR_FORWARD_LIST</span></code>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_CONSTEXPR</span></code>
</p>
</td>
<td>
<p>
- The standard library does not provide header &lt;forward_list&gt;.
+ The compiler does not support <code class="computeroutput"><span class="keyword">constexpr</span></code>.
</p>
</td>
</tr>
<tr>
<td>
<p>
- <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_HDR_FUNCTIONAL</span></code>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_DECLTYPE</span></code>
</p>
</td>
<td>
<p>
- The standard library does not provide a C++11 compatible version
- of &lt;functional&gt;.
+ The compiler does not support <code class="computeroutput"><span class="keyword">decltype</span></code>.
</p>
</td>
</tr>
<tr>
<td>
<p>
- <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_HDR_FUTURE</span></code>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_DECLTYPE_N3276</span></code>
</p>
</td>
<td>
<p>
- The standard library does not provide header &lt;future&gt;.
+ The compiler does not support the extension to <code class="computeroutput"><span class="keyword">decltype</span></code>
+ described in <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3276.pdf" target="_top">N3276</a>,
+ accepted in Madrid, March 2011.
</p>
</td>
</tr>
<tr>
<td>
<p>
- <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_HDR_INITIALIZER_LIST</span></code>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_DELETED_FUNCTIONS</span></code>
</p>
</td>
<td>
<p>
- The standard library does not provide header &lt;initializer_list&gt;.
+ The compiler does not support deleted (<code class="computeroutput"><span class="special">=</span>
+ <span class="keyword">delete</span></code>) functions.
</p>
</td>
</tr>
<tr>
<td>
<p>
- <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_HDR_MUTEX</span></code>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_DEFAULTED_FUNCTIONS</span></code>
</p>
</td>
<td>
<p>
- The standard library does not provide header &lt;mutex&gt;.
+ The compiler does not support defaulted (<code class="computeroutput"><span class="special">=</span>
+ <span class="keyword">default</span></code>) functions.
</p>
</td>
</tr>
<tr>
<td>
<p>
- <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_HDR_RANDOM</span></code>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS</span></code>
</p>
</td>
<td>
<p>
- The standard library does not provide header &lt;random&gt;.
+ The compiler does not support explicit conversion operators (<code class="computeroutput"><span class="keyword">explicit</span> <span class="keyword">operator</span>
+ <span class="identifier">T</span><span class="special">()</span></code>).
</p>
</td>
</tr>
<tr>
<td>
<p>
- <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_HDR_RATIO</span></code>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_EXTERN_TEMPLATE</span></code>
</p>
</td>
<td>
<p>
- The standard library does not provide header &lt;ratio&gt;.
+ The compiler does not support explicit instantiation forward declarations
+ for templates (<code class="computeroutput"><span class="keyword">extern</span> <span class="keyword">template</span> <span class="special">...</span></code>).
</p>
</td>
</tr>
<tr>
<td>
<p>
- <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_HDR_REGEX</span></code>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_FINAL</span></code>
</p>
</td>
<td>
<p>
- The standard library does not provide header &lt;regex&gt;.
+ The compiler does not support the C++ class-virt-specifier final.
</p>
</td>
</tr>
<tr>
<td>
<p>
- <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_HDR_SYSTEM_ERROR</span></code>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS</span></code>
</p>
</td>
<td>
<p>
- The standard library does not provide header &lt;system_error&gt;.
+ The compiler does not support expanding a variadic template parameter
+ pack into a template containing one or more fixed arguments
</p>
</td>
</tr>
<tr>
<td>
<p>
- <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_HDR_THREAD</span></code>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS</span></code>
</p>
</td>
<td>
<p>
- The standard library does not provide header &lt;thread&gt;.
+ The compiler does not support default template arguments for function
+ templates.
</p>
</td>
</tr>
<tr>
<td>
<p>
- <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_HDR_TUPLE</span></code>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_HDR_ATOMIC</span></code>
</p>
</td>
<td>
<p>
- The standard library does not provide header &lt;tuple&gt;.
+ The standard library does not provide header &lt;atomic&gt;.
</p>
</td>
</tr>
<tr>
<td>
<p>
- <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_HDR_TYPEINDEX</span></code>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_HDR_ARRAY</span></code>
</p>
</td>
<td>
<p>
- The standard library does not provide header &lt;typeindex&gt;.
+ The standard library does not provide header &lt;array&gt;.
</p>
</td>
</tr>
<tr>
<td>
<p>
- <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_HDR_TYPE_TRAITS</span></code>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_HDR_CHRONO</span></code>
</p>
</td>
<td>
<p>
- The standard library does not provide header &lt;type_traits&gt;.
+ The standard library does not provide header &lt;chrono&gt;.
</p>
</td>
</tr>
<tr>
<td>
<p>
- <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_HDR_UNORDERED_MAP</span></code>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_HDR_CODECVT</span></code>
</p>
</td>
<td>
<p>
- The standard library does not provide header &lt;unordered_map&gt;.
+ The standard library does not provide header &lt;codecvt&gt;.
</p>
</td>
</tr>
<tr>
<td>
<p>
- <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_HDR_UNORDERED_SET</span></code>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_HDR_CONDITION_VARIABLE</span></code>
</p>
</td>
<td>
<p>
- The standard library does not provide header &lt;unordered_set&gt;.
+ The standard library does not provide header &lt;condition_variable&gt;.
</p>
</td>
</tr>
<tr>
<td>
<p>
- <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_SMART_PTR</span></code>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_HDR_FORWARD_LIST</span></code>
</p>
</td>
<td>
<p>
- The standard library header &lt;memory&gt; has no shared_ptr and
- unique_ptr.
+ The standard library does not provide header &lt;forward_list&gt;.
</p>
</td>
</tr>
<tr>
<td>
<p>
- <code class="computeroutput"><span class="identifier">BOOST_NO_AUTO_DECLARATIONS</span></code>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_HDR_FUNCTIONAL</span></code>
</p>
</td>
<td>
<p>
- The compiler does not support type deduction for variables declared
- with the <code class="computeroutput"><span class="keyword">auto</span></code> keyword
- (<code class="computeroutput"><span class="keyword">auto</span> <span class="identifier">var</span>
- <span class="special">=</span> <span class="special">...;</span></code>).
+ The standard library does not provide a C++11 compatible version
+ of &lt;functional&gt;.
</p>
</td>
</tr>
<tr>
<td>
<p>
- <code class="computeroutput"><span class="identifier">BOOST_NO_AUTO_MULTIDECLARATIONS</span></code>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_HDR_FUTURE</span></code>
</p>
</td>
<td>
<p>
- The compiler does not support type deduction for multiple variables
- declared with the <code class="computeroutput"><span class="keyword">auto</span></code>
- keyword (<code class="computeroutput"><span class="keyword">auto</span> <span class="identifier">var</span>
- <span class="special">=</span> <span class="special">...,</span>
- <span class="special">*</span><span class="identifier">ptr</span>
- <span class="special">=</span> <span class="special">...;</span></code>).
+ The standard library does not provide header &lt;future&gt;.
</p>
</td>
</tr>
<tr>
<td>
<p>
- <code class="computeroutput"><span class="identifier">BOOST_NO_CHAR16_T</span></code>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_HDR_INITIALIZER_LIST</span></code>
</p>
</td>
<td>
<p>
- The compiler does not support type <code class="computeroutput"><span class="identifier">char16_t</span></code>.
+ The standard library does not provide header &lt;initializer_list&gt;.
</p>
</td>
</tr>
<tr>
<td>
<p>
- <code class="computeroutput"><span class="identifier">BOOST_NO_CHAR32_T</span></code>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_HDR_MUTEX</span></code>
</p>
</td>
<td>
<p>
- The compiler does not support type <code class="computeroutput"><span class="identifier">char32_t</span></code>.
+ The standard library does not provide header &lt;mutex&gt;.
</p>
</td>
</tr>
<tr>
<td>
<p>
- <code class="computeroutput"><span class="identifier">BOOST_NO_TEMPLATE_ALIASES</span></code>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_HDR_RANDOM</span></code>
</p>
</td>
<td>
<p>
- The compiler does not support template aliases.
+ The standard library does not provide header &lt;random&gt;.
</p>
</td>
</tr>
<tr>
<td>
<p>
- <code class="computeroutput"><span class="identifier">BOOST_NO_CONSTEXPR</span></code>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_HDR_RATIO</span></code>
</p>
</td>
<td>
<p>
- The compiler does not support <code class="computeroutput"><span class="identifier">constexpr</span></code>.
+ The standard library does not provide header &lt;ratio&gt;.
</p>
</td>
</tr>
<tr>
<td>
<p>
- <code class="computeroutput"><span class="identifier">BOOST_NO_DECLTYPE</span></code>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_HDR_REGEX</span></code>
</p>
</td>
<td>
<p>
- The compiler does not support <code class="computeroutput"><span class="identifier">decltype</span></code>.
+ The standard library does not provide header &lt;regex&gt;.
</p>
</td>
</tr>
<tr>
<td>
<p>
- <code class="computeroutput"><span class="identifier">BOOST_NO_DECLTYPE_N3276</span></code>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_HDR_SYSTEM_ERROR</span></code>
</p>
</td>
<td>
<p>
- The compiler does not support the extension to <code class="computeroutput"><span class="identifier">decltype</span></code>
- described in <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3276.pdf" target="_top">N3276</a>,
- accepted in Madrid, March 2011.
+ The standard library does not provide header &lt;system_error&gt;.
</p>
</td>
</tr>
<tr>
<td>
<p>
- <code class="computeroutput"><span class="identifier">BOOST_NO_DEFAULTED_FUNCTIONS</span></code>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_HDR_THREAD</span></code>
</p>
</td>
<td>
<p>
- The compiler does not support defaulted (<code class="computeroutput"><span class="special">=</span>
- <span class="keyword">default</span></code>) functions.
+ The standard library does not provide header &lt;thread&gt;.
</p>
</td>
</tr>
<tr>
<td>
<p>
- <code class="computeroutput"><span class="identifier">BOOST_NO_DELETED_FUNCTIONS</span></code>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_HDR_TUPLE</span></code>
</p>
</td>
<td>
<p>
- The compiler does not support deleted (<code class="computeroutput"><span class="special">=</span>
- <span class="keyword">delete</span></code>) functions.
+ The standard library does not provide header &lt;tuple&gt;.
</p>
</td>
</tr>
<tr>
<td>
<p>
- <code class="computeroutput"><span class="identifier">BOOST_NO_EXPLICIT_CONVERSION_OPERATORS</span></code>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_HDR_TYPEINDEX</span></code>
</p>
</td>
<td>
<p>
- The compiler does not support explicit conversion operators (<code class="computeroutput"><span class="keyword">explicit</span> <span class="keyword">operator</span>
- <span class="identifier">T</span><span class="special">()</span></code>).
+ The standard library does not provide header &lt;typeindex&gt;.
</p>
</td>
</tr>
<tr>
<td>
<p>
- <code class="computeroutput"><span class="identifier">BOOST_NO_EXTERN_TEMPLATE</span></code>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_HDR_TYPE_TRAITS</span></code>
</p>
</td>
<td>
<p>
- The compiler does not support explicit instantiation forward declarations
- for templates (<code class="computeroutput"><span class="keyword">extern</span> <span class="keyword">template</span> <span class="special">...</span></code>).
+ The standard library does not provide header &lt;type_traits&gt;.
</p>
</td>
</tr>
<tr>
<td>
<p>
- <code class="computeroutput"><span class="identifier">BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS</span></code>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_HDR_UNORDERED_MAP</span></code>
</p>
</td>
<td>
<p>
- The compiler does not support default template arguments for function
- templates.
+ The standard library does not provide header &lt;unordered_map&gt;.
</p>
</td>
</tr>
<tr>
<td>
<p>
- <code class="computeroutput"><span class="identifier">BOOST_NO_LAMBDAS</span></code>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_HDR_UNORDERED_SET</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The standard library does not provide header &lt;unordered_set&gt;.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_INLINE_NAMESPACES</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The compiler does not support inline namespaces.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_LAMBDAS</span></code>
</p>
</td>
<td>
@@ -2756,7 +2905,7 @@
<tr>
<td>
<p>
- <code class="computeroutput"><span class="identifier">BOOST_NO_LOCAL_CLASS_TEMPLATE_PARAMETERS</span></code>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS</span></code>
</p>
</td>
<td>
@@ -2770,44 +2919,62 @@
<tr>
<td>
<p>
- <code class="computeroutput"><span class="identifier">BOOST_NO_LONG_LONG</span></code>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS</span></code>
</p>
</td>
<td>
<p>
- The compiler does not support <code class="computeroutput"><span class="keyword">long</span>
- <span class="keyword">long</span></code>.
+ The compiler does not support defaulted (<code class="computeroutput"><span class="special">=</span>
+ <span class="keyword">default</span></code>) functions in access
+ control sections other than <code class="computeroutput"><span class="keyword">public</span></code>.
+ Public defaulted functions may still be supported, as indicated
+ by <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_DEFAULTED_FUNCTIONS</span></code>.
+ Some compilers implementing an early draft of the C++11 standard
+ (in particular, incorporating <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#906" target="_top">DR906</a>)
+ are susceptible to this problem.
</p>
</td>
</tr>
<tr>
<td>
<p>
- <code class="computeroutput"><span class="identifier">BOOST_NO_NOEXCEPT</span></code>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_NOEXCEPT</span></code>
</p>
</td>
<td>
<p>
- The compiler does not support <code class="computeroutput"><span class="identifier">noexcept</span></code>.
+ The compiler does not support <code class="computeroutput"><span class="keyword">noexcept</span></code>.
</p>
</td>
</tr>
<tr>
<td>
<p>
- <code class="computeroutput"><span class="identifier">BOOST_NO_NULLPTR</span></code>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_NULLPTR</span></code>
</p>
</td>
<td>
<p>
- The compiler does not support <code class="computeroutput"><span class="identifier">nullptr</span></code>.
+ The compiler does not support <code class="computeroutput"><span class="keyword">nullptr</span></code>.
</p>
</td>
</tr>
<tr>
<td>
<p>
- <code class="computeroutput"><span class="identifier">BOOST_NO_RAW_LITERALS</span></code>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_RANGE_BASED_FOR</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The compiler does not support range-based for statements.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_RAW_LITERALS</span></code>
</p>
</td>
<td>
@@ -2819,7 +2986,20 @@
<tr>
<td>
<p>
- <code class="computeroutput"><span class="identifier">BOOST_NO_RVALUE_REFERENCES</span></code>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_REF_QUALIFIERS</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The compiler does not support ref-qualifiers on member functions
+ as described in <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2439.htm" target="_top">N2439</a>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_RVALUE_REFERENCES</span></code>
</p>
</td>
<td>
@@ -2831,7 +3011,7 @@
<tr>
<td>
<p>
- <code class="computeroutput"><span class="identifier">BOOST_NO_SCOPED_ENUMS</span></code>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_SCOPED_ENUMS</span></code>
</p>
</td>
<td>
@@ -2843,19 +3023,44 @@
<tr>
<td>
<p>
- <code class="computeroutput"><span class="identifier">BOOST_NO_STATIC_ASSERT</span></code>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_SMART_PTR</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The standard library header &lt;memory&gt; has no shared_ptr and
+ unique_ptr.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_STATIC_ASSERT</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The compiler does not support <code class="computeroutput"><span class="keyword">static_assert</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_STD_ALIGN</span></code>
</p>
</td>
<td>
<p>
- The compiler does not support <code class="computeroutput"><span class="identifier">static_assert</span></code>.
+ The standard library header &lt;memory&gt; has no working std::align.
</p>
</td>
</tr>
<tr>
<td>
<p>
- <code class="computeroutput"><span class="identifier">BOOST_NO_STD_UNORDERD</span></code>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_STD_UNORDERED</span></code>
</p>
</td>
<td>
@@ -2868,7 +3073,7 @@
<tr>
<td>
<p>
- <code class="computeroutput"><span class="identifier">BOOST_NO_TEMPLATE_ALIASES</span></code>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_TEMPLATE_ALIASES</span></code>
</p>
</td>
<td>
@@ -2880,7 +3085,21 @@
<tr>
<td>
<p>
- <code class="computeroutput"><span class="identifier">BOOST_NO_UNICODE_LITERALS</span></code>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_TRAILING_RESULT_TYPES</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The compiler does not support the new function result type specification
+ syntax (e.g. <code class="computeroutput"><span class="keyword">auto</span> <span class="identifier">foo</span><span class="special">(</span><span class="identifier">T</span><span class="special">)</span>
+ <span class="special">-&gt;</span> <span class="identifier">T</span><span class="special">;</span></code>).
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_UNICODE_LITERALS</span></code>
</p>
</td>
<td>
@@ -2893,7 +3112,7 @@
<tr>
<td>
<p>
- <code class="computeroutput"><span class="identifier">BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX</span></code>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX</span></code>
</p>
</td>
<td>
@@ -2906,7 +3125,19 @@
<tr>
<td>
<p>
- <code class="computeroutput"><span class="identifier">BOOST_NO_VARIADIC_TEMPLATES</span></code>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_USER_DEFINED_LITERALS</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The compiler does not support user defined literals.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_VARIADIC_TEMPLATES</span></code>
</p>
</td>
<td>
@@ -2918,7 +3149,7 @@
<tr>
<td>
<p>
- <code class="computeroutput"><span class="identifier">BOOST_NO_VARIADIC_MACROS</span></code>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_VARIADIC_MACROS</span></code>
</p>
</td>
<td>
@@ -2927,10 +3158,23 @@
</p>
</td>
</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_LONG_LONG</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The compiler does not support <code class="computeroutput"><span class="keyword">long</span>
+ <span class="keyword">long</span></code>.
+ </p>
+ </td>
+</tr>
</tbody>
</table></div>
</div>
-<div class="section boost_config_boost_macro_reference_macros_that_allow_use_of_c__11_features_with_c__03_compilers">
+<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.boost_macro_reference.macros_that_allow_use_of_c__11_features_with_c__03_compilers"></a><a name="config_11_for_03"></a><a class="link" href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_allow_use_of_c__11_features_with_c__03_compilers" title="Macros that allow use of C++11 features with C++03 compilers">Macros
that allow use of C++11 features with C++03 compilers</a>
@@ -2960,16 +3204,46 @@
<tr>
<td>
<p>
+ <code class="computeroutput"><span class="identifier">BOOST_ALIGNMENT</span><span class="special">(</span><span class="identifier">X</span><span class="special">)</span></code>, <code class="computeroutput"><span class="identifier">BOOST_NO_ALIGNMENT</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Some compilers don't support the <code class="computeroutput"><span class="keyword">alignas</span></code>
+ keyword but provide other means to specify alignment (usually,
+ through compiler-specific attributes). The macro <code class="computeroutput"><span class="identifier">BOOST_ALIGNMENT</span><span class="special">(</span><span class="identifier">X</span><span class="special">)</span></code>
+ will expand to the <code class="computeroutput"><span class="keyword">alignas</span><span class="special">(</span><span class="identifier">X</span><span class="special">)</span></code> keyword if the compiler supports
+ it or to some compiler-specific attribute to achieve the specified
+ alignment. If no such compiler-specific attribute is known then
+ <code class="computeroutput"><span class="identifier">BOOST_ALIGNMENT</span><span class="special">(</span><span class="identifier">X</span><span class="special">)</span></code> will expand to nothing and <code class="computeroutput"><span class="identifier">BOOST_NO_ALIGNMENT</span></code> will be defined.
+ Unlike native <code class="computeroutput"><span class="keyword">alignas</span></code>,
+ <code class="computeroutput"><span class="identifier">X</span></code> must always be
+ a compile-time integer constant. The macro can be used to specify
+ alignment of types and data:
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">struct</span> <span class="identifier">BOOST_ALIGNMENT</span><span class="special">(</span><span class="number">16</span><span class="special">)</span> <span class="identifier">my_data</span>
+<span class="special">{</span>
+ <span class="keyword">char</span> <span class="identifier">c</span><span class="special">[</span><span class="number">16</span><span class="special">];</span>
+<span class="special">};</span>
+<span class="identifier">BOOST_ALIGNMENT</span><span class="special">(</span><span class="number">8</span><span class="special">)</span> <span class="keyword">int</span> <span class="identifier">arr</span><span class="special">[</span><span class="number">32</span><span class="special">];</span>
+</pre>
+<p>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
<code class="computeroutput"><span class="identifier">BOOST_CONSTEXPR</span></code>
</p>
</td>
<td>
<p>
- Some compilers don't support the use of <code class="computeroutput"><span class="identifier">constexpr</span></code>.
- This macro expands to nothing on those compilers, and <code class="computeroutput"><span class="identifier">constexpr</span></code> elsewhere. For example,
+ Some compilers don't support the use of <code class="computeroutput"><span class="keyword">constexpr</span></code>.
+ This macro expands to nothing on those compilers, and <code class="computeroutput"><span class="keyword">constexpr</span></code> elsewhere. For example,
when defining a constexpr function or constructor replace:
</p>
-<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">constexpr</span> <span class="identifier">tuple</span><span class="special">();</span>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">constexpr</span> <span class="identifier">tuple</span><span class="special">();</span>
</pre>
<p>
with:
@@ -2988,12 +3262,12 @@
</td>
<td>
<p>
- Some compilers don't support the use of <code class="computeroutput"><span class="identifier">constexpr</span></code>.
+ Some compilers don't support the use of <code class="computeroutput"><span class="keyword">constexpr</span></code>.
This macro expands to <code class="computeroutput"><span class="keyword">const</span></code>
- on those compilers, and <code class="computeroutput"><span class="identifier">constexpr</span></code>
+ on those compilers, and <code class="computeroutput"><span class="keyword">constexpr</span></code>
elsewhere. For example, when defining const expr variables replace:
</p>
-<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">static</span> <span class="identifier">constexpr</span> <span class="identifier">UIntType</span> <span class="identifier">xor_mask</span> <span class="special">=</span> <span class="identifier">a</span><span class="special">;</span>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="identifier">UIntType</span> <span class="identifier">xor_mask</span> <span class="special">=</span> <span class="identifier">a</span><span class="special">;</span>
</pre>
<p>
with:
@@ -3016,7 +3290,7 @@
<span class="identifier">BOOST_CONSTEXPR_OR_CONST</span></code>.
For example, when defining const expr variables replace:
</p>
-<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">static</span> <span class="identifier">constexpr</span> <span class="identifier">UIntType</span> <span class="identifier">xor_mask</span> <span class="special">=</span> <span class="identifier">a</span><span class="special">;</span>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="identifier">UIntType</span> <span class="identifier">xor_mask</span> <span class="special">=</span> <span class="identifier">a</span><span class="special">;</span>
</pre>
<p>
with:
@@ -3030,8 +3304,92 @@
<tr>
<td>
<p>
+ <code class="computeroutput"><span class="identifier">BOOST_DEFAULTED_FUNCTION</span><span class="special">(</span><span class="identifier">fun</span><span class="special">,</span> <span class="identifier">body</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ This macro is intended to be used within a class definition in
+ order to declare a default implementation of function <code class="computeroutput"><span class="identifier">fun</span></code>. For the compilers that do
+ not support C++11 defaulted functions the macro will expand into
+ an inline function definition with the <code class="computeroutput"><span class="identifier">body</span></code>
+ implementation. For example:
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">struct</span> <span class="identifier">my_struct</span>
+<span class="special">{</span>
+ <span class="identifier">BOOST_DEFAULTED_FUNCTION</span><span class="special">(</span><span class="identifier">my_struct</span><span class="special">(),</span> <span class="special">{})</span>
+<span class="special">};</span>
+</pre>
+<p>
+ is equivalent to:
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">struct</span> <span class="identifier">my_struct</span>
+<span class="special">{</span>
+ <span class="identifier">my_struct</span><span class="special">()</span> <span class="special">=</span> <span class="keyword">default</span><span class="special">;</span>
+<span class="special">};</span>
+</pre>
+<p>
+ or:
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">struct</span> <span class="identifier">my_struct</span>
+<span class="special">{</span>
+ <span class="identifier">my_struct</span><span class="special">()</span> <span class="special">{}</span>
+<span class="special">};</span>
+</pre>
+<p>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_DELETED_FUNCTION</span><span class="special">(</span><span class="identifier">fun</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ This macro is intended to be used within a class definition in
+ order to declare a deleted function <code class="computeroutput"><span class="identifier">fun</span></code>.
+ For the compilers that do not support C++11 deleted functions the
+ macro will expand into a private function declaration with no definition.
+ Since the macro may change the access mode, it is recommended to
+ use this macro at the end of the class definition. For example:
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">struct</span> <span class="identifier">noncopyable</span>
+<span class="special">{</span>
+ <span class="identifier">BOOST_DELETED_FUNCTION</span><span class="special">(</span><span class="identifier">noncopyable</span><span class="special">(</span><span class="identifier">noncopyable</span> <span class="keyword">const</span><span class="special">&amp;))</span>
+ <span class="identifier">BOOST_DELETED_FUNCTION</span><span class="special">(</span><span class="identifier">noncopyable</span><span class="special">&amp;</span> <span class="keyword">operator</span><span class="special">=</span> <span class="special">(</span><span class="identifier">noncopyable</span> <span class="keyword">const</span><span class="special">&amp;))</span>
+<span class="special">};</span>
+</pre>
+<p>
+ is equivalent to:
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">struct</span> <span class="identifier">noncopyable</span>
+<span class="special">{</span>
+ <span class="identifier">noncopyable</span><span class="special">(</span><span class="identifier">noncopyable</span> <span class="keyword">const</span><span class="special">&amp;)</span> <span class="special">=</span> <span class="keyword">delete</span><span class="special">;</span>
+ <span class="identifier">noncopyable</span><span class="special">&amp;</span> <span class="keyword">operator</span><span class="special">=</span> <span class="special">(</span><span class="identifier">noncopyable</span> <span class="keyword">const</span><span class="special">&amp;)</span> <span class="special">=</span> <span class="keyword">delete</span><span class="special">;</span>
+<span class="special">};</span>
+</pre>
+<p>
+ or:
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">struct</span> <span class="identifier">noncopyable</span>
+<span class="special">{</span>
+<span class="keyword">private</span><span class="special">:</span>
+ <span class="identifier">noncopyable</span><span class="special">(</span><span class="identifier">noncopyable</span> <span class="keyword">const</span><span class="special">&amp;);</span>
+ <span class="identifier">noncopyable</span><span class="special">&amp;</span> <span class="keyword">operator</span><span class="special">=</span> <span class="special">(</span><span class="identifier">noncopyable</span> <span class="keyword">const</span><span class="special">&amp;);</span>
+<span class="special">};</span>
+</pre>
+<p>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">BOOST_NOEXCEPT</span>
+<span class="identifier">BOOST_NOEXCEPT_OR_NOTHROW</span>
<span class="identifier">BOOST_NOEXCEPT_IF</span><span class="special">(</span><span class="identifier">Predicate</span><span class="special">)</span>
<span class="identifier">BOOST_NOEXCEPT_EXPR</span><span class="special">(</span><span class="identifier">Expression</span><span class="special">)</span>
</pre>
@@ -3040,7 +3398,7 @@
</td>
<td>
<p>
- If <code class="computeroutput"><span class="identifier">BOOST_NO_NOEXCEPT</span></code>
+ If <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_NOEXCEPT</span></code>
is defined (i.e. C++03 compliant compilers) these macros are defined
as:
</p>
@@ -3048,6 +3406,7 @@
<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_NOEXCEPT</span>
+<span class="preprocessor">#define</span> <span class="identifier">BOOST_NOEXCEPT_OR_NOTHROW</span> <span class="keyword">throw</span><span class="special">()</span>
<span class="preprocessor">#define</span> <span class="identifier">BOOST_NOEXCEPT_IF</span><span class="special">(</span><span class="identifier">Predicate</span><span class="special">)</span>
<span class="preprocessor">#define</span> <span class="identifier">BOOST_NOEXCEPT_EXPR</span><span class="special">(</span><span class="identifier">Expression</span><span class="special">)</span> <span class="keyword">false</span>
</pre>
@@ -3055,26 +3414,249 @@
</p>
</blockquote></div>
<p>
- If <code class="computeroutput"><span class="identifier">BOOST_NO_NOEXCEPT</span></code>
+ If <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_NOEXCEPT</span></code>
is not defined (i.e. C++11 compliant compilers) they are defined
as:
</p>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
-<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_NOEXCEPT</span> <span class="identifier">noexcept</span>
-<span class="preprocessor">#define</span> <span class="identifier">BOOST_NOEXCEPT_IF</span><span class="special">(</span><span class="identifier">Predicate</span><span class="special">)</span> <span class="identifier">noexcept</span><span class="special">((</span><span class="identifier">Predicate</span><span class="special">))</span>
-<span class="preprocessor">#define</span> <span class="identifier">BOOST_NOEXCEPT_EXPR</span><span class="special">(</span><span class="identifier">Expression</span><span class="special">)</span> <span class="identifier">noexcept</span><span class="special">((</span><span class="identifier">Expression</span><span class="special">))</span>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_NOEXCEPT</span> <span class="keyword">noexcept</span>
+<span class="preprocessor">#define</span> <span class="identifier">BOOST_NOEXCEPT_OR_NOTHROW</span> <span class="keyword">noexcept</span>
+<span class="preprocessor">#define</span> <span class="identifier">BOOST_NOEXCEPT_IF</span><span class="special">(</span><span class="identifier">Predicate</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">((</span><span class="identifier">Predicate</span><span class="special">))</span>
+<span class="preprocessor">#define</span> <span class="identifier">BOOST_NOEXCEPT_EXPR</span><span class="special">(</span><span class="identifier">Expression</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">((</span><span class="identifier">Expression</span><span class="special">))</span>
</pre>
<p>
</p>
</blockquote></div>
</td>
</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_MSVC_ENABLE_2012_NOV_CTP</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ For Microsoft Visual C++ 2012, enable the C++11 features supplied
+ by the November 2012 Community Technology Preview. These features
+ are not automatically enabled because the CTP is non-supported
+ alpha code that is not recommended for production use. This macro
+ must be defined before including any Boost headers, and must be
+ defined for all translation units in the program, including Boost
+ library builds. This macro will no longer have any effect once
+ an official Microsoft release supports the CTP features.
+ </p>
+ </td>
+</tr>
</tbody>
</table></div>
</div>
-<div class="section boost_config_boost_macro_reference_boost_helper_macros">
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_config.boost_macro_reference.macros_that_describe_c__14_features_not_supported"></a><a class="link" href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_c__14_features_not_supported" title="Macros that describe C++14 features not supported">Macros
+ that describe C++14 features not supported</a>
+</h3></div></div></div>
+<p>
+ The following macros describe features in the 2014 ISO C++ standard, formerly
+ known as C++0y, that are not yet supported by a particular compiler or library.
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Macro
+ </p>
+ </th>
+<th>
+ <p>
+ Description
+ </p>
+ </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX14_AGGREGATE_NSDMI</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The compiler does not support member initializer for aggregates
+ as in the following example:
+ </p>
+ <div class="blockquote"><blockquote class="blockquote">
+<p>
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">struct</span> <span class="identifier">Foo</span>
+<span class="special">{</span>
+ <span class="keyword">int</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">y</span> <span class="special">=</span> <span class="number">42</span><span class="special">;</span>
+<span class="special">};</span>
+
+<span class="identifier">Foo</span> <span class="identifier">foo</span> <span class="special">=</span> <span class="special">{</span> <span class="number">0</span> <span class="special">};</span>
+</pre>
+<p>
+ </p>
+</blockquote></div>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX14_BINARY_LITERALS</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The compiler does not binary literals (e.g. <code class="computeroutput"><span class="number">0</span><span class="identifier">b1010</span></code>).
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX14_CONSTEXPR</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The compiler does not support relaxed <code class="computeroutput"><span class="keyword">constexpr</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX14_DECLTYPE_AUTO</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The compiler does not support <code class="computeroutput"><span class="keyword">decltype</span><span class="special">(</span><span class="keyword">auto</span><span class="special">)</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX14_DIGIT_SEPARATORS</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The compiler does not support digit separators (e.g. <code class="computeroutput"><span class="number">1</span><span class="char">'000'</span><span class="number">000</span></code>).
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX14_GENERIC_LAMBDAS</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The compiler does not support generic lambda (e.g. <code class="computeroutput"><span class="special">[](</span><span class="keyword">auto</span>
+ <span class="identifier">v</span><span class="special">){</span>
+ <span class="special">}</span></code>).
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The compiler does not support initialized lambda capture (e.g.
+ <code class="computeroutput"><span class="special">[</span><span class="identifier">foo</span>
+ <span class="special">=</span> <span class="number">42</span><span class="special">]{</span> <span class="special">}</span></code>).
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The compiler does not support return type deduction for normal
+ functions (e.g. <code class="computeroutput"><span class="keyword">auto</span> <span class="identifier">f</span><span class="special">()</span>
+ <span class="special">{</span> <span class="keyword">return</span>
+ <span class="identifier">val</span><span class="special">;</span>
+ <span class="special">}</span></code>).
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX14_VARIABLE_TEMPLATES</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The compiler does not support variable template (e.g. <code class="computeroutput"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">T</span>
+ <span class="identifier">kibi</span> <span class="special">=</span>
+ <span class="identifier">T</span><span class="special">(</span><span class="number">1024</span><span class="special">);</span></code>).
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_config.boost_macro_reference.macros_that_allow_use_of_c__14_features_with_c__11_or_earlier_compilers"></a><a name="config_14_for_11"></a><a class="link" href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_allow_use_of_c__14_features_with_c__11_or_earlier_compilers" title="Macros that allow use of C++14 features with C++11 or earlier compilers">Macros
+ that allow use of C++14 features with C++11 or earlier compilers</a>
+</h3></div></div></div>
+<p>
+ The following macros allow use of C++14 features even with compilers that
+ do not yet provide compliant C++14 support.
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Macro
+ </p>
+ </th>
+<th>
+ <p>
+ Description
+ </p>
+ </th>
+</tr></thead>
+<tbody><tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_CXX14_CONSTEXPR</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ This macro works similar to BOOST_CONSTEXPR, but expands to <code class="computeroutput"><span class="keyword">constexpr</span></code> only if the C++14 "relaxed"
+ <code class="computeroutput"><span class="keyword">constexpr</span></code> is available.
+ </p>
+ </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.boost_macro_reference.boost_helper_macros"></a><a name="config_helpers"></a><a class="link" href="boost_macro_reference.html#boost_config.boost_macro_reference.boost_helper_macros" title="Boost Helper Macros">Boost
Helper Macros</a>
@@ -3292,6 +3874,54 @@
<tr>
<td>
<p>
+ <code class="computeroutput"><span class="identifier">BOOST_FALLTHROUGH</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The BOOST_FALLTHROUGH macro can be used to annotate implicit fall-through
+ between switch labels:
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">switch</span> <span class="special">(</span><span class="identifier">x</span><span class="special">)</span> <span class="special">{</span>
+<span class="keyword">case</span> <span class="number">40</span><span class="special">:</span>
+<span class="keyword">case</span> <span class="number">41</span><span class="special">:</span>
+ <span class="keyword">if</span> <span class="special">(</span><span class="identifier">truth_is_out_there</span><span class="special">)</span> <span class="special">{</span>
+ <span class="special">++</span><span class="identifier">x</span><span class="special">;</span>
+ <span class="identifier">BOOST_FALLTHROUGH</span><span class="special">;</span> <span class="comment">// Use instead of/along with annotations in </span>
+ <span class="comment">// comments. </span>
+ <span class="special">}</span> <span class="keyword">else</span> <span class="special">{</span>
+ <span class="keyword">return</span> <span class="identifier">x</span><span class="special">;</span>
+ <span class="special">}</span>
+ <span class="keyword">case</span> <span class="number">42</span><span class="special">:</span>
+ <span class="special">...</span>
+</pre>
+<p>
+ As shown in the example above, the BOOST_FALLTHROUGH macro should
+ be followed by a semicolon. It is designed to mimic control-flow
+ statements like 'break;', so it can be placed in most places where
+ 'break;' can, but only if there are no statements on the execution
+ path between it and the next switch label.
+ </p>
+ <p>
+ When compiled with Clang &gt;3.2 in C++11 mode, the BOOST_FALLTHROUGH
+ macro is expanded to <code class="computeroutput"><span class="special">[[</span><span class="identifier">clang</span><span class="special">::</span><span class="identifier">fallthrough</span><span class="special">]]</span></code>
+ attribute, which is analysed when performing switch labels fall-through
+ diagnostic ('-Wimplicit-fallthrough'). See clang <a href="http://clang.llvm.org/docs/LanguageExtensions.html#clang__fallthrough" target="_top">documentation
+ on language extensions for details.</a>
+ </p>
+ <p>
+ When used with unsupported compilers, the BOOST_FALLTHROUGH macro
+ has no effect on diagnostics.
+ </p>
+ <p>
+ In either case this macro has no effect on runtime behavior and
+ performance of code.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
<code class="computeroutput"><span class="identifier">BOOST_EXPLICIT_TEMPLATE_TYPE</span><span class="special">(</span><span class="identifier">t</span><span class="special">)</span></code> <code class="computeroutput"><span class="identifier">BOOST_EXPLICIT_TEMPLATE_NON_TYPE</span><span class="special">(</span><span class="identifier">t</span><span class="special">,</span><span class="identifier">v</span><span class="special">)</span></code> <code class="computeroutput"><span class="identifier">BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE</span><span class="special">(</span><span class="identifier">t</span><span class="special">)</span></code> <code class="computeroutput"><span class="identifier">BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE</span><span class="special">(</span><span class="identifier">t</span><span class="special">,</span><span class="identifier">v</span><span class="special">)</span></code>
</p>
</td>
@@ -3442,7 +4072,7 @@
<td>
<p>
This macro can be used in place of the <code class="computeroutput"><span class="keyword">inline</span></code>
- keyword to instruct the compiler that a function should always
+ keyword to instruct the compiler that the function should always
be inlined. Overuse of this macro can lead to significant bloat,
while good use can increase performance in certain cases, such
as computation-intensive code built through generative programming
@@ -3467,10 +4097,115 @@
</p>
</td>
</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NOINLINE</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ This macro can be used in place of the <code class="computeroutput"><span class="keyword">inline</span></code>
+ keyword to instruct the compiler that the function should never
+ be inlined. One should typically use this macro to mark functions
+ that are unlikely to be called, such as error handling routines.
+ </p>
+ <p>
+ Usage example:
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">BOOST_NOINLINE</span> <span class="keyword">void</span> <span class="identifier">handle_error</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">descr</span><span class="special">)</span>
+<span class="special">{</span>
+ <span class="comment">// ...</span>
+<span class="special">}</span>
+</pre>
+<p>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NORETURN</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ This macro can be used before the function declaration or definition
+ to instruct the compiler that the function does not return normally
+ (i.e. with a <code class="computeroutput"><span class="keyword">return</span></code>
+ statement or by leaving the function scope, if the function return
+ type is <code class="computeroutput"><span class="keyword">void</span></code>). The
+ macro can be used to mark functions that always throw exceptions
+ or terminate the application. Compilers that support this markup
+ may use this information to specifically organize the code surrounding
+ calls to this function and suppress warnings about missing <code class="computeroutput"><span class="keyword">return</span></code> statements in the functions
+ enclosing such calls.
+ </p>
+ <p>
+ Usage example:
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">BOOST_NORETURN</span> <span class="keyword">void</span> <span class="identifier">on_error_occurred</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">descr</span><span class="special">)</span>
+<span class="special">{</span>
+ <span class="keyword">throw</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">runtime_error</span><span class="special">(</span><span class="identifier">descr</span><span class="special">);</span>
+<span class="special">}</span>
+</pre>
+<p>
+ </p>
+ <p>
+ If the compiler does not support this markup, <code class="computeroutput"><span class="identifier">BOOST_NORETURN</span></code>
+ is defined empty and an additional macro <code class="computeroutput"><span class="identifier">BOOST_NO_NORETURN</span></code>
+ is defined.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_LIKELY</span><span class="special">(</span><span class="identifier">X</span><span class="special">)</span></code>
+ <code class="computeroutput"><span class="identifier">BOOST_UNLIKELY</span><span class="special">(</span><span class="identifier">X</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ These macros communicate to the compiler that the conditional expression
+ <code class="computeroutput"><span class="identifier">X</span></code> is likely or
+ unlikely to yield a positive result. The expression should result
+ in a boolean value. The result of the macro is an integer or boolean
+ value equivalent to the result of <code class="computeroutput"><span class="identifier">X</span></code>.
+ </p>
+ <p>
+ The macros are intended to be used in branching statements. The
+ additional hint they provide can be used by the compiler to arrange
+ the compiled code of the branches more effectively.
+ </p>
+ <p>
+ Usage example:
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">if</span> <span class="special">(</span><span class="identifier">BOOST_UNLIKELY</span><span class="special">(</span><span class="identifier">ptr</span> <span class="special">==</span> <span class="identifier">NULL</span><span class="special">))</span>
+ <span class="identifier">handle_error</span><span class="special">(</span><span class="string">"ptr is NULL"</span><span class="special">);</span>
+</pre>
+<p>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_ATTRIBUTE_UNUSED</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Expands to <code class="computeroutput"><span class="identifier">__attribute__</span><span class="special">((</span><span class="identifier">unused</span><span class="special">))</span></code> when this is available - can
+ be used to disable compiler warnings relating to unused types or
+ variables.
+ </p>
+ </td>
+</tr>
</tbody>
</table></div>
</div>
-<div class="section boost_config_boost_macro_reference_boost_informational_macros">
+<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.boost_macro_reference.boost_informational_macros"></a><a name="config_info_macros"></a><a class="link" href="boost_macro_reference.html#boost_config.boost_macro_reference.boost_informational_macros" title="Boost Informational Macros">Boost
Informational Macros</a>
@@ -3605,6 +4340,29 @@
<tr>
<td>
<p>
+ <code class="computeroutput"><span class="identifier">BOOST_GCC</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Defined if the compiler is really GCC, as opposed to one of the
+ many other compilers that also define <code class="computeroutput"><span class="identifier">__GNUC__</span></code>.
+ Has the value: <code class="computeroutput"><span class="identifier">__GNUC__</span>
+ <span class="special">*</span> <span class="number">10000</span>
+ <span class="special">+</span> <span class="identifier">__GNUC_MINOR__</span>
+ <span class="special">*</span> <span class="number">100</span>
+ <span class="special">+</span> <span class="identifier">__GNUC_PATCHLEVEL__</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
<code class="computeroutput"><span class="identifier">BOOST_INTEL</span></code>
</p>
</td>
@@ -3748,7 +4506,7 @@
</tbody>
</table></div>
</div>
-<div class="section boost_config_boost_macro_reference_boost_deprecated_macros">
+<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.boost_macro_reference.boost_deprecated_macros"></a><a name="deprecated_macros"></a><a class="link" href="boost_macro_reference.html#boost_config.boost_macro_reference.boost_deprecated_macros" title="Boost Deprecated Macros">Boost
Deprecated Macros</a>
@@ -4167,15 +4925,648 @@
<td>
</td>
</tr>
+<tr>
+<td>
+ </td>
+<td>
+ </td>
+<td>
+ </td>
+<td>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_AUTO_DECLARATIONS</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_AUTO_DECLARATIONS</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Boost 1.51
+ </p>
+ </td>
+<td>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_AUTO_MULTIDECLARATIONS</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Boost 1.51
+ </p>
+ </td>
+<td>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CHAR16_T</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_CHAR16_T</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Boost 1.51
+ </p>
+ </td>
+<td>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CHAR32_T</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_CHAR32_T</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Boost 1.51
+ </p>
+ </td>
+<td>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_TEMPLATE_ALIASES</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_TEMPLATE_ALIASES</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Boost 1.51
+ </p>
+ </td>
+<td>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CONSTEXPR</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_CONSTEXPR</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Boost 1.51
+ </p>
+ </td>
+<td>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_DECLTYPE</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_DECLTYPE</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Boost 1.51
+ </p>
+ </td>
+<td>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_DECLTYPE_N3276</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_DECLTYPE_N3276</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Boost 1.51
+ </p>
+ </td>
+<td>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_DEFAULTED_FUNCTIONS</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_DEFAULTED_FUNCTIONS</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Boost 1.51
+ </p>
+ </td>
+<td>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_DELETED_FUNCTIONS</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_DELETED_FUNCTIONS</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Boost 1.51
+ </p>
+ </td>
+<td>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_EXPLICIT_CONVERSION_OPERATORS</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Boost 1.51
+ </p>
+ </td>
+<td>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_EXTERN_TEMPLATE</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_EXTERN_TEMPLATE</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Boost 1.51
+ </p>
+ </td>
+<td>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Boost 1.51
+ </p>
+ </td>
+<td>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_LAMBDAS</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_LAMBDAS</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Boost 1.51
+ </p>
+ </td>
+<td>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_LOCAL_CLASS_TEMPLATE_PARAMETERS</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Boost 1.51
+ </p>
+ </td>
+<td>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_NOEXCEPT</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_NOEXCEPT</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Boost 1.51
+ </p>
+ </td>
+<td>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_NULLPTR</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_NULLPTR</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Boost 1.51
+ </p>
+ </td>
+<td>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_RAW_LITERALS</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_RAW_LITERALS</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Boost 1.51
+ </p>
+ </td>
+<td>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_RVALUE_REFERENCES</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_RVALUE_REFERENCES</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Boost 1.51
+ </p>
+ </td>
+<td>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_SCOPED_ENUMS</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_SCOPED_ENUMS</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Boost 1.51
+ </p>
+ </td>
+<td>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_STATIC_ASSERT</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_STATIC_ASSERT</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Boost 1.51
+ </p>
+ </td>
+<td>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_STD_UNORDERED</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_STD_UNORDERED</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Boost 1.51
+ </p>
+ </td>
+<td>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_UNICODE_LITERALS</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_UNICODE_LITERALS</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Boost 1.51
+ </p>
+ </td>
+<td>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Boost 1.51
+ </p>
+ </td>
+<td>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_VARIADIC_TEMPLATES</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_VARIADIC_TEMPLATES</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Boost 1.51
+ </p>
+ </td>
+<td>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_VARIADIC_MACROS</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_VARIADIC_MACROS</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Boost 1.51
+ </p>
+ </td>
+<td>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_NUMERIC_LIMITS_LOWEST</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_NUMERIC_LIMITS</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Boost 1.51
+ </p>
+ </td>
+<td>
+ </td>
+</tr>
+<tr>
+<td>
+ </td>
+<td>
+ </td>
+<td>
+ </td>
+<td>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_HAS_STATIC_ASSERT</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_STATIC_ASSERT</span></code>
+ (negated)
+ </p>
+ </td>
+<td>
+ <p>
+ Boost 1.53
+ </p>
+ </td>
+<td>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_HAS_VARIADIC_TMPL</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_VARIADIC_TEMPLATES</span></code>
+ (negated)
+ </p>
+ </td>
+<td>
+ <p>
+ Boost 1.53
+ </p>
+ </td>
+<td>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_HAS_RVALUE_REFS</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_RVALUE_REFERENCES</span></code>
+ (negated)
+ </p>
+ </td>
+<td>
+ <p>
+ Boost 1.53
+ </p>
+ </td>
+<td>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_HAS_CHAR16_T</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_CHAR16_T</span></code>
+ (negated)
+ </p>
+ </td>
+<td>
+ <p>
+ Boost 1.53
+ </p>
+ </td>
+<td>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_HAS_CHAR32_T</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_CHAR32_T</span></code>
+ (negated)
+ </p>
+ </td>
+<td>
+ <p>
+ Boost 1.53
+ </p>
+ </td>
+<td>
+ </td>
+</tr>
</tbody>
</table></div>
</div>
-<div class="section boost_config_boost_macro_reference_macros_for_libraries_with_separate_source_code">
+<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.boost_macro_reference.macros_for_libraries_with_separate_source_code"></a><a class="link" href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_for_libraries_with_separate_source_code" title="Macros for libraries with separate source code">Macros
for libraries with separate source code</a>
</h3></div></div></div>
-<div class="toc"><dl>
+<div class="toc"><dl class="toc">
<dt><span class="section"><a href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_for_libraries_with_separate_source_code.macros_controlling_shared_library_symbol_visibility">Macros
controlling shared library symbol visibility</a></span></dt>
<dt><span class="section"><a href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_for_libraries_with_separate_source_code.abi_fixing">ABI
@@ -4187,7 +5578,7 @@
The following macros and helper headers are of use to authors whose libraries
include separate source code, and are intended to address several issues:
</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
Controlling shared library symbol visibility
</li>
@@ -4203,7 +5594,7 @@
See <a href="http://svn.boost.org/trac/boost/wiki/Guidelines/Separate" target="_top">Guidelines
for Authors of Boost Libraries Containing Separate Source</a>
</p>
-<div class="section boost_config_boost_macro_reference_macros_for_libraries_with_separate_source_code_macros_controlling_shared_library_symbol_visibility">
+<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_config.boost_macro_reference.macros_for_libraries_with_separate_source_code.macros_controlling_shared_library_symbol_visibility"></a><a class="link" href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_for_libraries_with_separate_source_code.macros_controlling_shared_library_symbol_visibility" title="Macros controlling shared library symbol visibility">Macros
controlling shared library symbol visibility</a>
@@ -4358,7 +5749,7 @@
<span class="special">...</span>
</pre>
</div>
-<div class="section boost_config_boost_macro_reference_macros_for_libraries_with_separate_source_code_abi_fixing">
+<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_config.boost_macro_reference.macros_for_libraries_with_separate_source_code.abi_fixing"></a><a class="link" href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_for_libraries_with_separate_source_code.abi_fixing" title="ABI Fixing">ABI
Fixing</a>
@@ -4416,7 +5807,7 @@
to point to their own prefix/suffix headers if they so wish.
</p>
</div>
-<div class="section boost_config_boost_macro_reference_macros_for_libraries_with_separate_source_code_automatic_library_selection">
+<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_config.boost_macro_reference.macros_for_libraries_with_separate_source_code.automatic_library_selection"></a><a class="link" href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_for_libraries_with_separate_source_code.automatic_library_selection" title="Automatic library selection">Automatic
library selection</a>
@@ -4443,7 +5834,7 @@
</p>
<div class="variablelist">
<p class="title"><b></b></p>
-<dl>
+<dl class="variablelist">
<dt><span class="term"><code class="computeroutput"><span class="identifier">BOOST_LIB_NAME</span></code></span></dt>
<dd><p>
Required: An identifier containing the basename of the library, for
@@ -4510,7 +5901,7 @@
</tr></table>
<hr>
<div class="spirit-nav">
-<a accesskey="p" href="../index.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="guidelines_for_boost_authors.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
+<a accesskey="p" href="../index.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="build_config.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>
diff --git a/libs/config/doc/html/boost_config/build_config.html b/libs/config/doc/html/boost_config/build_config.html
new file mode 100644
index 0000000000..9be6b78ffa
--- /dev/null
+++ b/libs/config/doc/html/boost_config/build_config.html
@@ -0,0 +1,144 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Build Time Configuration</title>
+<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Boost.Config">
+<link rel="up" href="../index.html" title="Boost.Config">
+<link rel="prev" href="boost_macro_reference.html" title="Boost Macro Reference">
+<link rel="next" href="cstdint.html" title="Standard Integer Types">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
+<td align="center"><a href="../../../../../index.html">Home</a></td>
+<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
+<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
+<td align="center"><a href="../../../../../more/index.htm">More</a></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="boost_macro_reference.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="cstdint.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="boost_config.build_config"></a><a class="link" href="build_config.html" title="Build Time Configuration">Build Time Configuration</a>
+</h2></div></div></div>
+<p>
+ There are times when you want to control whether a build target gets built
+ or not, based on what features the compiler supports. For example, suppose
+ you have a test file "test_constexpr_128.cpp" which requires three
+ key features in order to build:
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+ The <code class="computeroutput"><span class="keyword">constexpr</span></code> keyword as detected
+ by BOOST_NO_CXX11_CONSTEXPR.
+ </li>
+<li class="listitem">
+ User defined literals, as detected by BOOST_NO_CXX11_USER_DEFINED_LITERALS.
+ </li>
+<li class="listitem">
+ The <code class="computeroutput"><span class="identifier">__int128</span></code> data type,
+ as detected by BOOST_HAS_INT128.
+ </li>
+</ul></div>
+<p>
+ Clearly we know that if these features are not supported by the compiler, then
+ there's simply no point in even trying to build the test program. The main
+ advantages being:
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+ Faster compile times - build configuration uses lightweight tests the results
+ of which are also cached.
+ </li>
+<li class="listitem">
+ Less noise in build output - there's no reason to be faced with pages of
+ template instantiation backtrace if we know the file can never compile
+ anyway.
+ </li>
+<li class="listitem">
+ Less noise in the online test results - the test will show up as blank,
+ rather than as a fail in the online test matrix.
+ </li>
+<li class="listitem">
+ A better experience for end users building all of Boost, if those libraries
+ which can not be built for the current target compiler are simply skipped,
+ rather than generating pages of error output.
+ </li>
+</ul></div>
+<p>
+ Returning to our example, the test case is probably executed in it's Jamfile
+ via the "run" rule:
+ </p>
+<pre class="programlisting"><span class="identifier">run</span> <span class="identifier">test_constexpr_128</span><span class="special">.</span><span class="identifier">cpp</span> <span class="special">;</span>
+</pre>
+<p>
+ We now need to make this target conditional on the necessary features. We can
+ do that by first importing the necessary rule at the start of the Jamfile:
+ </p>
+<pre class="programlisting"><span class="identifier">import</span> <span class="identifier">path</span><span class="special">-</span><span class="identifier">to</span><span class="special">-</span><span class="identifier">config</span><span class="special">-</span><span class="identifier">lib</span><span class="special">/</span><span class="identifier">checks</span><span class="special">/</span><span class="identifier">config</span> <span class="special">:</span> <span class="identifier">requires</span> <span class="special">;</span>
+</pre>
+<p>
+ Assuming that the test case is in the usual directory:
+ </p>
+<pre class="programlisting"><span class="identifier">libs</span><span class="special">/</span><span class="identifier">yourlib</span><span class="special">/</span><span class="identifier">test</span>
+</pre>
+<p>
+ then the import rule will actually be:
+ </p>
+<pre class="programlisting"><span class="identifier">import</span> <span class="special">../../</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">checks</span><span class="special">/</span><span class="identifier">config</span> <span class="special">:</span> <span class="identifier">requires</span> <span class="special">;</span>
+</pre>
+<p>
+ Then add a "requires" rule invocation to the requirements section
+ of the target:
+ </p>
+<pre class="programlisting"><span class="identifier">run</span> <span class="identifier">test_constexpr_128</span><span class="special">.</span><span class="identifier">cpp</span>
+ <span class="special">:</span> <span class="special">:</span> <span class="special">:</span> <span class="special">#</span><span class="identifier">requirements</span><span class="special">:</span>
+ <span class="special">[</span> <span class="identifier">requires</span> <span class="identifier">cxx11_constexpr</span> <span class="identifier">cxx11_user_defined_literals</span> <span class="identifier">int128</span> <span class="special">]</span> <span class="special">;</span>
+</pre>
+<p>
+ Notice that multiple arguments can be added to the requires rule, and that
+ these are always the same as the Boost.Config macro name, but in lower case
+ and with the <span class="emphasis"><em>boost_no_</em></span> or <span class="emphasis"><em>boost_has_</em></span>
+ prefix removed.
+ </p>
+<p>
+ When building the above example, you will see at the start of the build process
+ the results of the configuration, for example GCC in C++11 mode gives:
+ </p>
+<pre class="programlisting"><span class="special">-</span> <span class="identifier">Boost</span><span class="special">.</span><span class="identifier">Config</span> <span class="identifier">Feature</span> <span class="identifier">Check</span><span class="special">:</span> <span class="identifier">int128</span> <span class="special">:</span> <span class="identifier">yes</span>
+<span class="special">-</span> <span class="identifier">Boost</span><span class="special">.</span><span class="identifier">Config</span> <span class="identifier">Feature</span> <span class="identifier">Check</span><span class="special">:</span> <span class="identifier">cxx11_constexpr</span> <span class="special">:</span> <span class="identifier">yes</span>
+<span class="special">-</span> <span class="identifier">Boost</span><span class="special">.</span><span class="identifier">Config</span> <span class="identifier">Feature</span> <span class="identifier">Check</span><span class="special">:</span> <span class="identifier">cxx11_user_defined_literals</span> <span class="special">:</span> <span class="identifier">yes</span>
+</pre>
+<p>
+ That's all there is to this handy feature, should at any time you be unsure
+ of the feature-test names you can pass to the "requires" rule, then
+ search for the Boost.Config macro of interest in libs/config/checks/Jamfiles.v2,
+ and the name of the feature check will follow it.
+ </p>
+<p>
+ And finally, this feature is built around the Boost.Build built in rule <span class="emphasis"><em>check-target-builds</em></span>
+ which can be used to perform more generalized build-time feature testing. The
+ checks in this library are provided as a convenient shorthand without the need
+ for you to write the test cases yourself.
+ </p>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Beman Dawes, Vesa Karvonen, John
+ Maddock<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="boost_macro_reference.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="cstdint.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/libs/config/doc/html/boost_config/cstdint.html b/libs/config/doc/html/boost_config/cstdint.html
new file mode 100644
index 0000000000..1baa57529f
--- /dev/null
+++ b/libs/config/doc/html/boost_config/cstdint.html
@@ -0,0 +1,289 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Standard Integer Types</title>
+<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="../index.html" title="Boost.Config">
+<link rel="up" href="../index.html" title="Boost.Config">
+<link rel="prev" href="build_config.html" title="Build Time Configuration">
+<link rel="next" href="guidelines_for_boost_authors.html" title="Guidelines for Boost Authors">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
+<td align="center"><a href="../../../../../index.html">Home</a></td>
+<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
+<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
+<td align="center"><a href="../../../../../more/index.htm">More</a></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="build_config.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="guidelines_for_boost_authors.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="boost_config.cstdint"></a><a class="link" href="cstdint.html" title="Standard Integer Types">Standard Integer Types</a>
+</h2></div></div></div>
+<div class="toc"><dl class="toc">
+<dt><span class="section"><a href="cstdint.html#boost_config.cstdint.overview">Overview</a></span></dt>
+<dt><span class="section"><a href="cstdint.html#boost_config.cstdint.rationale">Rationale</a></span></dt>
+<dt><span class="section"><a href="cstdint.html#boost_config.cstdint.ce"><span class="emphasis"><em>Caveat emptor</em></span></a></span></dt>
+<dt><span class="section"><a href="cstdint.html#boost_config.cstdint.exact_width_integer_types">Exact-width
+ integer types</a></span></dt>
+<dt><span class="section"><a href="cstdint.html#boost_config.cstdint.minimum_width_integer_types">Minimum-width
+ integer types</a></span></dt>
+<dt><span class="section"><a href="cstdint.html#boost_config.cstdint.fastest_minimum_width_integer_types">Fastest
+ minimum-width integer types</a></span></dt>
+<dt><span class="section"><a href="cstdint.html#boost_config.cstdint.greatest_width_integer_types">Greatest-width
+ integer types</a></span></dt>
+<dt><span class="section"><a href="cstdint.html#boost_config.cstdint.integer_constant_macros">Integer
+ Constant Macros</a></span></dt>
+</dl></div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_config.cstdint.overview"></a><a class="link" href="cstdint.html#boost_config.cstdint.overview" title="Overview">Overview</a>
+</h3></div></div></div>
+<p>
+ The header <code class="literal"><a href="../../../../../boost/cstdint.hpp" target="_top">&lt;boost/cstdint.hpp&gt;</a></code>
+ provides the typedef's useful for writing portable code that requires certain
+ integer widths. All typedef's are in namespace boost.
+ </p>
+<p>
+ The specifications for these types are based on the ISO/IEC 9899:1999 C Language
+ standard header &lt;stdint.h&gt;. The 64-bit types required by the C standard
+ are <span class="emphasis"><em>not required</em></span> in the boost header, and may not be
+ supplied for all platforms/compilers, because <code class="literal">long long</code>
+ is not [yet] included in the C++ standard.
+ </p>
+<p>
+ See <a href="../../../test/cstdint_test.cpp" target="_top">cstdint_test.cpp</a> for
+ a test program.
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_config.cstdint.rationale"></a><a class="link" href="cstdint.html#boost_config.cstdint.rationale" title="Rationale">Rationale</a>
+</h3></div></div></div>
+<p>
+ The organization of the Boost.Integer headers and classes is designed to
+ take advantage of &lt;stdint.h&gt; types from the 1999 C standard without
+ causing undefined behavior in terms of the 1998 C++ standard. The header
+ &lt;boost/cstdint.hpp&gt; makes the standard integer types safely available
+ in namespace <code class="literal">boost</code> without placing any names in namespace
+ <code class="literal">std</code>. The intension is to complement rather than compete
+ with the C++ Standard Library. Should some future C++ standard include &lt;stdint.h&gt;
+ and &lt;cstdint&gt;, then &lt;boost/cstdint.hpp&gt; will continue to function,
+ but will become redundant and may be safely deprecated.
+ </p>
+<p>
+ Because these are boost headers, their names conform to boost header naming
+ conventions rather than C++ Standard Library header naming conventions.
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_config.cstdint.ce"></a><a class="link" href="cstdint.html#boost_config.cstdint.ce" title="Caveat emptor"><span class="emphasis"><em>Caveat emptor</em></span></a>
+</h3></div></div></div>
+<p>
+ As an implementation artifact, certain C &lt;limits.h&gt; macro names may
+ possibly be visible to users of &lt;boost/cstdint.hpp&gt;. Don't use these
+ macros; they are not part of any Boost-specified interface. Use <code class="literal">boost::integer_traits&lt;&gt;</code>
+ or <code class="literal">std::numeric_limits&lt;&gt;</code> instead.
+ </p>
+<p>
+ As another implementation artifact, certain C &lt;stdint.h&gt; typedef names
+ may possibly be visible in the global namespace to users of &lt;boost/cstdint.hpp&gt;.
+ Don't use these names, they are not part of any Boost-specified interface.
+ Use the respective names in namespace <code class="literal">boost</code> instead.
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_config.cstdint.exact_width_integer_types"></a><a class="link" href="cstdint.html#boost_config.cstdint.exact_width_integer_types" title="Exact-width integer types">Exact-width
+ integer types</a>
+</h3></div></div></div>
+<p>
+ The typedef <code class="literal">int#_t</code>, with # replaced by the width, designates
+ a signed integer type of exactly # bits; for example <code class="literal">int8_t</code>
+ denotes an 8-bit signed integer type. Similarly, the typedef <code class="literal">uint#_t</code>
+ designates an unsigned integer type of exactly # bits.
+ </p>
+<p>
+ These types are optional. However, if a platform supports integer types with
+ widths of 8, 16, 32, 64, or any combination thereof, then &lt;boost/cstdint.hpp&gt;
+ does provide the corresponding typedefs.
+ </p>
+<p>
+ The absence of int64_t and uint64_t is indicated by the macro <code class="computeroutput"><span class="identifier">BOOST_NO_INT64_T</span></code>.
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_config.cstdint.minimum_width_integer_types"></a><a class="link" href="cstdint.html#boost_config.cstdint.minimum_width_integer_types" title="Minimum-width integer types">Minimum-width
+ integer types</a>
+</h3></div></div></div>
+<p>
+ The typedef <code class="literal">int_least#_t</code>, with # replaced by the width,
+ designates a signed integer type with a width of at least # bits, such that
+ no signed integer type with lesser size has at least the specified width.
+ Thus, <code class="literal">int_least32_t</code> denotes the smallest signed integer
+ type with a width of at least 32 bits. Similarly, the typedef name <code class="literal">uint_least#_t</code>
+ designates an unsigned integer type with a width of at least # bits, such
+ that no unsigned integer type with lesser size has at least the specified
+ width.
+ </p>
+<p>
+ The following minimum-width integer types are provided for all platforms:
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+ <code class="literal">int_least8_t</code>
+ </li>
+<li class="listitem">
+ <code class="literal">int_least16_t</code>
+ </li>
+<li class="listitem">
+ <code class="literal">int_least32_t</code>
+ </li>
+<li class="listitem">
+ <code class="literal">uint_least8_t</code>
+ </li>
+<li class="listitem">
+ <code class="literal">uint_least16_t</code>
+ </li>
+<li class="listitem">
+ <code class="literal">uint_least32_t</code>
+ </li>
+</ul></div>
+<p>
+ The following types are available only if, after including &lt;boost/cstdint.hpp&gt;,
+ the macro BOOST_NO_INT64_T is not defined:
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+ <code class="literal">int_least64_t</code>
+ </li>
+<li class="listitem">
+ <code class="literal">uint_least64_t</code>
+ </li>
+</ul></div>
+<p>
+ All other minimum-width integer types are optional.
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_config.cstdint.fastest_minimum_width_integer_types"></a><a class="link" href="cstdint.html#boost_config.cstdint.fastest_minimum_width_integer_types" title="Fastest minimum-width integer types">Fastest
+ minimum-width integer types</a>
+</h3></div></div></div>
+<p>
+ The typedef <code class="literal">int_fast#_t</code>, with # replaced by the width,
+ designates the fastest signed integer type with a width of at least # bits.
+ Similarly, the typedef name <code class="literal">uint_fast#_t</code> designates the
+ fastest unsigned integer type with a width of at least # bits.
+ </p>
+<p>
+ There is no guarantee that these types are fastest for all purposes. In any
+ case, however, they satisfy the signedness and width requirements.
+ </p>
+<p>
+ The following fastest minimum-width integer types are provided for all platforms:
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+ <code class="literal">int_fast8_t</code>
+ </li>
+<li class="listitem">
+ <code class="literal">int_fast16_t</code>
+ </li>
+<li class="listitem">
+ <code class="literal">int_fast32_t</code>
+ </li>
+<li class="listitem">
+ <code class="literal">uint_fast8_t</code>
+ </li>
+<li class="listitem">
+ <code class="literal">uint_fast16_t</code>
+ </li>
+<li class="listitem">
+ <code class="literal">uint_fast32_t</code>
+ </li>
+</ul></div>
+<p>
+ The following types are available only if, after including &lt;boost/cstdint.hpp&gt;,
+ the macro BOOST_NO_INT64_T is not defined:
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+ <code class="literal">int_fast64_t</code>
+ </li>
+<li class="listitem">
+ <code class="literal">uint_fast64_t</code>
+ </li>
+</ul></div>
+<p>
+ All other fastest minimum-width integer types are optional.
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_config.cstdint.greatest_width_integer_types"></a><a class="link" href="cstdint.html#boost_config.cstdint.greatest_width_integer_types" title="Greatest-width integer types">Greatest-width
+ integer types</a>
+</h3></div></div></div>
+<p>
+ The typedef <code class="literal">intmax_t </code>designates a signed integer type
+ capable of representing any value of any signed integer type.
+ </p>
+<p>
+ The typedef <code class="literal">uintmax_t</code> designates an unsigned integer type
+ capable of representing any value of any unsigned integer type.
+ </p>
+<p>
+ These types are provided for all platforms.
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_config.cstdint.integer_constant_macros"></a><a class="link" href="cstdint.html#boost_config.cstdint.integer_constant_macros" title="Integer Constant Macros">Integer
+ Constant Macros</a>
+</h3></div></div></div>
+<p>
+ The following macros are always defined after inclusion of this header, these
+ allow integer constants of at least the specified width to be declared: INT8_C,
+ UINT8_C, INT16_C, UINT16_C, INT32_C, UINT32_C, INTMAX_C, UINTMAX_C.
+ </p>
+<p>
+ The macros INT64_C and UINT64_C are also defined if the the macro BOOST_NO_INT64_T
+ is not defined.
+ </p>
+<p>
+ The C99 macro __STDC_CONSTANT_MACROS is also defined as an artifact of the
+ implementation.
+ </p>
+<p>
+ For example:
+ </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">cstdint</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+
+<span class="comment">// Here the constant 0x1FFFFFFFF has the correct suffix applied:</span>
+<span class="keyword">static</span> <span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">uint64_t</span> <span class="identifier">c</span> <span class="special">=</span> <span class="identifier">INT64_C</span><span class="special">(</span><span class="number">0</span><span class="identifier">x1FFFFFFFF</span><span class="special">);</span>
+</pre>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2007 Beman Dawes, Vesa Karvonen, John
+ Maddock<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="build_config.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="guidelines_for_boost_authors.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
diff --git a/libs/config/doc/html/boost_config/guidelines_for_boost_authors.html b/libs/config/doc/html/boost_config/guidelines_for_boost_authors.html
index e461783e16..735b1f3725 100644
--- a/libs/config/doc/html/boost_config/guidelines_for_boost_authors.html
+++ b/libs/config/doc/html/boost_config/guidelines_for_boost_authors.html
@@ -3,10 +3,10 @@
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Guidelines for Boost Authors</title>
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="../index.html" title="Boost.Config">
<link rel="up" href="../index.html" title="Boost.Config">
-<link rel="prev" href="boost_macro_reference.html" title="Boost Macro Reference">
+<link rel="prev" href="cstdint.html" title="Standard Integer Types">
<link rel="next" href="rationale.html" title="Rationale">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -20,14 +20,14 @@
</tr></table>
<hr>
<div class="spirit-nav">
-<a accesskey="p" href="boost_macro_reference.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="rationale.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
+<a accesskey="p" href="cstdint.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="rationale.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
-<div class="section boost_config_guidelines_for_boost_authors">
+<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="boost_config.guidelines_for_boost_authors"></a><a class="link" href="guidelines_for_boost_authors.html" title="Guidelines for Boost Authors">Guidelines for
Boost Authors</a>
</h2></div></div></div>
-<div class="toc"><dl>
+<div class="toc"><dl class="toc">
<dt><span class="section"><a href="guidelines_for_boost_authors.html#boost_config.guidelines_for_boost_authors.warnings">Disabling
Compiler Warnings</a></span></dt>
<dt><span class="section"><a href="guidelines_for_boost_authors.html#boost_config.guidelines_for_boost_authors.adding_new_defect_macros">Adding
@@ -61,7 +61,7 @@
<p>
Note that:
</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
Boost library implementers are not required to "<code class="computeroutput"><span class="preprocessor">#include</span>
<span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>", and are not required in any
@@ -103,7 +103,7 @@
the majority of compilers, such as namespaces, exceptions, RTTI, or templates.
</li>
</ul></div>
-<div class="section boost_config_guidelines_for_boost_authors_warnings">
+<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.guidelines_for_boost_authors.warnings"></a><a class="link" href="guidelines_for_boost_authors.html#boost_config.guidelines_for_boost_authors.warnings" title="Disabling Compiler Warnings">Disabling
Compiler Warnings</a>
@@ -116,7 +116,7 @@
<p>
Note that:
</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
This header <span class="bold"><strong><span class="emphasis"><em>should never be included
by another Boost header</em></span></strong></span>, it should only ever be
@@ -182,7 +182,7 @@
</tbody>
</table></div>
</div>
-<div class="section boost_config_guidelines_for_boost_authors_adding_new_defect_macros">
+<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.guidelines_for_boost_authors.adding_new_defect_macros"></a><a class="link" href="guidelines_for_boost_authors.html#boost_config.guidelines_for_boost_authors.adding_new_defect_macros" title="Adding New Defect Macros">Adding
New Defect Macros</a>
@@ -233,7 +233,7 @@
Once the test code is in place in libs/config/test, updating the configuration
test system proceeds as:
</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
cd into <code class="computeroutput"><span class="identifier">libs</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">tools</span></code> and run <code class="computeroutput"><span class="identifier">bjam</span></code>.
This generates the <code class="computeroutput"><span class="special">.</span><span class="identifier">cpp</span></code>
@@ -266,7 +266,7 @@
<p>
Then you should:
</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
Define the defect macro in those config headers that require it.
</li>
@@ -285,7 +285,7 @@
</li>
</ul></div>
</div>
-<div class="section boost_config_guidelines_for_boost_authors_adding_new_feature_test_macros">
+<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.guidelines_for_boost_authors.adding_new_feature_test_macros"></a><a class="link" href="guidelines_for_boost_authors.html#boost_config.guidelines_for_boost_authors.adding_new_feature_test_macros" title="Adding New Feature Test Macros">Adding
New Feature Test Macros</a>
@@ -309,7 +309,7 @@
<code class="computeroutput"><span class="special">&lt;</span><span class="identifier">unistd</span><span class="special">.</span><span class="identifier">h</span><span class="special">&gt;</span></code>).
</p>
</div>
-<div class="section boost_config_guidelines_for_boost_authors_modifying_the_boost_configuration_headers">
+<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.guidelines_for_boost_authors.modifying_the_boost_configuration_headers"></a><a class="link" href="guidelines_for_boost_authors.html#boost_config.guidelines_for_boost_authors.modifying_the_boost_configuration_headers" title="Modifying the Boost Configuration Headers">Modifying
the Boost Configuration Headers</a>
@@ -371,7 +371,7 @@
</tr></table>
<hr>
<div class="spirit-nav">
-<a accesskey="p" href="boost_macro_reference.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="rationale.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
+<a accesskey="p" href="cstdint.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="rationale.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>
diff --git a/libs/config/doc/html/boost_config/rationale.html b/libs/config/doc/html/boost_config/rationale.html
index cf1758459e..8dc221fb4f 100644
--- a/libs/config/doc/html/boost_config/rationale.html
+++ b/libs/config/doc/html/boost_config/rationale.html
@@ -3,7 +3,7 @@
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Rationale</title>
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="../index.html" title="Boost.Config">
<link rel="up" href="../index.html" title="Boost.Config">
<link rel="prev" href="guidelines_for_boost_authors.html" title="Guidelines for Boost Authors">
@@ -22,11 +22,11 @@
<div class="spirit-nav">
<a accesskey="p" href="guidelines_for_boost_authors.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="acknowledgements.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
-<div class="section boost_config_rationale">
+<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="boost_config.rationale"></a><a class="link" href="rationale.html" title="Rationale">Rationale</a>
</h2></div></div></div>
-<div class="toc"><dl>
+<div class="toc"><dl class="toc">
<dt><span class="section"><a href="rationale.html#boost_config.rationale.the_problem">The problem</a></span></dt>
<dt><span class="section"><a href="rationale.html#boost_config.rationale.the_solution">The solution</a></span></dt>
</dl></div>
@@ -39,7 +39,7 @@
principles from the <a href="http://www.objectmentor.com/resources/articles/Principles_and_Patterns.pdf" target="_top">following
article</a>.
</p>
-<div class="section boost_config_rationale_the_problem">
+<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.rationale.the_problem"></a><a class="link" href="rationale.html#boost_config.rationale.the_problem" title="The problem">The problem</a>
</h3></div></div></div>
@@ -90,7 +90,7 @@
code must be provided.
</p>
</div>
-<div class="section boost_config_rationale_the_solution">
+<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.rationale.the_solution"></a><a class="link" href="rationale.html#boost_config.rationale.the_solution" title="The solution">The solution</a>
</h3></div></div></div>
diff --git a/libs/config/doc/html/index.html b/libs/config/doc/html/index.html
index 21c0b2f6a7..a128e667bc 100644
--- a/libs/config/doc/html/index.html
+++ b/libs/config/doc/html/index.html
@@ -3,7 +3,7 @@
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Boost.Config</title>
<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="index.html" title="Boost.Config">
<link rel="next" href="boost_config/boost_macro_reference.html" title="Boost Macro Reference">
</head>
@@ -39,7 +39,7 @@
</div>
<div class="toc">
<p><b>Table of Contents</b></p>
-<dl>
+<dl class="toc">
<dt><span class="section"><a href="index.html#boost_config.configuring_boost_for_your_platform">Configuring
Boost for Your Platform</a></span></dt>
<dd><dl>
@@ -68,6 +68,10 @@
that describe C++11 features not supported</a></span></dt>
<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_allow_use_of_c__11_features_with_c__03_compilers">Macros
that allow use of C++11 features with C++03 compilers</a></span></dt>
+<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_c__14_features_not_supported">Macros
+ that describe C++14 features not supported</a></span></dt>
+<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_allow_use_of_c__14_features_with_c__11_or_earlier_compilers">Macros
+ that allow use of C++14 features with C++11 or earlier compilers</a></span></dt>
<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.boost_helper_macros">Boost
Helper Macros</a></span></dt>
<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.boost_informational_macros">Boost
@@ -77,6 +81,23 @@
<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.macros_for_libraries_with_separate_source_code">Macros
for libraries with separate source code</a></span></dt>
</dl></dd>
+<dt><span class="section"><a href="boost_config/build_config.html">Build Time Configuration</a></span></dt>
+<dt><span class="section"><a href="boost_config/cstdint.html">Standard Integer Types</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="boost_config/cstdint.html#boost_config.cstdint.overview">Overview</a></span></dt>
+<dt><span class="section"><a href="boost_config/cstdint.html#boost_config.cstdint.rationale">Rationale</a></span></dt>
+<dt><span class="section"><a href="boost_config/cstdint.html#boost_config.cstdint.ce"><span class="emphasis"><em>Caveat emptor</em></span></a></span></dt>
+<dt><span class="section"><a href="boost_config/cstdint.html#boost_config.cstdint.exact_width_integer_types">Exact-width
+ integer types</a></span></dt>
+<dt><span class="section"><a href="boost_config/cstdint.html#boost_config.cstdint.minimum_width_integer_types">Minimum-width
+ integer types</a></span></dt>
+<dt><span class="section"><a href="boost_config/cstdint.html#boost_config.cstdint.fastest_minimum_width_integer_types">Fastest
+ minimum-width integer types</a></span></dt>
+<dt><span class="section"><a href="boost_config/cstdint.html#boost_config.cstdint.greatest_width_integer_types">Greatest-width
+ integer types</a></span></dt>
+<dt><span class="section"><a href="boost_config/cstdint.html#boost_config.cstdint.integer_constant_macros">Integer
+ Constant Macros</a></span></dt>
+</dl></dd>
<dt><span class="section"><a href="boost_config/guidelines_for_boost_authors.html">Guidelines for
Boost Authors</a></span></dt>
<dd><dl>
@@ -97,12 +118,12 @@
<dt><span class="section"><a href="boost_config/acknowledgements.html">Acknowledgements</a></span></dt>
</dl>
</div>
-<div class="section boost_config_configuring_boost_for_your_platform">
+<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="boost_config.configuring_boost_for_your_platform"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform" title="Configuring Boost for Your Platform">Configuring
Boost for Your Platform</a>
</h2></div></div></div>
-<div class="toc"><dl>
+<div class="toc"><dl class="toc">
<dt><span class="section"><a href="index.html#boost_config.configuring_boost_for_your_platform.using_the_default_boost_configuration">Using
the default boost configuration</a></span></dt>
<dt><span class="section"><a href="index.html#boost_config.configuring_boost_for_your_platform.the__boost_config_hpp__header">The
@@ -116,7 +137,7 @@
<dt><span class="section"><a href="index.html#boost_config.configuring_boost_for_your_platform.testing_the_boost_configuration">Testing
the boost configuration</a></span></dt>
</dl></div>
-<div class="section boost_config_configuring_boost_for_your_platform_using_the_default_boost_configuration">
+<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.configuring_boost_for_your_platform.using_the_default_boost_configuration"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.using_the_default_boost_configuration" title="Using the default boost configuration">Using
the default boost configuration</a>
@@ -140,7 +161,7 @@
and submitting a support request.
</p>
</div>
-<div class="section boost_config_configuring_boost_for_your_platform_the__boost_config_hpp__header">
+<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.configuring_boost_for_your_platform.the__boost_config_hpp__header"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.the__boost_config_hpp__header" title="The &lt;boost/config.hpp&gt; header">The
&lt;boost/config.hpp&gt; header</a>
@@ -171,7 +192,7 @@
developers list.
</p>
</div>
-<div class="section boost_config_configuring_boost_for_your_platform_using_the_configure_script">
+<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.configuring_boost_for_your_platform.using_the_configure_script"></a><a name="config_config_script"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.using_the_configure_script" title="Using the configure script">Using
the configure script</a>
@@ -292,7 +313,7 @@
(located under <span class="emphasis"><em>&lt;boost-root&gt;</em></span><code class="computeroutput"><span class="special">/</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span></code>).
There are two ways you can use this header:
</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
<span class="bold"><strong>Option 1:</strong></span> copy the header into <span class="emphasis"><em>&lt;boost-root&gt;</em></span><code class="computeroutput"><span class="special">/</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span></code> so that it replaces the default user.hpp
provided by boost. This option allows only one configure-generated setup;
@@ -313,7 +334,7 @@
</li>
</ul></div>
</div>
-<div class="section boost_config_configuring_boost_for_your_platform_user_settable_options">
+<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.configuring_boost_for_your_platform.user_settable_options"></a><a name="config_user_settable"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.user_settable_options" title="User settable options">User
settable options</a>
@@ -665,6 +686,22 @@
<tr>
<td>
<p>
+ <code class="computeroutput"><span class="identifier">BOOST_LIB_BUILDID</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ If you built Boost using the <code class="computeroutput"><span class="special">--</span><span class="identifier">buildid</span></code> option then set this
+ macro to the same value as you passed to bjam. For example if you
+ built using <code class="computeroutput"><span class="identifier">bjam</span> <span class="identifier">address</span><span class="special">-</span><span class="identifier">model</span><span class="special">=</span><span class="number">64</span> <span class="special">--</span><span class="identifier">buildid</span><span class="special">=</span><span class="identifier">amd64</span></code> then compile your code
+ with <code class="computeroutput"><span class="special">-</span><span class="identifier">DBOOST_LIB_BUILDID</span><span class="special">=</span><span class="identifier">amd64</span></code>
+ to ensure the correct libraries are selected at link time.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
<code class="computeroutput"><span class="identifier">BOOST_LIB_TOOLSET</span></code>
</p>
</td>
@@ -679,12 +716,12 @@
</tbody>
</table></div>
</div>
-<div class="section boost_config_configuring_boost_for_your_platform_advanced_configuration_usage">
+<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.configuring_boost_for_your_platform.advanced_configuration_usage"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.advanced_configuration_usage" title="Advanced configuration usage">Advanced
configuration usage</a>
</h3></div></div></div>
-<div class="toc"><dl>
+<div class="toc"><dl class="toc">
<dt><span class="section"><a href="index.html#boost_config.configuring_boost_for_your_platform.advanced_configuration_usage.example_1__creating_our_own_frozen_configuration">Example
1: creating our own frozen configuration</a></span></dt>
<dt><span class="section"><a href="index.html#boost_config.configuring_boost_for_your_platform.advanced_configuration_usage.example_2__skipping_files_that_you_don_t_need">Example
@@ -723,7 +760,7 @@
<p>
The following usage examples represent just a few of the possibilities:
</p>
-<div class="section boost_config_configuring_boost_for_your_platform_advanced_configuration_usage_example_1__creating_our_own_frozen_configuration">
+<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_config.configuring_boost_for_your_platform.advanced_configuration_usage.example_1__creating_our_own_frozen_configuration"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.advanced_configuration_usage.example_1__creating_our_own_frozen_configuration" title="Example 1: creating our own frozen configuration">Example
1: creating our own frozen configuration</a>
@@ -755,7 +792,7 @@
yet supported by boost.
</p>
</div>
-<div class="section boost_config_configuring_boost_for_your_platform_advanced_configuration_usage_example_2__skipping_files_that_you_don_t_need">
+<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_config.configuring_boost_for_your_platform.advanced_configuration_usage.example_2__skipping_files_that_you_don_t_need"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.advanced_configuration_usage.example_2__skipping_files_that_you_don_t_need" title="Example 2: skipping files that you don't need">Example
2: skipping files that you don't need</a>
@@ -774,7 +811,7 @@
a dependency on two boost headers.
</p>
</div>
-<div class="section boost_config_configuring_boost_for_your_platform_advanced_configuration_usage_example_3__using_configure_script_to_freeze_the_boost_configuration">
+<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_config.configuring_boost_for_your_platform.advanced_configuration_usage.example_3__using_configure_script_to_freeze_the_boost_configuration"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.advanced_configuration_usage.example_3__using_configure_script_to_freeze_the_boost_configuration" title="Example 3: using configure script to freeze the boost configuration">Example
3: using configure script to freeze the boost configuration</a>
@@ -787,7 +824,7 @@
</p>
</div>
</div>
-<div class="section boost_config_configuring_boost_for_your_platform_testing_the_boost_configuration">
+<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.configuring_boost_for_your_platform.testing_the_boost_configuration"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.testing_the_boost_configuration" title="Testing the boost configuration">Testing
the boost configuration</a>
@@ -826,10 +863,10 @@
<p>
Prints out a detailed description of your compiler/standard library/platform
setup, plus your current boost configuration. The information provided
- by this program useful in setting up the boost configuration files.
- If you report that boost is incorrectly configured for your compiler/library/platform
- then please include the output from this program when reporting
- the changes required.
+ by this program is useful in setting up the boost configuration
+ files. If you report that boost is incorrectly configured for your
+ compiler/library/platform then please include the output from this
+ program when reporting the changes required.
</p>
</td>
</tr>
@@ -951,7 +988,7 @@
</div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
-<td align="left"><p><small>Last revised: April 22, 2012 at 10:30:25 GMT</small></p></td>
+<td align="left"><p><small>Last revised: October 21, 2014 at 11:37:59 GMT</small></p></td>
<td align="right"><div class="copyright-footer"></div></td>
</tr></table>
<hr>
diff --git a/libs/config/doc/macro_reference.qbk b/libs/config/doc/macro_reference.qbk
index bb27c64ae3..cd652ea393 100644
--- a/libs/config/doc/macro_reference.qbk
+++ b/libs/config/doc/macro_reference.qbk
@@ -28,7 +28,7 @@ compiler's conformance with the 2003 standard.
[[`BOOST_BCB_PARTIAL_SPECIALIZATION_BUG`][Compiler][
-The compiler exibits certain partial specialisation bug - probably Borland
+The compiler exhibits certain partial specialisation bug - probably Borland
C++ Builder specific.
]]
[[`BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL`][Compiler][
@@ -105,10 +105,6 @@ 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.
@@ -368,6 +364,9 @@ 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_INT128`][Compiler][
+The compiler has `__int128` and `unsigned __int128` as native types which are distinct
+from all the regular C++ integer types.]]
[[`BOOST_HAS_LOG1P`][Platform][
The platform has the functions `log1p`, `log1pf` and `log1pl` in `<math.h>`.
]]
@@ -394,6 +393,19 @@ See [@../../../../boost/operators.hpp `<boost/operators.hpp>`] for example.
The standard library has a partially conforming `std::allocator` class, but
without any of the member templates.
]]
+[[`BOOST_HAS_PRAGMA_ONCE`][Compiler][
+The compiler recognizes the `#pragma once` directive which tells that the
+containing header should be included only once while preprocessing the
+current translation unit. The pragma may improve compile times of large projects
+with some compilers.
+]]
+[[`BOOST_HAS_PRAGMA_DETECT_MISMATCH`][Compiler][
+The compiler recognizes the `#pragma detect_mismatch("name", "value")` directive which tells that the
+link stage should be terminated with error if values for provided `"name"` missmatch.
+This pragma may be a help in preventing ODR violations and ensuring that different modules
+are compiled with same flags.
+]]
+
[[`BOOST_HAS_PTHREAD_DELAY_NP`][Platform][
The platform has the POSIX API `pthread_delay_np`.
]]
@@ -426,7 +438,9 @@ 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>`.
+The library has a TR1 conforming version of `<array>`. This macro is only guaranteed
+to be defined after including one of the headers from Boost.TR1. Further this macro
+is now deprecated in favour of BOOST_NO_CXX11_HDR_ARRAY.
]]
[[`BOOST_HAS_TR1_COMPLEX_OVERLOADS`][Standard library][
The library has a version of `<complex>` that supports passing scalars to the
@@ -437,46 +451,74 @@ 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>`.
+The library has TR1 conforming reference wrappers in `<functional>`. This macro is only guaranteed
+to be defined after including one of the headers from Boost.TR1. Further this macro
+is now deprecated in favour of BOOST_NO_CXX11_HDR_FUNCTIONAL.
]]
[[`BOOST_HAS_TR1_RESULT_OF`][Standard library][
-The library has a TR1 conforming result_of template in `<functional>`.
+The library has a TR1 conforming result_of template in `<functional>`. This macro is only guaranteed
+to be defined after including one of the headers from Boost.TR1. Further this macro
+is now deprecated in favour of BOOST_NO_CXX11_HDR_FUNCTIONAL.
]]
[[`BOOST_HAS_TR1_MEM_FN`][Standard library][
-The library has a TR1 conforming mem_fn function template in `<functional>`.
+The library has a TR1 conforming mem_fn function template in `<functional>`. This macro is only guaranteed
+to be defined after including one of the headers from Boost.TR1. Further this macro
+is now deprecated in favour of BOOST_NO_CXX11_HDR_FUNCTIONAL.
]]
[[`BOOST_HAS_TR1_BIND`][Standard library][
-The library has a TR1 conforming bind function template in `<functional>`.
+The library has a TR1 conforming bind function template in `<functional>`. This macro is only guaranteed
+to be defined after including one of the headers from Boost.TR1. Further this macro
+is now deprecated in favour of BOOST_NO_CXX11_HDR_FUNCTIONAL.
]]
[[`BOOST_HAS_TR1_FUNCTION`][Standard library][
-The library has a TR1 conforming function class template in `<functional>`.
+The library has a TR1 conforming function class template in `<functional>`. This macro is only guaranteed
+to be defined after including one of the headers from Boost.TR1. Further this macro
+is now deprecated in favour of BOOST_NO_CXX11_HDR_FUNCTIONAL.
]]
[[`BOOST_HAS_TR1_HASH`][Standard library][
-The library has a TR1 conforming hash function template in `<functional>`.
+The library has a TR1 conforming hash function template in `<functional>`. This macro is only guaranteed
+to be defined after including one of the headers from Boost.TR1. Further this macro
+is now deprecated in favour of BOOST_NO_CXX11_HDR_FUNCTIONAL.
]]
[[`BOOST_HAS_TR1_SHARED_PTR`][Standard library][
-The library has a TR1 conforming `shared_ptr` class template in `<memory>`.
+The library has a TR1 conforming `shared_ptr` class template in `<memory>`. This macro is only guaranteed
+to be defined after including one of the headers from Boost.TR1. Further this macro
+is now deprecated in favour of BOOST_NO_CXX11_SMART_PTR.
]]
[[`BOOST_HAS_TR1_RANDOM`][Standard library][
-The library has a TR1 conforming version of `<random>`.
+The library has a TR1 conforming version of `<random>`. This macro is only guaranteed
+to be defined after including one of the headers from Boost.TR1. Further this macro
+is now deprecated in favour of BOOST_NO_CXX11_HDR_RANDOM.
]]
[[`BOOST_HAS_TR1_REGEX`][Standard library][
-The library has a TR1 conforming version of `<regex>`.
+The library has a TR1 conforming version of `<regex>`. This macro is only guaranteed
+to be defined after including one of the headers from Boost.TR1. Further this macro
+is now deprecated in favour of BOOST_NO_CXX11_HDR_REGEX.
]]
[[`BOOST_HAS_TR1_TUPLE`][Standard library][
-The library has a TR1 conforming version of `<tuple>`.
+The library has a TR1 conforming version of `<tuple>`. This macro is only guaranteed
+to be defined after including one of the headers from Boost.TR1. Further this macro
+is now deprecated in favour of BOOST_NO_CXX11_HDR_TUPLE.
]]
[[`BOOST_HAS_TR1_TYPE_TRAITS`][Standard library][
-The library has a TR1 conforming version of `<type_traits>`.
+The library has a TR1 conforming version of `<type_traits>`. This macro is only guaranteed
+to be defined after including one of the headers from Boost.TR1. Further this macro
+is now deprecated in favour of BOOST_NO_CXX11_HDR_TYPE_TRAITS.
]]
[[`BOOST_HAS_TR1_UTILITY`][Standard library][
-The library has the TR1 additions to `<utility>` (tuple interface to `std::pair`).
+The library has the TR1 additions to `<utility>` (tuple interface to `std::pair`). This macro is only guaranteed
+to be defined after including one of the headers from Boost.TR1. Further this macro
+is now deprecated in favour of BOOST_NO_CXX11_HDR_TUPLE.
]]
[[`BOOST_HAS_TR1_UNORDERED_MAP`][Standard library][
-The library has a TR1 conforming version of `<unordered_map>`.
+The library has a TR1 conforming version of `<unordered_map>`. This macro is only guaranteed
+to be defined after including one of the headers from Boost.TR1. Further this macro
+is now deprecated in favour of BOOST_NO_CXX11_HDR_UNORDERED_MAP.
]]
[[`BOOST_HAS_TR1_UNORDERED_SET`][Standard library][
-The library has a TR1 conforming version of `<unordered_set>`.
+The library has a TR1 conforming version of `<unordered_set>`. This macro is only guaranteed
+to be defined after including one of the headers from Boost.TR1. Further this macro
+is now deprecated in favour of BOOST_NO_CXX11_HDR_UNORDERED_SET.
]]
[[`BOOST_HAS_TR1`][Standard library][
Implies all the other `BOOST_HAS_TR1_*` macros should be set.
@@ -543,110 +585,134 @@ that are not yet supported by a particular compiler or library.
[table
[[Macro ][Description ]]
+[[`BOOST_NO_CXX11_ADDRESSOF`][The standard library header <memory> has no working std::addressof.]]
+[[`BOOST_NO_CXX11_ALIGNAS`][The compiler does not support the `alignas` keyword.]]
[[`BOOST_NO_CXX11_ALLOCATOR`][The standard library does not provide a C++11 version of `std::allocator` in <memory>.]]
-[[`BOOST_NO_CXX11_ATOMIC_SP`][The standard library <memory> does not support atomic smart pointer operations.]]
-[[`BOOST_NO_CXX11_HDR_ARRAY`][The standard library does not provide header <array>.]]
-[[`BOOST_NO_CXX11_HDR_CHRONO`][The standard library does not provide header <chrono>.]]
-[[`BOOST_NO_CXX11_HDR_CODECVT`][The standard library does not provide header <codecvt>.]]
-[[`BOOST_NO_CXX11_HDR_CONDITION_VARIABLE`][The standard library does not provide header <condition_variable>.]]
-[[`BOOST_NO_CXX11_HDR_FORWARD_LIST`][The standard library does not provide header <forward_list>.]]
-[[`BOOST_NO_CXX11_HDR_FUNCTIONAL`][The standard library does not provide a C++11 compatible version of <functional>.]]
-[[`BOOST_NO_CXX11_HDR_FUTURE`][The standard library does not provide header <future>.]]
-[[`BOOST_NO_CXX11_HDR_INITIALIZER_LIST`][The standard library does not provide header <initializer_list>.]]
-[[`BOOST_NO_CXX11_HDR_MUTEX`][The standard library does not provide header <mutex>.]]
-[[`BOOST_NO_CXX11_HDR_RANDOM`][The standard library does not provide header <random>.]]
-[[`BOOST_NO_CXX11_HDR_RATIO`][The standard library does not provide header <ratio>.]]
-[[`BOOST_NO_CXX11_HDR_REGEX`][The standard library does not provide header <regex>.]]
-[[`BOOST_NO_CXX11_HDR_SYSTEM_ERROR`][The standard library does not provide header <system_error>.]]
-[[`BOOST_NO_CXX11_HDR_THREAD`][The standard library does not provide header <thread>.]]
-[[`BOOST_NO_CXX11_HDR_TUPLE`][The standard library does not provide header <tuple>.]]
-[[`BOOST_NO_CXX11_HDR_TYPEINDEX`][The standard library does not provide header <typeindex>.]]
-[[`BOOST_NO_CXX11_HDR_TYPE_TRAITS`][The standard library does not provide header <type_traits>.]]
-[[`BOOST_NO_CXX11_HDR_UNORDERED_MAP`][The standard library does not provide header <unordered_map>.]]
-[[`BOOST_NO_CXX11_HDR_UNORDERED_SET`][The standard library does not provide header <unordered_set>.]]
-[[`BOOST_NO_CXX11_SMART_PTR`][The standard library header <memory> has no shared_ptr and unique_ptr.]]
-
+[[`BOOST_NO_CXX11_ATOMIC_SMART_PTR`][The standard library <memory> does not support atomic smart pointer operations.]]
[[`BOOST_NO_CXX11_AUTO_DECLARATIONS`][The compiler does not support
type deduction for variables declared with the `auto` keyword (`auto var = ...;`).
-]]
+]]
[[`BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS`][The compiler does not support
type deduction for multiple variables declared with the `auto` keyword (`auto var = ..., *ptr = ...;`).
-]]
+]]
[[`BOOST_NO_CXX11_CHAR16_T`][The compiler does not support
type `char16_t`.
-]]
+]]
[[`BOOST_NO_CXX11_CHAR32_T`][The compiler does not support
type `char32_t`.
-]]
-[[`BOOST_NO_CXX11_TEMPLATE_ALIASES`][The compiler does not support template aliases.
-]]
+]]
[[`BOOST_NO_CXX11_CONSTEXPR`][The compiler does not support
`constexpr`.
-]]
+]]
[[`BOOST_NO_CXX11_DECLTYPE`][The compiler does not support
`decltype`.
-]]
+]]
[[`BOOST_NO_CXX11_DECLTYPE_N3276`][The compiler does not support the extension to
`decltype` described in [@http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3276.pdf N3276],
accepted in Madrid, March 2011.
-]]
-[[`BOOST_NO_CXX11_DEFAULTED_FUNCTIONS`][The compiler does not support
-defaulted (`= default`) functions.
-]]
-[[`BOOST_NO_CXX11_DELETED_FUNCTIONS`][The compiler does not support
-deleted (`= delete`) functions.
-]]
+]]
+[[`BOOST_NO_CXX11_DELETED_FUNCTIONS`][The compiler does not support
+deleted (`= delete`) functions.
+]]
+[[`BOOST_NO_CXX11_DEFAULTED_FUNCTIONS`][The compiler does not support
+defaulted (`= default`) functions.
+]]
[[`BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS`][The compiler does not support
-explicit conversion operators (`explicit operator T()`).
+explicit conversion operators (`explicit operator T()`).
]]
[[`BOOST_NO_CXX11_EXTERN_TEMPLATE`][The compiler does not support
explicit instantiation forward declarations for templates (`extern template ...`).
]]
+[[`BOOST_NO_CXX11_FINAL`][The compiler does not support the C++ class-virt-specifier final.
+]]
+[[`BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS`][The compiler does not support
+expanding a variadic template parameter pack into a template containing one or more
+fixed arguments]]
[[`BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS`][The compiler does not support
default template arguments for function templates.
]]
+[[`BOOST_NO_CXX11_HDR_ATOMIC`][The standard library does not provide header <atomic>.]]
+[[`BOOST_NO_CXX11_HDR_ARRAY`][The standard library does not provide header <array>.]]
+[[`BOOST_NO_CXX11_HDR_CHRONO`][The standard library does not provide header <chrono>.]]
+[[`BOOST_NO_CXX11_HDR_CODECVT`][The standard library does not provide header <codecvt>.]]
+[[`BOOST_NO_CXX11_HDR_CONDITION_VARIABLE`][The standard library does not provide header <condition_variable>.]]
+[[`BOOST_NO_CXX11_HDR_FORWARD_LIST`][The standard library does not provide header <forward_list>.]]
+[[`BOOST_NO_CXX11_HDR_FUNCTIONAL`][The standard library does not provide a C++11 compatible version of <functional>.]]
+[[`BOOST_NO_CXX11_HDR_FUTURE`][The standard library does not provide header <future>.]]
+[[`BOOST_NO_CXX11_HDR_INITIALIZER_LIST`][The standard library does not provide header <initializer_list>.]]
+[[`BOOST_NO_CXX11_HDR_MUTEX`][The standard library does not provide header <mutex>.]]
+[[`BOOST_NO_CXX11_HDR_RANDOM`][The standard library does not provide header <random>.]]
+[[`BOOST_NO_CXX11_HDR_RATIO`][The standard library does not provide header <ratio>.]]
+[[`BOOST_NO_CXX11_HDR_REGEX`][The standard library does not provide header <regex>.]]
+[[`BOOST_NO_CXX11_HDR_SYSTEM_ERROR`][The standard library does not provide header <system_error>.]]
+[[`BOOST_NO_CXX11_HDR_THREAD`][The standard library does not provide header <thread>.]]
+[[`BOOST_NO_CXX11_HDR_TUPLE`][The standard library does not provide header <tuple>.]]
+[[`BOOST_NO_CXX11_HDR_TYPEINDEX`][The standard library does not provide header <typeindex>.]]
+[[`BOOST_NO_CXX11_HDR_TYPE_TRAITS`][The standard library does not provide header <type_traits>.]]
+[[`BOOST_NO_CXX11_HDR_UNORDERED_MAP`][The standard library does not provide header <unordered_map>.]]
+[[`BOOST_NO_CXX11_HDR_UNORDERED_SET`][The standard library does not provide header <unordered_set>.]]
+
+[[`BOOST_NO_CXX11_INLINE_NAMESPACES`][The compiler does not support inline namespaces.]]
[[`BOOST_NO_CXX11_LAMBDAS`][The compiler does not support Lambdas.
-]]
+]]
[[`BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS`][The compiler does not allow to
pass local classes as template parameters (this macro intentionally does not
control passing of unnamed types as template parameters, see also
[@http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2657.htm N2657]).
]]
-[[`BOOST_NO_LONG_LONG`][The compiler does not support `long long`.
-]]
+[[`BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS`][The compiler does not support
+defaulted (`= default`) functions in access control sections other than `public`. Public defaulted
+functions may still be supported, as indicated by `BOOST_NO_CXX11_DEFAULTED_FUNCTIONS`. Some
+compilers implementing an early draft of the C++11 standard (in particular, incorporating
+[@http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#906 DR906]) are susceptible to this problem.
+]]
[[`BOOST_NO_CXX11_NOEXCEPT`][The compiler does not support `noexcept`.
-]]
+]]
[[`BOOST_NO_CXX11_NULLPTR`][The compiler does not support `nullptr`.
-]]
+]]
[[`BOOST_NO_CXX11_RANGE_BASED_FOR`][The compiler does not support
range-based for statements.
-]]
+]]
[[`BOOST_NO_CXX11_RAW_LITERALS`][The compiler does not support
raw string literals.
-]]
+]]
+[[`BOOST_NO_CXX11_REF_QUALIFIERS`][The compiler does not support
+ref-qualifiers on member functions as described in
+[@http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2439.htm N2439].
+]]
[[`BOOST_NO_CXX11_RVALUE_REFERENCES`][The compiler does not support
r-value references.
-]]
+]]
[[`BOOST_NO_CXX11_SCOPED_ENUMS`][The compiler does not support
scoped enumerations (`enum class`).
-]]
+]]
+[[`BOOST_NO_CXX11_SMART_PTR`][The standard library header <memory> has no shared_ptr and unique_ptr.]]
[[`BOOST_NO_CXX11_STATIC_ASSERT`][The compiler does not support
`static_assert`.
-]]
-[[`BOOST_NO_CXX11_STD_UNORDERD`][The standard library does not support
+]]
+[[`BOOST_NO_CXX11_STD_ALIGN`][The standard library header <memory> has no working std::align.]]
+[[`BOOST_NO_CXX11_STD_UNORDERED`][The standard library does not support
<unordered_map> and <unordered_set>.
-]]
+]]
+[[`BOOST_NO_CXX11_TEMPLATE_ALIASES`][The compiler does not support template aliases.
+]]
+[[`BOOST_NO_CXX11_TRAILING_RESULT_TYPES`][The compiler does not support the new function result type
+specification syntax (e.g. `auto foo(T) -> T;`).]]
[[`BOOST_NO_CXX11_UNICODE_LITERALS`][The compiler does not support
Unicode (`u8`, `u`, `U`) literals.
-]]
+]]
[[`BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX`][The compiler does not support
the [@http://en.wikipedia.org/wiki/C%2B%2B0x#Uniform_initialization C++11 Unified Initialization Syntax].
]]
+[[`BOOST_NO_CXX11_USER_DEFINED_LITERALS`][The compiler does not support user defined literals.
+]]
[[`BOOST_NO_CXX11_VARIADIC_TEMPLATES`][The compiler does not support
-variadic templates.
+variadic templates.
]]
[[`BOOST_NO_CXX11_VARIADIC_MACROS`][The compiler does not support
-variadic macros.
+variadic macros.
+]]
+[[`BOOST_NO_LONG_LONG`][The compiler does not support `long long`.
]]
]
@@ -662,6 +728,21 @@ provide compliant C++11 support.
[table
[[Macro ][ Description ]]
+[[`BOOST_ALIGNMENT(X)`, `BOOST_NO_ALIGNMENT`][
+Some compilers don't support the `alignas` keyword but provide other means to specify alignment
+(usually, through compiler-specific attributes). The macro `BOOST_ALIGNMENT(X)` will expand to the `alignas(X)`
+keyword if the compiler supports it or to some compiler-specific attribute to achieve the specified alignment.
+If no such compiler-specific attribute is known then `BOOST_ALIGNMENT(X)` will expand to nothing and
+`BOOST_NO_ALIGNMENT` will be defined. Unlike native `alignas`, `X` must always be a compile-time integer constant.
+The macro can be used to specify alignment of types and data:
+``
+ struct BOOST_ALIGNMENT(16) my_data
+ {
+ char c[16];
+ };
+ BOOST_ALIGNMENT(8) int arr[32];
+``
+]]
[[`BOOST_CONSTEXPR`][
Some compilers don't support the use of `constexpr`. This macro expands to nothing on those compilers, and `constexpr`
elsewhere. For example, when defining a constexpr function or constructor replace:
@@ -694,30 +775,142 @@ with:
BOOST_STATIC_CONSTEXPR UIntType xor_mask = a;
``
]]
+[[`BOOST_DEFAULTED_FUNCTION(fun, body)`][
+This macro is intended to be used within a class definition in order to declare a default implementation of function `fun`.
+For the compilers that do not support C++11 defaulted functions the macro will expand into an inline function definition
+with the `body` implementation. For example:
+``
+ struct my_struct
+ {
+ BOOST_DEFAULTED_FUNCTION(my_struct(), {})
+ };
+``
+is equivalent to:
+``
+ struct my_struct
+ {
+ my_struct() = default;
+ };
+``
+or:
+``
+ struct my_struct
+ {
+ my_struct() {}
+ };
+``
+]]
+[[`BOOST_DELETED_FUNCTION(fun)`][
+This macro is intended to be used within a class definition in order to declare a deleted function `fun`.
+For the compilers that do not support C++11 deleted functions the macro will expand into a private function
+declaration with no definition. Since the macro may change the access mode, it is recommended to use this macro
+at the end of the class definition. For example:
+``
+ struct noncopyable
+ {
+ BOOST_DELETED_FUNCTION(noncopyable(noncopyable const&))
+ BOOST_DELETED_FUNCTION(noncopyable& operator= (noncopyable const&))
+ };
+``
+is equivalent to:
+``
+ struct noncopyable
+ {
+ noncopyable(noncopyable const&) = delete;
+ noncopyable& operator= (noncopyable const&) = delete;
+ };
+``
+or:
+``
+ struct noncopyable
+ {
+ private:
+ noncopyable(noncopyable const&);
+ noncopyable& operator= (noncopyable const&);
+ };
+``
+]]
[[
``
BOOST_NOEXCEPT
+ BOOST_NOEXCEPT_OR_NOTHROW
BOOST_NOEXCEPT_IF(Predicate)
BOOST_NOEXCEPT_EXPR(Expression)
``
][
-If `BOOST_NO_NOEXCEPT` is defined (i.e. C++03 compliant compilers) these macros are defined as:
+If `BOOST_NO_CXX11_NOEXCEPT` is defined (i.e. C++03 compliant compilers) these macros are defined as:
[:
``
#define BOOST_NOEXCEPT
+ #define BOOST_NOEXCEPT_OR_NOTHROW throw()
#define BOOST_NOEXCEPT_IF(Predicate)
#define BOOST_NOEXCEPT_EXPR(Expression) false
``
]
-If `BOOST_NO_NOEXCEPT` is not defined (i.e. C++11 compliant compilers) they are defined as:
+If `BOOST_NO_CXX11_NOEXCEPT` is not defined (i.e. C++11 compliant compilers) they are defined as:
[:
``
#define BOOST_NOEXCEPT noexcept
+ #define BOOST_NOEXCEPT_OR_NOTHROW noexcept
#define BOOST_NOEXCEPT_IF(Predicate) noexcept((Predicate))
#define BOOST_NOEXCEPT_EXPR(Expression) noexcept((Expression))
``
]
]]
+[[`BOOST_MSVC_ENABLE_2012_NOV_CTP`][
+For Microsoft Visual C++ 2012, enable the C++11 features supplied by the
+November 2012 Community Technology Preview. These features are not automatically
+enabled because the CTP is non-supported alpha code that is not recommended
+for production use. This macro must be defined before including any Boost headers,
+and must be defined for all translation units in the program, including Boost library builds.
+This macro will no longer have any effect once an official Microsoft
+release supports the CTP features.
+]]
+]
+
+[endsect]
+
+[section Macros that describe C++14 features not supported]
+
+The following macros describe features in the 2014 ISO C++ standard, formerly known as C++0y,
+that are not yet supported by a particular compiler or library.
+
+[table
+[[Macro ][Description ]]
+[[`BOOST_NO_CXX14_AGGREGATE_NSDMI`][The compiler does not support member initializer for aggregates as in the following example:
+[:
+``
+struct Foo
+{
+ int x, y = 42;
+};
+
+Foo foo = { 0 };
+``
+]
+]]
+[[`BOOST_NO_CXX14_BINARY_LITERALS`][The compiler does not binary literals (e.g. `0b1010`).]]
+[[`BOOST_NO_CXX14_CONSTEXPR`][The compiler does not support relaxed `constexpr`.]]
+[[`BOOST_NO_CXX14_DECLTYPE_AUTO`][The compiler does not support `decltype(auto)`.]]
+[[`BOOST_NO_CXX14_DIGIT_SEPARATORS`][The compiler does not support digit separators (e.g. `1'000'000`).]]
+[[`BOOST_NO_CXX14_GENERIC_LAMBDAS`][The compiler does not support generic lambda (e.g. `[](auto v){ }`).]]
+[[`BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES`][The compiler does not support initialized lambda capture (e.g. `[foo = 42]{ }`).]]
+[[`BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION`][The compiler does not support return type deduction for normal functions (e.g. `auto f() { return val; }`).]]
+[[`BOOST_NO_CXX14_VARIABLE_TEMPLATES`][The compiler does not support variable template (e.g. `template <class T> T kibi = T(1024);`).]]
+]
+
+[endsect]
+
+[#config_14_for_11]
+
+[section Macros that allow use of C++14 features with C++11 or earlier compilers]
+
+The following macros allow use of C++14 features even with compilers that do not yet
+provide compliant C++14 support.
+
+[table
+[[Macro ][ Description ]]
+[[`BOOST_CXX14_CONSTEXPR`][This macro works similar to BOOST_CONSTEXPR, but expands to `constexpr` only if the C++14 "relaxed" `constexpr` is available.]]
]
[endsect]
@@ -817,6 +1010,41 @@ struct foo{
Normally evaluates to nothing, but evaluates to return x; if the compiler
requires a return, even when it can never be reached.
]]
+[[`BOOST_FALLTHROUGH`][
+The BOOST_FALLTHROUGH macro can be used to annotate implicit fall-through
+between switch labels:
+``
+ switch (x) {
+ case 40:
+ case 41:
+ if (truth_is_out_there) {
+ ++x;
+ BOOST_FALLTHROUGH; // Use instead of/along with annotations in
+ // comments.
+ } else {
+ return x;
+ }
+ case 42:
+ ...
+``
+As shown in the example above, the BOOST_FALLTHROUGH macro should be
+followed by a semicolon. It is designed to mimic control-flow statements
+like 'break;', so it can be placed in most places where 'break;' can, but
+only if there are no statements on the execution path between it and the
+next switch label.
+
+When compiled with Clang >3.2 in C++11 mode, the BOOST_FALLTHROUGH macro is
+expanded to `[[clang::fallthrough]]` attribute, which is analysed when
+performing switch labels fall-through diagnostic ('-Wimplicit-fallthrough').
+See clang [@http://clang.llvm.org/docs/LanguageExtensions.html#clang__fallthrough
+documentation on language extensions for details.]
+
+When used with unsupported compilers, the BOOST_FALLTHROUGH macro has no
+effect on diagnostics.
+
+In either case this macro has no effect on runtime behavior and performance
+of code.
+]]
[[`BOOST_EXPLICIT_TEMPLATE_TYPE(t)`
`BOOST_EXPLICIT_TEMPLATE_NON_TYPE(t,v)`
`BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(t)`
@@ -903,7 +1131,7 @@ used to create a mangled name in combination with a predefined macro such a
]]
[[`BOOST_FORCEINLINE`][
This macro can be used in place of the `inline` keyword to instruct the compiler
-that a function should always be inlined.
+that the function should always be inlined.
Overuse of this macro can lead to significant bloat, while good use can increase
performance in certain cases, such as computation-intensive code built through
generative programming techniques.
@@ -921,6 +1149,56 @@ Note that use of this macro can lead to cryptic error messages with some compile
Consider defining it to `inline` before including the Boost.Config header in order to be
able to debug errors more easily.
]]
+[[`BOOST_NOINLINE`][
+This macro can be used in place of the `inline` keyword to instruct the compiler
+that the function should never be inlined. One should typically use this macro
+to mark functions that are unlikely to be called, such as error handling routines.
+
+Usage example:
+``
+ BOOST_NOINLINE void handle_error(const char* descr)
+ {
+ // ...
+ }
+``
+]]
+[[`BOOST_NORETURN`][
+This macro can be used before the function declaration or definition to instruct the compiler
+that the function does not return normally (i.e. with a `return` statement or by leaving
+the function scope, if the function return type is `void`). The macro can be used to mark
+functions that always throw exceptions or terminate the application. Compilers that support
+this markup may use this information to specifically organize the code surrounding calls to
+this function and suppress warnings about missing `return` statements in the functions
+enclosing such calls.
+
+Usage example:
+``
+ BOOST_NORETURN void on_error_occurred(const char* descr)
+ {
+ throw std::runtime_error(descr);
+ }
+``
+
+If the compiler does not support this markup, `BOOST_NORETURN` is defined empty and an
+additional macro `BOOST_NO_NORETURN` is defined.
+]]
+[[`BOOST_LIKELY(X)`
+ `BOOST_UNLIKELY(X)`][
+These macros communicate to the compiler that the conditional expression `X` is likely
+or unlikely to yield a positive result. The expression should result in a boolean value.
+The result of the macro is an integer or boolean value equivalent to the result of `X`.
+
+The macros are intended to be used in branching statements. The additional hint they provide
+can be used by the compiler to arrange the compiled code of the branches more effectively.
+
+Usage example:
+``
+ if (BOOST_UNLIKELY(ptr == NULL))
+ handle_error("ptr is NULL");
+``
+]]
+[[`BOOST_ATTRIBUTE_UNUSED`][Expands to `__attribute__((unused))` when this is available -
+can be used to disable compiler warnings relating to unused types or variables.]]
]
[endsect]
@@ -958,6 +1236,11 @@ Defined to a normalised 9 digit version of _MSC_FULL_VER (which sometimes only h
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_GCC`][`<boost/config.hpp>`][
+Defined if the compiler is really GCC, as opposed to one
+of the many other compilers that also define `__GNUC__`. Has the value:
+`__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__`.
+]]
[[`BOOST_INTEL`][`<boost/config.hpp>`][
Defined if the compiler is an Intel compiler, takes the same value as the
compiler version macro.
@@ -1045,12 +1328,18 @@ They will be removed in a future version of boost.
[[`BOOST_NO_RVALUE_REFERENCES`][`BOOST_NO_CXX11_RVALUE_REFERENCES`][Boost 1.51][]]
[[`BOOST_NO_SCOPED_ENUMS`][`BOOST_NO_CXX11_SCOPED_ENUMS`][Boost 1.51][]]
[[`BOOST_NO_STATIC_ASSERT`][`BOOST_NO_CXX11_STATIC_ASSERT`][Boost 1.51][]]
-[[`BOOST_NO_STD_UNORDERD`][`BOOST_NO_CXX11_STD_UNORDERD`][Boost 1.51][]]
+[[`BOOST_NO_STD_UNORDERED`][`BOOST_NO_CXX11_STD_UNORDERED`][Boost 1.51][]]
[[`BOOST_NO_UNICODE_LITERALS`][`BOOST_NO_CXX11_UNICODE_LITERALS`][Boost 1.51][]]
[[`BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX`][`BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX`][Boost 1.51][]]
[[`BOOST_NO_VARIADIC_TEMPLATES`][`BOOST_NO_CXX11_VARIADIC_TEMPLATES`][Boost 1.51][]]
[[`BOOST_NO_VARIADIC_MACROS`][`BOOST_NO_CXX11_VARIADIC_MACROS`][Boost 1.51][]]
[[`BOOST_NO_NUMERIC_LIMITS_LOWEST`][`BOOST_NO_CXX11_NUMERIC_LIMITS`][Boost 1.51][]]
+[[][][][]]
+[[`BOOST_HAS_STATIC_ASSERT`][`BOOST_NO_CXX11_STATIC_ASSERT` (negated)][Boost 1.53][]]
+[[`BOOST_HAS_VARIADIC_TMPL`][`BOOST_NO_CXX11_VARIADIC_TEMPLATES` (negated)][Boost 1.53][]]
+[[`BOOST_HAS_RVALUE_REFS`][`BOOST_NO_CXX11_RVALUE_REFERENCES` (negated)][Boost 1.53][]]
+[[`BOOST_HAS_CHAR16_T`][`BOOST_NO_CXX11_CHAR16_T` (negated)][Boost 1.53][]]
+[[`BOOST_HAS_CHAR32_T`][`BOOST_NO_CXX11_CHAR32_T` (negated)][Boost 1.53][]]
]
[endsect]
diff --git a/libs/config/meta/libraries.json b/libs/config/meta/libraries.json
new file mode 100644
index 0000000000..2d3fbcc96f
--- /dev/null
+++ b/libs/config/meta/libraries.json
@@ -0,0 +1,13 @@
+{
+ "key": "config",
+ "name": "Config",
+ "description": "Helps Boost library developers adapt to compiler idiosyncrasies; not intended for library users.",
+ "documentation": "config.htm",
+ "category": [
+ "workarounds"
+ ],
+ "authors": "",
+ "maintainers": [
+ "John Maddock <john -at- johnmaddock.co.uk>"
+ ]
+}
diff --git a/libs/config/test/Jamfile.v2 b/libs/config/test/Jamfile.v2
index df61352320..05d27df8b6 100644
--- a/libs/config/test/Jamfile.v2
+++ b/libs/config/test/Jamfile.v2
@@ -1,14 +1,21 @@
#
# Copyright John Maddock 2008.
-# Use, modification and distribution are subject to the
-# Boost Software License, Version 1.0. (See accompanying file
+# Use, modification and distribution are subject to the
+# 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.
#
+project
+ : requirements
+ <toolset>gcc:<cxxflags>-Wno-deprecated-declarations
+;
+
+
import modules ;
+import ../checks/config : requires ;
local is_unix = [ modules.peek : UNIX ] ;
@@ -24,26 +31,48 @@ if $(is_unix)
}
test-suite config
- :
+ :
[ compile config_test_c.c ]
- [ run config_test.cpp
+ [ run config_test.cpp
: #args
: #input-files
: #requirements
<threading>multi
: config_test_threaded
]
- [ run config_test.cpp
+ [ 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_test.cpp
: #args
: #input-files
: #requirements
- <threading>single <toolset>msvc:<runtime-link>static <toolset>msvc:<link>static
+ <rtti>off
<target-os>linux:<linkflags>-lpthread
<target-os>linux:<linkflags>-lrt
<toolset>gcc:<linkflags>$(OTHERFLAGS)
+ : config_test_no_rtti
+ ]
+ [ run config_test.cpp
+ : #args
+ : #input-files
+ : #requirements
+ <exception-handling>off
+ <target-os>linux:<linkflags>-lpthread
+ <target-os>linux:<linkflags>-lrt
+ <toolset>gcc:<linkflags>$(OTHERFLAGS)
+ : config_test_no_except
]
[ 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 config_info.cpp : : : <test-info>always_show_run_output <rtti>off : config_info_no_rtti ]
+ [ run config_info.cpp : : : <test-info>always_show_run_output <exception-handling>off : config_info_no_except ]
[ 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 ]
@@ -59,4 +88,16 @@ test-suite config
]
[ compile-fail threads/test_thread_fail1.cpp ]
[ compile-fail threads/test_thread_fail2.cpp ]
+ [ compile boost_fallthrough_test.cpp : [ check-target-builds has_clang_implicit_fallthrough "Clang implicit fallthrough" : <toolset>clang:<cxxflags>"-std=c++11 -Wimplicit-fallthrough" <warnings-as-errors>on <warnings>all ] ]
+ [ compile helper_macro_test.cpp ]
+ [ run cstdint_test.cpp : : : <warnings>all <toolset>gcc:<cxxflags>"-Wno-long-long -Wextra" <toolset>darwin:<cxxflags>-Wno-long-long ]
+ [ run cstdint_test2.cpp : : : <warnings>all <toolset>gcc:<cxxflags>"-Wno-long-long -Wextra" <toolset>darwin:<cxxflags>-Wno-long-long ]
+ [ compile cstdint_include_test.cpp : <warnings>all <toolset>gcc:<cxxflags>-Wextra ]
+ [ run config_build_check.cpp : : : [ requires int128 cxx11_constexpr cxx11_user_defined_literals ] ]
;
+
+obj has_clang_implicit_fallthrough : cmd_line_check.cpp :
+ <toolset>clang:<cxxflags>"-std=c++11 -Wimplicit-fallthrough" <warnings-as-errors>on <warnings>all ;
+
+explicit has_clang_implicit_fallthrough ;
+
diff --git a/libs/config/test/all/Jamfile.v2 b/libs/config/test/all/Jamfile.v2
index 7ef5e3c815..fe83339779 100644
--- a/libs/config/test/all/Jamfile.v2
+++ b/libs/config/test/all/Jamfile.v2
@@ -1,7 +1,7 @@
#
# Regression test Jamfile for boost configuration setup.
# *** DO NOT EDIT THIS FILE BY HAND ***
-# This file was automatically generated on Tue Jul 10 14:57:46 2012
+# This file was automatically generated on Mon Oct 13 13:09:12 2014
# by libs/config/tools/generate.cpp
# Copyright John Maddock.
# Use, modification and distribution are subject to the
@@ -49,6 +49,9 @@ test-suite "BOOST_HAS_GETTIMEOFDAY" :
test-suite "BOOST_HAS_HASH" :
[ run ../has_hash_pass.cpp ]
[ compile-fail ../has_hash_fail.cpp ] ;
+test-suite "BOOST_HAS_INT128" :
+[ run ../has_int128_pass.cpp ]
+[ compile-fail ../has_int128_fail.cpp ] ;
test-suite "BOOST_HAS_LOG1P" :
[ run ../has_log1p_pass.cpp ]
[ compile-fail ../has_log1p_fail.cpp ] ;
@@ -73,9 +76,6 @@ test-suite "BOOST_HAS_NRVO" :
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 ] ;
@@ -85,6 +85,9 @@ test-suite "BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE" :
test-suite "BOOST_HAS_PTHREAD_YIELD" :
[ run ../has_pthread_yield_pass.cpp ]
[ compile-fail ../has_pthread_yield_fail.cpp ] ;
+test-suite "BOOST_HAS_PTHREADS" :
+[ run ../has_pthreads_pass.cpp ]
+[ compile-fail ../has_pthreads_fail.cpp ] ;
test-suite "BOOST_HAS_RVALUE_REFS" :
[ run ../has_rvalue_refs_pass.cpp ]
[ compile-fail ../has_rvalue_refs_fail.cpp ] ;
@@ -223,15 +226,27 @@ test-suite "BOOST_NO_CWCHAR" :
test-suite "BOOST_NO_CWCTYPE" :
[ run ../no_cwctype_pass.cpp ]
[ compile-fail ../no_cwctype_fail.cpp ] ;
+test-suite "BOOST_NO_CXX11_ADDRESSOF" :
+[ run ../no_cxx11_addressof_pass.cpp ]
+[ compile-fail ../no_cxx11_addressof_fail.cpp ] ;
+test-suite "BOOST_NO_CXX11_ALIGNAS" :
+[ run ../no_cxx11_alignas_pass.cpp ]
+[ compile-fail ../no_cxx11_alignas_fail.cpp ] ;
test-suite "BOOST_NO_CXX11_ALLOCATOR" :
[ run ../no_cxx11_allocator_pass.cpp ]
[ compile-fail ../no_cxx11_allocator_fail.cpp ] ;
test-suite "BOOST_NO_CXX11_ATOMIC_SMART_PTR" :
[ run ../no_cxx11_atomic_sp_pass.cpp ]
[ compile-fail ../no_cxx11_atomic_sp_fail.cpp ] ;
+test-suite "BOOST_NO_CXX11_FINAL" :
+[ run ../no_cxx11_final_pass.cpp ]
+[ compile-fail ../no_cxx11_final_fail.cpp ] ;
test-suite "BOOST_NO_CXX11_HDR_ARRAY" :
[ run ../no_cxx11_hdr_array_pass.cpp ]
[ compile-fail ../no_cxx11_hdr_array_fail.cpp ] ;
+test-suite "BOOST_NO_CXX11_HDR_ATOMIC" :
+[ run ../no_cxx11_hdr_atomic_pass.cpp ]
+[ compile-fail ../no_cxx11_hdr_atomic_fail.cpp ] ;
test-suite "BOOST_NO_CXX11_HDR_CHRONO" :
[ run ../no_cxx11_hdr_chrono_pass.cpp ]
[ compile-fail ../no_cxx11_hdr_chrono_fail.cpp ] ;
@@ -271,21 +286,69 @@ test-suite "BOOST_NO_CXX11_HDR_THREAD" :
test-suite "BOOST_NO_CXX11_HDR_TUPLE" :
[ run ../no_cxx11_hdr_tuple_pass.cpp ]
[ compile-fail ../no_cxx11_hdr_tuple_fail.cpp ] ;
-test-suite "BOOST_NO_CXX11_HDR_TYPEINDEX" :
-[ run ../no_cxx11_hdr_typeindex_pass.cpp ]
-[ compile-fail ../no_cxx11_hdr_typeindex_fail.cpp ] ;
test-suite "BOOST_NO_CXX11_HDR_TYPE_TRAITS" :
[ run ../no_cxx11_hdr_type_traits_pass.cpp ]
[ compile-fail ../no_cxx11_hdr_type_traits_fail.cpp ] ;
+test-suite "BOOST_NO_CXX11_HDR_TYPEINDEX" :
+[ run ../no_cxx11_hdr_typeindex_pass.cpp ]
+[ compile-fail ../no_cxx11_hdr_typeindex_fail.cpp ] ;
test-suite "BOOST_NO_CXX11_HDR_UNORDERED_MAP" :
[ run ../no_cxx11_hdr_unordered_map_pass.cpp ]
[ compile-fail ../no_cxx11_hdr_unordered_map_fail.cpp ] ;
test-suite "BOOST_NO_CXX11_HDR_UNORDERED_SET" :
[ run ../no_cxx11_hdr_unordered_set_pass.cpp ]
[ compile-fail ../no_cxx11_hdr_unordered_set_fail.cpp ] ;
+test-suite "BOOST_NO_CXX11_INLINE_NAMESPACES" :
+[ run ../no_cxx11_inline_namespaces_pass.cpp ]
+[ compile-fail ../no_cxx11_inline_namespaces_fail.cpp ] ;
+test-suite "BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS" :
+[ run ../no_cxx11_non_pub_def_fun_pass.cpp ]
+[ compile-fail ../no_cxx11_non_pub_def_fun_fail.cpp ] ;
+test-suite "BOOST_NO_CXX11_NUMERIC_LIMITS" :
+[ run ../no_cxx11_numeric_limits_pass.cpp ]
+[ compile-fail ../no_cxx11_numeric_limits_fail.cpp ] ;
+test-suite "BOOST_NO_CXX11_REF_QUALIFIERS" :
+[ run ../no_cxx11_ref_qualifiers_pass.cpp ]
+[ compile-fail ../no_cxx11_ref_qualifiers_fail.cpp ] ;
test-suite "BOOST_NO_CXX11_SMART_PTR" :
[ run ../no_cxx11_smart_ptr_pass.cpp ]
[ compile-fail ../no_cxx11_smart_ptr_fail.cpp ] ;
+test-suite "BOOST_NO_CXX11_STD_ALIGN" :
+[ run ../no_cxx11_std_align_pass.cpp ]
+[ compile-fail ../no_cxx11_std_align_fail.cpp ] ;
+test-suite "BOOST_NO_CXX11_TRAILING_RESULT_TYPES" :
+[ run ../no_cxx11_trailing_result_types_pass.cpp ]
+[ compile-fail ../no_cxx11_trailing_result_types_fail.cpp ] ;
+test-suite "BOOST_NO_CXX11_USER_DEFINED_LITERALS" :
+[ run ../no_cxx11_user_lit_pass.cpp ]
+[ compile-fail ../no_cxx11_user_lit_fail.cpp ] ;
+test-suite "BOOST_NO_CXX14_BINARY_LITERALS" :
+[ run ../no_cxx14_binary_literals_pass.cpp ]
+[ compile-fail ../no_cxx14_binary_literals_fail.cpp ] ;
+test-suite "BOOST_NO_CXX14_CONSTEXPR" :
+[ run ../no_cxx14_constexpr_pass.cpp ]
+[ compile-fail ../no_cxx14_constexpr_fail.cpp ] ;
+test-suite "BOOST_NO_CXX14_DECLTYPE_AUTO" :
+[ run ../no_cxx14_decltype_auto_pass.cpp ]
+[ compile-fail ../no_cxx14_decltype_auto_fail.cpp ] ;
+test-suite "BOOST_NO_CXX14_DIGIT_SEPARATOR" :
+[ run ../no_cxx14_digit_separator_pass.cpp ]
+[ compile-fail ../no_cxx14_digit_separator_fail.cpp ] ;
+test-suite "BOOST_NO_CXX14_GENERIC_LAMBDAS" :
+[ run ../no_cxx14_generic_lambda_pass.cpp ]
+[ compile-fail ../no_cxx14_generic_lambda_fail.cpp ] ;
+test-suite "BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES" :
+[ run ../no_cxx14_lambda_capture_pass.cpp ]
+[ compile-fail ../no_cxx14_lambda_capture_fail.cpp ] ;
+test-suite "BOOST_NO_CXX14_AGGREGATE_NSDMI" :
+[ run ../no_cxx14_member_init_pass.cpp ]
+[ compile-fail ../no_cxx14_member_init_fail.cpp ] ;
+test-suite "BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION" :
+[ run ../no_cxx14_return_type_ded_pass.cpp ]
+[ compile-fail ../no_cxx14_return_type_ded_fail.cpp ] ;
+test-suite "BOOST_NO_CXX14_VARIABLE_TEMPLATES" :
+[ run ../no_cxx14_var_templ_pass.cpp ]
+[ compile-fail ../no_cxx14_var_templ_fail.cpp ] ;
test-suite "BOOST_NO_CXX11_HDR_FUNCTIONAL" :
[ run ../no_cxx_hdr_functional_pass.cpp ]
[ compile-fail ../no_cxx_hdr_functional_fail.cpp ] ;
@@ -310,33 +373,36 @@ test-suite "BOOST_NO_DEPENDENT_NESTED_DERIVATIONS" :
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_CXX11_EXPLICIT_CONVERSION_OPERATORS" :
-[ run ../no_explicit_cvt_ops_pass.cpp ]
-[ compile-fail ../no_explicit_cvt_ops_fail.cpp ] ;
+test-suite "BOOST_NO_EXCEPTIONS" :
+[ run ../no_exceptions_pass.cpp ]
+[ compile-fail ../no_exceptions_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_CXX11_EXPLICIT_CONVERSION_OPERATORS" :
+[ run ../no_explicit_cvt_ops_pass.cpp ]
+[ compile-fail ../no_explicit_cvt_ops_fail.cpp ] ;
test-suite "BOOST_NO_CXX11_EXTERN_TEMPLATE" :
[ run ../no_extern_template_pass.cpp ]
[ compile-fail ../no_extern_template_fail.cpp ] ;
test-suite "BOOST_NO_FENV_H" :
[ run ../no_fenv_h_pass.cpp ]
[ compile-fail ../no_fenv_h_fail.cpp ] ;
+test-suite "BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS" :
+[ run ../no_fixed_len_variadic_templates_pass.cpp ]
+[ compile-fail ../no_fixed_len_variadic_templates_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_CXX11_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 ] ;
@@ -367,9 +433,6 @@ test-suite "BOOST_NO_LIMITS" :
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_CXX11_NUMERIC_LIMITS" :
-[ run ../no_cxx11_numeric_limits_pass.cpp ]
-[ compile-fail ../no_cxx11_numeric_limits_fail.cpp ] ;
test-suite "BOOST_NO_LONG_LONG_NUMERIC_LIMITS" :
[ run ../no_ll_limits_pass.cpp ]
[ compile-fail ../no_ll_limits_fail.cpp ] ;
@@ -379,18 +442,18 @@ test-suite "BOOST_NO_LONG_LONG" :
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_MEMBER_TEMPLATE_FRIENDS" :
+[ run ../no_mem_templ_frnds_pass.cpp ]
+[ compile-fail ../no_mem_templ_frnds_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_NESTED_FRIENDSHIP" :
[ run ../no_nested_friendship_pass.cpp ]
[ compile-fail ../no_nested_friendship_fail.cpp ] ;
@@ -403,12 +466,12 @@ test-suite "BOOST_NO_CXX11_NULLPTR" :
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_TEMPLATE_PARTIAL_SPECIALIZATION" :
+[ run ../no_partial_spec_pass.cpp ]
+[ compile-fail ../no_partial_spec_fail.cpp ] ;
test-suite "BOOST_NO_PRIVATE_IN_AGGREGATE" :
[ run ../no_priv_aggregate_pass.cpp ]
[ compile-fail ../no_priv_aggregate_fail.cpp ] ;
@@ -445,21 +508,18 @@ test-suite "BOOST_NO_STRINGSTREAM" :
test-suite "BOOST_NO_CXX11_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_ITERATOR" :
+[ run ../no_std_iterator_pass.cpp ]
+[ compile-fail ../no_std_iterator_fail.cpp ] ;
test-suite "BOOST_NO_STD_LOCALE" :
[ run ../no_std_locale_pass.cpp ]
[ compile-fail ../no_std_locale_fail.cpp ] ;
@@ -475,9 +535,6 @@ test-suite "BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN" :
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 ] ;
@@ -487,9 +544,15 @@ test-suite "BOOST_NO_STD_WSTREAMBUF" :
test-suite "BOOST_NO_STD_WSTRING" :
[ run ../no_std_wstring_pass.cpp ]
[ compile-fail ../no_std_wstring_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_SWPRINTF" :
[ run ../no_swprintf_pass.cpp ]
[ compile-fail ../no_swprintf_fail.cpp ] ;
+test-suite "BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS" :
+[ run ../no_tem_local_classes_pass.cpp ]
+[ compile-fail ../no_tem_local_classes_fail.cpp ] ;
test-suite "BOOST_NO_CXX11_TEMPLATE_ALIASES" :
[ run ../no_template_aliases_pass.cpp ]
[ compile-fail ../no_template_aliases_fail.cpp ] ;
@@ -499,9 +562,6 @@ test-suite "BOOST_NO_TEMPLATED_IOSTREAMS" :
test-suite "BOOST_NO_TEMPLATE_TEMPLATES" :
[ run ../no_template_template_pass.cpp ]
[ compile-fail ../no_template_template_fail.cpp ] ;
-test-suite "BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS" :
-[ run ../no_tem_local_classes_pass.cpp ]
-[ compile-fail ../no_tem_local_classes_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 ] ;
diff --git a/libs/config/test/boost_fallthrough_test.cpp b/libs/config/test/boost_fallthrough_test.cpp
new file mode 100644
index 0000000000..3fabe35167
--- /dev/null
+++ b/libs/config/test/boost_fallthrough_test.cpp
@@ -0,0 +1,20 @@
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+#include <boost/config.hpp>
+
+int test(int n)
+{
+ switch (n)
+ {
+ case 0:
+ n++;
+ BOOST_FALLTHROUGH;
+ case 1:
+ n++;
+ break;
+ }
+ return n;
+}
+
diff --git a/libs/config/test/boost_has_hash.ipp b/libs/config/test/boost_has_hash.ipp
index fb89764d48..0363940d26 100644
--- a/libs/config/test/boost_has_hash.ipp
+++ b/libs/config/test/boost_has_hash.ipp
@@ -1,6 +1,6 @@
-// (C) Copyright John Maddock 2001.
-// Use, modification and distribution are subject to the
-// Boost Software License, Version 1.0. (See accompanying file
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for most recent version.
@@ -11,12 +11,13 @@
// or hash_map classes.
#if defined(__GLIBCXX__) || (defined(__GLIBCPP__) && __GLIBCPP__>=20020514) // GCC >= 3.1.0
-# ifdef BOOST_NO_STD_UNORDERED
+# ifdef BOOST_NO_CXX11_STD_UNORDERED
# define BOOST_STD_EXTENSION_NAMESPACE __gnu_cxx
+# define _BACKWARD_BACKWARD_WARNING_H 1 /* turn off warnings from the headers below */
# include <ext/hash_set>
# include <ext/hash_map>
# else
- // If we have BOOST_NO_STD_UNORDERED *not* defined, then we must
+ // If we have BOOST_NO_CXX11_STD_UNORDERED *not* defined, then we must
// not include the <ext/*> headers as they clash with the C++0x
// headers. ie in any given translation unit we can include one
// or the other, but not both.
diff --git a/libs/config/test/boost_has_int128.ipp b/libs/config/test/boost_has_int128.ipp
new file mode 100644
index 0000000000..0feb6a3e27
--- /dev/null
+++ b/libs/config/test/boost_has_int128.ipp
@@ -0,0 +1,36 @@
+// (C) Copyright John Maddock 2012.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_HAS_INT128
+// TITLE: __int128
+// DESCRIPTION: The platform supports __int128.
+
+#include <cstdlib>
+
+
+namespace boost_has_int128{
+
+int test()
+{
+#ifdef __GNUC__
+ __extension__ __int128 lli = 0;
+ __extension__ unsigned __int128 ulli = 0u;
+#else
+ __int128 lli = 0;
+ unsigned __int128 ulli = 0u;
+#endif
+ (void)&lli;
+ (void)&ulli;
+ return 0;
+}
+
+}
+
+
+
+
+
diff --git a/libs/config/test/boost_has_nrvo.ipp b/libs/config/test/boost_has_nrvo.ipp
index 2611b4ec0f..ad6f17f6fa 100644
--- a/libs/config/test/boost_has_nrvo.ipp
+++ b/libs/config/test/boost_has_nrvo.ipp
@@ -1,7 +1,7 @@
// (C) Copyright Terje Slettebo 2001.
-// (C) Copyright John Maddock 2001.
-// Use, modification and distribution are subject to the
-// Boost Software License, Version 1.0. (See accompanying file
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for most recent version.
@@ -18,7 +18,7 @@ class test_class
{
public:
test_class() {}
- test_class(const test_class &other)
+ test_class(const test_class&)
{
++copy_count;
}
diff --git a/libs/config/test/boost_has_part_alloc.ipp b/libs/config/test/boost_has_part_alloc.ipp
index dcef14cbe6..fb4bf5162c 100644
--- a/libs/config/test/boost_has_part_alloc.ipp
+++ b/libs/config/test/boost_has_part_alloc.ipp
@@ -12,6 +12,12 @@
#include <memory>
+#if defined(__GNUC__) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)))
+# define BOOST_UNUSED_ATTRIBUTE __attribute__((unused))
+#else
+# define BOOST_UNUSED_ATTRIBUTE
+#endif
+
namespace boost_has_partial_std_allocator{
//
@@ -23,12 +29,12 @@ int test_allocator(const T& i)
{
typedef std::allocator<int> alloc1_t;
typedef typename alloc1_t::size_type size_type;
- typedef typename alloc1_t::difference_type difference_type;
+ typedef typename alloc1_t::difference_type difference_type BOOST_UNUSED_ATTRIBUTE;
typedef typename alloc1_t::pointer pointer;
typedef typename alloc1_t::const_pointer const_pointer;
typedef typename alloc1_t::reference reference;
typedef typename alloc1_t::const_reference const_reference;
- typedef typename alloc1_t::value_type value_type;
+ typedef typename alloc1_t::value_type value_type BOOST_UNUSED_ATTRIBUTE;
alloc1_t a1;
@@ -55,8 +61,5 @@ int test()
}
-
-
-
-
+#undef BOOST_UNUSED_ATTRIBUTE
diff --git a/libs/config/test/boost_has_pthread_yield.ipp b/libs/config/test/boost_has_pthread_yield.ipp
index 625117a0ae..37046d3254 100644
--- a/libs/config/test/boost_has_pthread_yield.ipp
+++ b/libs/config/test/boost_has_pthread_yield.ipp
@@ -18,6 +18,7 @@ void f()
{
// this is never called, it just has to compile:
int res = pthread_yield();
+ (void)res;
}
int test()
diff --git a/libs/config/test/boost_no_auto_declarations.ipp b/libs/config/test/boost_no_auto_declarations.ipp
index ce526eb8b4..9201b16013 100644
--- a/libs/config/test/boost_no_auto_declarations.ipp
+++ b/libs/config/test/boost_no_auto_declarations.ipp
@@ -11,7 +11,7 @@
namespace boost_no_cxx11_auto_declarations {
-void check_f(int& x)
+void check_f(int&)
{
}
diff --git a/libs/config/test/boost_no_auto_multidecl.ipp b/libs/config/test/boost_no_auto_multidecl.ipp
index fe22cadcfb..8fb7d5e499 100644
--- a/libs/config/test/boost_no_auto_multidecl.ipp
+++ b/libs/config/test/boost_no_auto_multidecl.ipp
@@ -11,7 +11,7 @@
namespace boost_no_cxx11_auto_multideclarations {
-void check_f(int& x, int*& y)
+void check_f(int&, int*&)
{
}
diff --git a/libs/config/test/boost_no_char16_t.ipp b/libs/config/test/boost_no_char16_t.ipp
index 8e7fbae10b..4efff95e69 100644
--- a/libs/config/test/boost_no_char16_t.ipp
+++ b/libs/config/test/boost_no_char16_t.ipp
@@ -24,8 +24,8 @@ void f(const unsigned long*){}
int test()
{
- const char16_t* p;
- f(p);
+ const char16_t p(0);
+ f(&p);
return 0;
}
diff --git a/libs/config/test/boost_no_char32_t.ipp b/libs/config/test/boost_no_char32_t.ipp
index 062215c9f7..9778bff030 100644
--- a/libs/config/test/boost_no_char32_t.ipp
+++ b/libs/config/test/boost_no_char32_t.ipp
@@ -23,8 +23,8 @@ void f(const unsigned long*){}
int test()
{
- const char32_t* p;
- f(p);
+ const char32_t p(0);
+ f(&p);
return 0;
}
diff --git a/libs/config/test/boost_no_constexpr.ipp b/libs/config/test/boost_no_constexpr.ipp
index 82de2e2d96..563bdb20c6 100644
--- a/libs/config/test/boost_no_constexpr.ipp
+++ b/libs/config/test/boost_no_constexpr.ipp
@@ -24,15 +24,15 @@ constexpr const int* xp = addr(x);
struct A
{
constexpr A(int i) : val(i) { }
- constexpr operator int() { return val; }
- constexpr operator long() { return 43; }
+ constexpr operator int()const { return val; }
+ constexpr operator long()const { return 43; }
private:
int val;
};
template<int> struct X { };
-constexpr A a = 42;
+constexpr const A a = 42;
X<a> xx; // OK: unique conversion to int
diff --git a/libs/config/test/boost_no_cxx11_addressof.ipp b/libs/config/test/boost_no_cxx11_addressof.ipp
new file mode 100644
index 0000000000..4f0a5e3cdc
--- /dev/null
+++ b/libs/config/test/boost_no_cxx11_addressof.ipp
@@ -0,0 +1,28 @@
+// (C) Copyright John Maddock 2012
+// (C) Copyright Peter Dimov 2014
+
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying 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_CXX11_ADDRESSOF
+// TITLE: C++11 <memory> doesn't have a working std::addressof
+// DESCRIPTION: The compiler does not support the function std::addressof added to <memory>
+
+#include <memory>
+
+namespace boost_no_cxx11_addressof {
+
+void x3()
+{
+}
+
+int test()
+{
+ int x1, x2[3];
+ return std::addressof(x1) != &x1 || std::addressof(x2) != &x2 || std::addressof(x3) != &x3;
+}
+
+}
diff --git a/libs/config/test/boost_no_cxx11_alignas.ipp b/libs/config/test/boost_no_cxx11_alignas.ipp
new file mode 100644
index 0000000000..afd428f63f
--- /dev/null
+++ b/libs/config/test/boost_no_cxx11_alignas.ipp
@@ -0,0 +1,36 @@
+// (C) Copyright Andrey Semashev 2013
+
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying 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_CXX11_ALIGNAS
+// TITLE: C++11 alignas keyword.
+// DESCRIPTION: The compiler does not support the C++11 alignment specification with alignas keyword.
+
+namespace boost_no_cxx11_alignas {
+
+struct alignas(16) my_data1
+{
+ char data[10];
+};
+
+struct alignas(double) my_data2
+{
+ char data[16];
+};
+
+my_data1 dummy1[2];
+my_data2 dummy2;
+alignas(16) char dummy3[10];
+alignas(double) char dummy4[32];
+
+int test()
+{
+ // TODO: Test that the data is actually aligned on platforms with uintptr_t
+ return 0;
+}
+
+}
diff --git a/libs/config/test/boost_no_cxx11_allocator.ipp b/libs/config/test/boost_no_cxx11_allocator.ipp
index 2865fb7d97..84ec78eec2 100644
--- a/libs/config/test/boost_no_cxx11_allocator.ipp
+++ b/libs/config/test/boost_no_cxx11_allocator.ipp
@@ -17,6 +17,7 @@ namespace boost_no_cxx11_allocator {
int test()
{
std::pointer_traits<char*>* p = 0;
+ (void) p;
//std::pointer_safety s = std::relaxed;
//char* (*l_undeclare_reachable)(char *p) = std::undeclare_reachable;
@@ -27,7 +28,16 @@ int test()
std::allocator_arg_t aat;
std::uses_allocator<int, std::allocator<int> > ua;
std::allocator_traits<std::allocator<int> > at;
-
+ std::allocator<int> ia;
+ std::allocator_traits<std::allocator<int> >::rebind_alloc<void*> ra(ia);
+ std::allocator<void*>* pva = &ra;
+ std::allocator_traits<std::allocator<int> >::rebind_traits<void*>::pointer pt;
+
+ (void)aat;
+ (void)ua;
+ (void)at;
+ (void)pva;
+ (void)pt;
return 0;
}
diff --git a/libs/config/test/boost_no_cxx11_atomic_sp.ipp b/libs/config/test/boost_no_cxx11_atomic_sp.ipp
index 48f17c2e30..42c9cb7f4d 100644
--- a/libs/config/test/boost_no_cxx11_atomic_sp.ipp
+++ b/libs/config/test/boost_no_cxx11_atomic_sp.ipp
@@ -25,7 +25,6 @@ int test()
atomic_store(&spi, spi2);
atomic_store_explicit(&spi, spi2, std::memory_order_relaxed);
atomic_exchange(&spi, spi2);
- atomic_exchange_explicit(&spi, std::memory_order_relaxed);
atomic_compare_exchange_weak(&spi, &spi2, spi);
atomic_compare_exchange_strong(&spi, &spi2, spi);
atomic_compare_exchange_weak_explicit(&spi, &spi2, spi, std::memory_order_relaxed, std::memory_order_relaxed);
diff --git a/libs/config/test/boost_no_cxx11_final.ipp b/libs/config/test/boost_no_cxx11_final.ipp
new file mode 100644
index 0000000000..0a00733917
--- /dev/null
+++ b/libs/config/test/boost_no_cxx11_final.ipp
@@ -0,0 +1,41 @@
+// (C) Copyright Agustin Berge 2014
+
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying 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_CXX11_FINAL
+// TITLE: C++11 final class-virt-specifier
+// DESCRIPTION: The compiler does not support the C++ class-virt-specifier final
+
+namespace boost_no_cxx11_final {
+
+struct X final {};
+
+struct abstract
+{
+ virtual int f() = 0;
+};
+
+struct derived : public abstract
+{
+ virtual int f() final
+ {
+ return 0;
+ }
+};
+
+int check(abstract* pa)
+{
+ return pa->f();
+}
+
+int test()
+{
+ derived d;
+ return check(&d);
+}
+
+}
diff --git a/libs/config/test/boost_no_cxx11_hdr_array.ipp b/libs/config/test/boost_no_cxx11_hdr_array.ipp
index 79ad7290b3..7bbead1c14 100644
--- a/libs/config/test/boost_no_cxx11_hdr_array.ipp
+++ b/libs/config/test/boost_no_cxx11_hdr_array.ipp
@@ -16,7 +16,7 @@ namespace boost_no_cxx11_hdr_array {
int test()
{
- std::array<int, 3> a = { 1, 2, 3 };
+ std::array<int, 3> a = {{ 1, 2, 3 }};
return a.size() == 3 ? 0 : 1;
}
diff --git a/libs/config/test/boost_no_cxx11_hdr_atomic.ipp b/libs/config/test/boost_no_cxx11_hdr_atomic.ipp
new file mode 100644
index 0000000000..b8e1876600
--- /dev/null
+++ b/libs/config/test/boost_no_cxx11_hdr_atomic.ipp
@@ -0,0 +1,90 @@
+// (C) Copyright John Maddock 2013
+
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying 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_CXX11_HDR_ATOMIC
+// TITLE: C++11 <atomic> header is either not present or too broken to be used
+// DESCRIPTION: The compiler does not support the C++11 header <atomic>
+
+#include <atomic>
+
+#if !defined(ATOMIC_BOOL_LOCK_FREE) || !defined(ATOMIC_CHAR_LOCK_FREE) || !defined(ATOMIC_CHAR16_T_LOCK_FREE) \
+ || !defined(ATOMIC_CHAR32_T_LOCK_FREE) || !defined(ATOMIC_WCHAR_T_LOCK_FREE) || !defined(ATOMIC_SHORT_LOCK_FREE)\
+ || !defined(ATOMIC_INT_LOCK_FREE) || !defined(ATOMIC_LONG_LOCK_FREE) || !defined(ATOMIC_LLONG_LOCK_FREE)\
+ || !defined(ATOMIC_POINTER_LOCK_FREE)
+# error "required macros not defined"
+#endif
+
+namespace boost_no_cxx11_hdr_atomic {
+
+int test()
+{
+ std::memory_order m = static_cast<std::memory_order>(std::memory_order_relaxed | std::memory_order_consume | std::memory_order_acquire | std::memory_order_release
+ | std::memory_order_acq_rel | std::memory_order_seq_cst);
+ (void)m;
+
+ std::atomic<int> a1;
+ std::atomic<unsigned> a2;
+ std::atomic<void*> a3;
+ a1.is_lock_free();
+ a1.store(1);
+ a1.load();
+ a1.exchange(2);
+ int v;
+ a1.compare_exchange_weak(v, 2, std::memory_order_relaxed, std::memory_order_relaxed);
+ a1.compare_exchange_strong(v, 2, std::memory_order_relaxed, std::memory_order_relaxed);
+ a1.fetch_add(2);
+ a1.fetch_sub(3);
+ a1.fetch_and(3);
+ a1.fetch_or(1);
+ a1.fetch_xor(1);
+ a1++;
+ ++a1;
+ a1--;
+ --a1;
+ a1 += 2;
+ a1 -= 2;
+ a1 &= 1;
+ a1 |= 2;
+ a1 ^= 3;
+
+ a3.store(&v);
+ a3.fetch_add(1);
+ a3.fetch_sub(1);
+ ++a3;
+ --a3;
+ a3++;
+ a3--;
+ a3 += 1;
+ a3 -= 1;
+
+ std::atomic_is_lock_free(&a1);
+ // This produces linker errors on Mingw32 for some reason, probably not required anyway for most uses??
+ //std::atomic_init(&a1, 2);
+ std::atomic_store(&a1, 3);
+ std::atomic_store_explicit(&a1, 3, std::memory_order_relaxed);
+ std::atomic_load(&a1);
+ std::atomic_load_explicit(&a1, std::memory_order_relaxed);
+ std::atomic_exchange(&a1, 3);
+ std::atomic_compare_exchange_weak(&a1, &v, 2);
+ std::atomic_compare_exchange_strong(&a1, &v, 2);
+ std::atomic_compare_exchange_weak_explicit(&a1, &v, 2, std::memory_order_relaxed, std::memory_order_relaxed);
+ std::atomic_compare_exchange_strong_explicit(&a1, &v, 2, std::memory_order_relaxed, std::memory_order_relaxed);
+
+ std::atomic_flag f = ATOMIC_FLAG_INIT;
+ f.test_and_set(std::memory_order_relaxed);
+ f.test_and_set();
+ f.clear(std::memory_order_relaxed);
+ f.clear();
+
+ std::atomic_thread_fence(std::memory_order_relaxed);
+ std::atomic_signal_fence(std::memory_order_relaxed);
+
+ return 0;
+}
+
+}
diff --git a/libs/config/test/boost_no_cxx11_hdr_future.ipp b/libs/config/test/boost_no_cxx11_hdr_future.ipp
index 3913e3c75a..b19302d0e3 100644
--- a/libs/config/test/boost_no_cxx11_hdr_future.ipp
+++ b/libs/config/test/boost_no_cxx11_hdr_future.ipp
@@ -26,7 +26,6 @@ int test()
using std::promise;
using std::future;
using std::shared_future;
- using std::atomic_future;
using std::packaged_task; // undefined
using std::async;
return 0;
diff --git a/libs/config/test/boost_no_cxx11_hdr_initializer_list.ipp b/libs/config/test/boost_no_cxx11_hdr_initializer_list.ipp
index 3efcce9488..e7ee83894e 100644
--- a/libs/config/test/boost_no_cxx11_hdr_initializer_list.ipp
+++ b/libs/config/test/boost_no_cxx11_hdr_initializer_list.ipp
@@ -14,7 +14,7 @@
namespace boost_no_cxx11_hdr_initializer_list {
-void foo(const std::initializer_list<const char*>& l)
+void foo(const std::initializer_list<const char*>&)
{
}
diff --git a/libs/config/test/boost_no_cxx11_hdr_regex.ipp b/libs/config/test/boost_no_cxx11_hdr_regex.ipp
index 750db43bd9..1901482cdb 100644
--- a/libs/config/test/boost_no_cxx11_hdr_regex.ipp
+++ b/libs/config/test/boost_no_cxx11_hdr_regex.ipp
@@ -1,5 +1,5 @@
// (C) Copyright Beman Dawes 2009
-
+// Copyright (c) Microsoft Corporation
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -18,7 +18,12 @@ int test()
{
using std::regex;
using std::wregex;
- return 0;
+
+ regex e("\\d+");
+ wregex we(L"\\d+");
+ std::string s("123456");
+ std::wstring ws(L"123456");
+ return regex_match(s, e) && regex_match(ws, we) ? 0 : 1;
}
}
diff --git a/libs/config/test/boost_no_cxx11_hdr_type_traits.ipp b/libs/config/test/boost_no_cxx11_hdr_type_traits.ipp
index 2b14d11735..cf6cdd70ef 100644
--- a/libs/config/test/boost_no_cxx11_hdr_type_traits.ipp
+++ b/libs/config/test/boost_no_cxx11_hdr_type_traits.ipp
@@ -51,22 +51,23 @@ int test()
using std::is_abstract;
using std::is_constructible;
using std::is_nothrow_constructible;
- using std::has_default_constructor;
- using std::has_copy_constructor;
- using std::has_copy_assign;
- using std::has_move_constructor;
- using std::has_move_assign;
- using std::has_trivial_default_constructor;
- using std::has_trivial_copy_constructor;
- using std::has_trivial_move_constructor;
- using std::has_trivial_copy_assign;
- using std::has_trivial_move_assign;
- using std::has_trivial_destructor;
- using std::has_nothrow_default_constructor;
- using std::has_nothrow_copy_constructor;
- using std::has_nothrow_move_constructor;
- using std::has_nothrow_copy_assign;
- using std::has_nothrow_move_assign;
+ using std::is_default_constructible;
+ using std::is_copy_constructible;
+ using std::is_copy_assignable;
+ using std::is_move_constructible;
+ using std::is_move_assignable;
+ using std::is_destructible;
+ using std::is_trivially_default_constructible;
+ using std::is_trivially_copy_constructible;
+ using std::is_trivially_move_constructible;
+ using std::is_trivially_copy_assignable;
+ using std::is_trivially_move_assignable;
+ using std::is_trivially_destructible;
+ using std::is_nothrow_default_constructible;
+ using std::is_nothrow_copy_constructible;
+ using std::is_nothrow_move_constructible;
+ using std::is_nothrow_copy_assignable;
+ using std::is_nothrow_move_assignable;
using std::has_virtual_destructor;
using std::is_signed;
using std::is_unsigned;
@@ -76,7 +77,6 @@ int test()
using std::is_same;
using std::is_base_of;
using std::is_convertible;
- using std::is_explicitly_convertible;
using std::remove_const;
using std::remove_volatile;
using std::remove_cv;
diff --git a/libs/config/test/boost_no_cxx11_hdr_typeindex.ipp b/libs/config/test/boost_no_cxx11_hdr_typeindex.ipp
index aa0358c7e6..5ebe7bc29e 100644
--- a/libs/config/test/boost_no_cxx11_hdr_typeindex.ipp
+++ b/libs/config/test/boost_no_cxx11_hdr_typeindex.ipp
@@ -16,10 +16,18 @@ namespace boost_no_cxx11_hdr_typeindex {
int test()
{
+#if defined( BOOST_NO_TYPEID )
+ std::type_index * p1;
+ std::hash<std::type_index> h;
+ (void)p1;
+ (void)h;
+ return 0;
+#else
std::type_index t1 = typeid(int);
std::type_index t2 = typeid(double);
std::hash<std::type_index> h;
return (t1 != t2) && (h(t1) != h(t2)) ? 0 : 1;
+#endif
}
}
diff --git a/libs/config/test/boost_no_cxx11_inline_namespaces.ipp b/libs/config/test/boost_no_cxx11_inline_namespaces.ipp
new file mode 100644
index 0000000000..5b76da8651
--- /dev/null
+++ b/libs/config/test/boost_no_cxx11_inline_namespaces.ipp
@@ -0,0 +1,30 @@
+// (C) Copyright Andrey Semashev 2013
+
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying 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_CXX11_INLINE_NAMESPACES
+// TITLE: C++11 inline namespaces.
+// DESCRIPTION: The compiler does not support C++11 inline namespaces.
+
+namespace boost_no_cxx11_inline_namespaces {
+
+inline namespace my_ns {
+
+int data = 0;
+
+} // namespace my_ns
+
+int test()
+{
+ data = 1;
+ if (&data == &my_ns::data)
+ return 0;
+ else
+ return 1;
+}
+
+}
diff --git a/libs/config/test/boost_no_cxx11_non_pub_def_fun.ipp b/libs/config/test/boost_no_cxx11_non_pub_def_fun.ipp
new file mode 100644
index 0000000000..8089c751f9
--- /dev/null
+++ b/libs/config/test/boost_no_cxx11_non_pub_def_fun.ipp
@@ -0,0 +1,38 @@
+// (C) Copyright Andrey Semashev 2014
+
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying 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_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS
+// TITLE: C++11 non-public defaulted functions unavailable
+// DESCRIPTION: The compiler does not support C++11 defaulted functions in access control sections other than public
+
+#if defined(__GNUC__) && !defined(__GXX_EXPERIMENTAL_CXX0X__) && !defined(BOOST_INTEL_STDCXX0X)
+# error Non-public defaulted functions are not supported in non-C++11 mode
+#endif
+
+namespace boost_no_cxx11_non_public_defaulted_functions {
+
+struct foo
+{
+protected:
+ foo() = default;
+ foo& operator= (foo const&) = default;
+};
+
+struct bar
+{
+private:
+ bar() = default;
+ bar& operator= (bar const&) = default;
+};
+
+int test()
+{
+ return 0;
+}
+
+}
diff --git a/libs/config/test/boost_no_cxx11_ref_qualifiers.ipp b/libs/config/test/boost_no_cxx11_ref_qualifiers.ipp
new file mode 100644
index 0000000000..77d1234a84
--- /dev/null
+++ b/libs/config/test/boost_no_cxx11_ref_qualifiers.ipp
@@ -0,0 +1,33 @@
+// (C) Copyright Andrzej Krzemienski 2014
+
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying 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_CXX11_REF_QUALIFIERS
+// TITLE: C++11 ref-qualifiers on member functions.
+// DESCRIPTION: The compiler does not support the C++11 ref-qualifiers on member functions as described in N2439.
+
+namespace boost_no_cxx11_ref_qualifiers {
+
+struct G
+{
+ char get() & { return 'l'; }
+ char get() && { return 'r'; }
+ char get() const& { return 'c'; }
+};
+
+int test()
+{
+ G m;
+ const G c = G();
+
+ if (m.get() != 'l') return 1;
+ if (c.get() != 'c') return 1;
+ if (G().get() != 'r') return 1;
+ return 0;
+}
+
+}
diff --git a/libs/config/test/boost_no_cxx11_smart_ptr.ipp b/libs/config/test/boost_no_cxx11_smart_ptr.ipp
index 817a024999..5b563df7f6 100644
--- a/libs/config/test/boost_no_cxx11_smart_ptr.ipp
+++ b/libs/config/test/boost_no_cxx11_smart_ptr.ipp
@@ -26,6 +26,9 @@ int test()
std::hash<std::shared_ptr<int> > h1;
std::hash<std::unique_ptr<int> > h2;
+ (void)h1;
+ (void)h2;
+
return 0;
}
diff --git a/libs/config/test/boost_no_cxx11_std_align.ipp b/libs/config/test/boost_no_cxx11_std_align.ipp
new file mode 100644
index 0000000000..145e24c6d3
--- /dev/null
+++ b/libs/config/test/boost_no_cxx11_std_align.ipp
@@ -0,0 +1,34 @@
+// (C) Copyright John Maddock 2012
+// (C) Copyright Peter Dimov 2014
+
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying 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_CXX11_STD_ALIGN
+// TITLE: C++11 <memory> doesn't have a working std::align
+// DESCRIPTION: The compiler does not support the function std::align added to <memory>
+
+#include <memory>
+
+namespace boost_no_cxx11_std_align {
+
+int test()
+{
+ char buffer[ 32 ];
+
+ void * ptr = buffer + 1;
+ std::size_t space = sizeof( buffer ) - 1;
+
+ void * p2 = std::align( 4, 2, ptr, space );
+
+ if( p2 == 0 ) return 1;
+ if( p2 != ptr ) return 1;
+ if( (size_t)p2 % 4 ) return 1;
+
+ return 0;
+}
+
+}
diff --git a/libs/config/test/boost_no_cxx11_trailing_result_types.ipp b/libs/config/test/boost_no_cxx11_trailing_result_types.ipp
new file mode 100644
index 0000000000..17012048ed
--- /dev/null
+++ b/libs/config/test/boost_no_cxx11_trailing_result_types.ipp
@@ -0,0 +1,26 @@
+// (C) Copyright Andrey Semashev 2013
+
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying 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_CXX11_TRAILING_RESULT_TYPES
+// TITLE: C++11 trailing function result types syntax.
+// DESCRIPTION: The compiler does not support the new C++11 function result types specification syntax.
+
+namespace boost_no_cxx11_trailing_result_types {
+
+template< typename T >
+auto foo(T const& t) -> T
+{
+ return t;
+}
+
+int test()
+{
+ return foo(0);
+}
+
+}
diff --git a/libs/config/test/boost_no_cxx11_user_lit.ipp b/libs/config/test/boost_no_cxx11_user_lit.ipp
new file mode 100644
index 0000000000..090e0c036d
--- /dev/null
+++ b/libs/config/test/boost_no_cxx11_user_lit.ipp
@@ -0,0 +1,67 @@
+// (C) Copyright John Maddock 2013
+
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying 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_CXX11_USER_DEFINED_LITERALS
+// TITLE: C++11 user defined literals.
+// DESCRIPTION: The compiler does not support the C++11 literals including user-defined suffixes.
+
+#include <memory>
+
+namespace boost_no_cxx11_user_defined_literals {
+
+struct my_literal
+{
+ my_literal() : val(0) {}
+ my_literal(int i) : val(i) {}
+ my_literal(const my_literal& a) : val(a.val) {}
+ bool operator==(const my_literal& a) const { return val == a.val; }
+ int val;
+};
+
+template <unsigned base, unsigned long long val, char... Digits>
+struct parse_int
+{
+ // The default specialization is also the termination condition:
+ // it gets invoked only when sizeof...Digits == 0.
+ static_assert(base<=16u,"only support up to hexadecimal");
+ static constexpr unsigned long long value{ val };
+};
+
+template <unsigned base, unsigned long long val, char c, char... Digits>
+struct parse_int<base, val, c, Digits...>
+{
+ static constexpr unsigned long long char_value = (c >= '0' && c <= '9')
+ ? c - '0'
+ : (c >= 'a' && c <= 'f')
+ ? c - 'a'
+ : (c >= 'A' && c <= 'F')
+ ? c - 'A'
+ : 400u;
+ static_assert(char_value < base, "Encountered a digit out of range");
+ static constexpr unsigned long long value{ parse_int<base, val * base +
+char_value, Digits...>::value };
+};
+
+my_literal operator "" _suf1(unsigned long long v)
+{
+ return my_literal(v);
+}
+template <char...PACK>
+my_literal operator "" _bin()
+{
+ return parse_int<2, 0, PACK...>::value;
+}
+
+int test()
+{
+ my_literal a = 0x23_suf1;
+ my_literal b = 1001_bin;
+ return ((a == my_literal(0x23)) && (b == my_literal(9))) ? 0 : 1;
+}
+
+}
diff --git a/libs/config/test/boost_no_cxx14_binary_literals.ipp b/libs/config/test/boost_no_cxx14_binary_literals.ipp
new file mode 100644
index 0000000000..326d5b03e0
--- /dev/null
+++ b/libs/config/test/boost_no_cxx14_binary_literals.ipp
@@ -0,0 +1,23 @@
+
+// (C) Copyright Kohei Takahashi 2014
+
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying 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_CXX14_BINARY_LITERALS
+// TITLE: C++14 binary literals unavailable
+// DESCRIPTION: The compiler does not support C++14 binary literals
+
+namespace boost_no_cxx14_binary_literals
+{
+
+int test()
+{
+ return ((int)0b01000010 == (int)0x42) ? 0 : 1;
+}
+
+}
+
diff --git a/libs/config/test/boost_no_cxx14_constexpr.ipp b/libs/config/test/boost_no_cxx14_constexpr.ipp
new file mode 100644
index 0000000000..5dd43dfae9
--- /dev/null
+++ b/libs/config/test/boost_no_cxx14_constexpr.ipp
@@ -0,0 +1,43 @@
+
+// (C) Copyright Kohei Takahashi 2014
+
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying 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_CXX14_CONSTEXPR
+// TITLE: C++14 relaxed constexpr unavailable
+// DESCRIPTION: The compiler does not support C++14 relaxed constexpr
+
+namespace boost_no_cxx14_constexpr
+{
+
+namespace detail
+{
+ template <class> struct void_ { typedef void type; };
+}
+
+// Test relaxed constexpr with dependent type; for more details, see comment of
+// BOOST_CXX14_CONSTEXPR definition in boost/config/compiler/clang.hpp .
+template <class T>
+constexpr typename detail::void_<T>::type decrement(T &value)
+{
+ --value;
+}
+
+constexpr int zero()
+{
+ int ret = 1;
+ decrement(ret);
+ return ret;
+}
+
+int test()
+{
+ return zero();
+}
+
+}
+
diff --git a/libs/config/test/boost_no_cxx14_decltype_auto.ipp b/libs/config/test/boost_no_cxx14_decltype_auto.ipp
new file mode 100644
index 0000000000..4f538dcc02
--- /dev/null
+++ b/libs/config/test/boost_no_cxx14_decltype_auto.ipp
@@ -0,0 +1,33 @@
+
+// (C) Copyright Kohei Takahashi 2014
+
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying 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_CXX14_DECLTYPE_AUTO
+// TITLE: C++14 decltype(auto) unavailable
+// DESCRIPTION: The compiler does not support C++14 decltype(auto)
+
+namespace boost_no_cxx14_decltype_auto
+{
+
+void quiet_warning(int){}
+
+const int &foo(const int &x)
+{
+ return x;
+}
+
+int test()
+{
+ int j;
+ decltype(auto) x = foo(j);
+ quiet_warning(x);
+ return 0;
+}
+
+}
+
diff --git a/libs/config/test/boost_no_cxx14_digit_separator.ipp b/libs/config/test/boost_no_cxx14_digit_separator.ipp
new file mode 100644
index 0000000000..3bdbbf4307
--- /dev/null
+++ b/libs/config/test/boost_no_cxx14_digit_separator.ipp
@@ -0,0 +1,23 @@
+
+// (C) Copyright Kohei Takahashi 2014
+
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying 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_CXX14_DIGIT_SEPARATORS
+// TITLE: C++14 digit separator unavailable
+// DESCRIPTION: The compiler does not support C++14 digit separator
+
+namespace boost_no_cxx14_digit_separator
+{
+
+int test()
+{
+ return 0'0;
+}
+
+}
+
diff --git a/libs/config/test/boost_no_cxx14_generic_lambda.ipp b/libs/config/test/boost_no_cxx14_generic_lambda.ipp
new file mode 100644
index 0000000000..e271ef5b49
--- /dev/null
+++ b/libs/config/test/boost_no_cxx14_generic_lambda.ipp
@@ -0,0 +1,23 @@
+
+// (C) Copyright Kohei Takahashi 2014
+
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying 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_CXX14_GENERIC_LAMBDAS
+// TITLE: C++14 generic lambda unavailable
+// DESCRIPTION: The compiler does not support C++14 generic lambda
+
+namespace boost_no_cxx14_generic_lambdas
+{
+
+int test()
+{
+ return [](auto ret) { return ret; } (0);
+}
+
+}
+
diff --git a/libs/config/test/boost_no_cxx14_lambda_capture.ipp b/libs/config/test/boost_no_cxx14_lambda_capture.ipp
new file mode 100644
index 0000000000..a788736622
--- /dev/null
+++ b/libs/config/test/boost_no_cxx14_lambda_capture.ipp
@@ -0,0 +1,23 @@
+
+// (C) Copyright Kohei Takahashi 2014
+
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying 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_CXX14_INITIALIZED_LAMBDA_CAPTURES
+// TITLE: C++14 initialized lambda capture unavailable
+// DESCRIPTION: The compiler does not support C++14 initialized lambda capture
+
+namespace boost_no_cxx14_initialized_lambda_captures
+{
+
+int test()
+{
+ return [ret = 0] { return ret; } ();
+}
+
+}
+
diff --git a/libs/config/test/boost_no_cxx14_member_init.ipp b/libs/config/test/boost_no_cxx14_member_init.ipp
new file mode 100644
index 0000000000..2b6c77b4cf
--- /dev/null
+++ b/libs/config/test/boost_no_cxx14_member_init.ipp
@@ -0,0 +1,30 @@
+
+// (C) Copyright Kohei Takahashi 2014
+
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying 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_CXX14_AGGREGATE_NSDMI
+// TITLE: C++14 member initializers unavailable
+// DESCRIPTION: The compiler does not support C++14 member initializers
+
+namespace boost_no_cxx14_aggregate_nsdmi
+{
+
+struct S
+{
+ int x;
+ int y = 0;
+};
+
+int test()
+{
+ S s[] = { { 0x72 }, { 0x42 } };
+ return s[1].x - 0x42;
+}
+
+}
+
diff --git a/libs/config/test/boost_no_cxx14_return_type_ded.ipp b/libs/config/test/boost_no_cxx14_return_type_ded.ipp
new file mode 100644
index 0000000000..3765673119
--- /dev/null
+++ b/libs/config/test/boost_no_cxx14_return_type_ded.ipp
@@ -0,0 +1,29 @@
+
+// (C) Copyright Kohei Takahashi 2014
+
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying 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_CXX14_RETURN_TYPE_DEDUCTION
+// TITLE: C++14 return type deduction unavailable
+// DESCRIPTION: The compiler does not support C++14 return type deduction
+
+namespace boost_no_cxx14_return_type_deduction
+{
+
+template<typename T>
+auto deduced_abs(T x)
+{
+ return x > 0 ? x : -x;
+}
+
+int test()
+{
+ return deduced_abs(2) - deduced_abs(-2);
+}
+
+}
+
diff --git a/libs/config/test/boost_no_cxx14_var_templ.ipp b/libs/config/test/boost_no_cxx14_var_templ.ipp
new file mode 100644
index 0000000000..7162dac757
--- /dev/null
+++ b/libs/config/test/boost_no_cxx14_var_templ.ipp
@@ -0,0 +1,26 @@
+
+// (C) Copyright Kohei Takahashi 2014
+
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying 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_CXX14_VARIABLE_TEMPLATES
+// TITLE: C++14 variable templates unavailable
+// DESCRIPTION: The compiler does not support C++14 variable templates
+
+namespace boost_no_cxx14_variable_templates
+{
+
+template <class T>
+T zero = static_cast<T>(0);
+
+int test()
+{
+ return zero<int>;
+}
+
+}
+
diff --git a/libs/config/test/boost_no_decltype.ipp b/libs/config/test/boost_no_decltype.ipp
index d361d2018b..0b05924392 100644
--- a/libs/config/test/boost_no_decltype.ipp
+++ b/libs/config/test/boost_no_decltype.ipp
@@ -40,11 +40,11 @@ void baz(F f)
int test()
{
int i;
- decltype(i) j;
-// quiet_warning(j);
+ decltype(i) j(0);
+ quiet_warning(j);
decltype(get_test_class()) k;
- #ifndef _MSC_VER
- // Although the VC++ decltype is buggy, we none the less enable support,
+ #ifndef _MSC_VER
+ // Although the VC++ decltype is buggy, we none the less enable support,
// so don't test the bugs for now!
baz(get_test_class);
#endif
diff --git a/libs/config/test/boost_no_fenv_h.ipp b/libs/config/test/boost_no_fenv_h.ipp
index 1bb71160e3..b1e014ccc9 100644
--- a/libs/config/test/boost_no_fenv_h.ipp
+++ b/libs/config/test/boost_no_fenv_h.ipp
@@ -36,8 +36,8 @@ int test()
#endif
int i;
- fexcept_t fe;
- fenv_t env;
+ has_fexcept_t fe;
+ has_fenv_t env;
i = feclearexcept(FE_ALL_EXCEPT);
i += fetestexcept(FE_ALL_EXCEPT); // All flags should be zero
diff --git a/libs/config/test/boost_no_fixed_len_variadic_templates.ipp b/libs/config/test/boost_no_fixed_len_variadic_templates.ipp
new file mode 100644
index 0000000000..9baf6319b0
--- /dev/null
+++ b/libs/config/test/boost_no_fixed_len_variadic_templates.ipp
@@ -0,0 +1,26 @@
+// Copyright (C) 2007 Douglas Gregor
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// MACRO: BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS
+// TITLE: C++0x variadic templates unavailable
+// DESCRIPTION: The compiler does not support C++0x variadic templates
+
+namespace boost_no_cxx11_fixed_length_variadic_template_expansion_packs {
+
+template<char one, char two, char... Others> struct char_tuple {};
+
+template<char... Args> struct super_class : public char_tuple<Args...> {};
+
+int test()
+{
+ super_class<'a', 'b', 'c', 'd'> sc;
+ (void)sc;
+ return 0;
+}
+
+}
+
diff --git a/libs/config/test/boost_no_inline_memb_init.ipp b/libs/config/test/boost_no_inline_memb_init.ipp
index 4f8c45d7c8..4ccacbe371 100644
--- a/libs/config/test/boost_no_inline_memb_init.ipp
+++ b/libs/config/test/boost_no_inline_memb_init.ipp
@@ -44,12 +44,19 @@ struct is_int<int>
static const bool value = true;
};
+#if defined(__GNUC__) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)))
+# define BOOST_UNUSED_ATTRIBUTE __attribute__((unused))
+#else
+# define BOOST_UNUSED_ATTRIBUTE
+#endif
+
+
int test()
{
- typedef int a1[ice_or< is_int<int>::value, is_int<UDT>::value>::value ? 1 : -1];
+ typedef int a1[ice_or< is_int<int>::value, is_int<UDT>::value>::value ? 1 : -1] BOOST_UNUSED_ATTRIBUTE;
return 0;
}
}
-
+#undef BOOST_UNUSED_ATTRIBUTE
diff --git a/libs/config/test/boost_no_is_abstract.ipp b/libs/config/test/boost_no_is_abstract.ipp
index d44695c8d9..257318eef8 100644
--- a/libs/config/test/boost_no_is_abstract.ipp
+++ b/libs/config/test/boost_no_is_abstract.ipp
@@ -1,6 +1,6 @@
-// (C) Copyright John Maddock and Dave Abrahams 2002.
-// Use, modification and distribution are subject to the
-// Boost Software License, Version 1.0. (See accompanying file
+// (C) Copyright John Maddock and Dave Abrahams 2002.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for most recent version.
@@ -46,7 +46,7 @@ struct abstract{ virtual void foo() = 0; };
int test()
{
- return is_abstract_test<non_abstract>::value == is_abstract_test<abstract>::value;
+ return static_cast<bool>(is_abstract_test<non_abstract>::value) == static_cast<bool>(is_abstract_test<abstract>::value);
}
}
diff --git a/libs/config/test/boost_no_lambdas.ipp b/libs/config/test/boost_no_lambdas.ipp
index 689f90b681..edd3341a81 100644
--- a/libs/config/test/boost_no_lambdas.ipp
+++ b/libs/config/test/boost_no_lambdas.ipp
@@ -16,10 +16,15 @@
namespace boost_no_cxx11_lambdas {
+template <class Func>
+int f(Func f)
+{
+ return f();
+}
+
int test()
{
- [](){};
- return 0;
+ return f([](){ return 0; });
}
}
diff --git a/libs/config/test/boost_no_ret_det.ipp b/libs/config/test/boost_no_ret_det.ipp
index c2f08ac291..253e458422 100644
--- a/libs/config/test/boost_no_ret_det.ipp
+++ b/libs/config/test/boost_no_ret_det.ipp
@@ -12,12 +12,19 @@
// compilers insist on it, while other issue a
// bunch of warnings if it is in fact present.
+#if defined( BOOST_NO_EXCEPTIONS ) && !defined( _MSC_VER )
+# include <stdlib.h>
+#endif
namespace boost_no_unreachable_return_detection{
int checker()
{
+#if defined( BOOST_NO_EXCEPTIONS ) && !defined( _MSC_VER )
+ abort();
+#else
throw 0;
+#endif
// no return statement: we don't ever get here...
}
diff --git a/libs/config/test/boost_no_rtti.ipp b/libs/config/test/boost_no_rtti.ipp
index dd8992bcea..4295d70cc3 100644
--- a/libs/config/test/boost_no_rtti.ipp
+++ b/libs/config/test/boost_no_rtti.ipp
@@ -43,6 +43,12 @@ int check_f(const A& a)
int test()
{
+#if defined( BOOST_NO_EXCEPTIONS )
+ {
+ B b;
+ return check_f(b);
+ }
+#else
try{
B b;
return check_f(b);
@@ -51,6 +57,7 @@ int test()
{
return 1;
}
+#endif
}
}
diff --git a/libs/config/test/boost_no_std_allocator.ipp b/libs/config/test/boost_no_std_allocator.ipp
index da88386b7f..d3badbd5d7 100644
--- a/libs/config/test/boost_no_std_allocator.ipp
+++ b/libs/config/test/boost_no_std_allocator.ipp
@@ -18,17 +18,23 @@
namespace boost_no_std_allocator{
+#if defined(__GNUC__) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)))
+# define BOOST_UNUSED_ATTRIBUTE __attribute__((unused))
+#else
+# define BOOST_UNUSED_ATTRIBUTE
+#endif
+
template <class T>
int test_allocator(const T& i)
{
typedef std::allocator<int> alloc1_t;
typedef typename alloc1_t::size_type size_type;
- typedef typename alloc1_t::difference_type difference_type;
+ typedef typename alloc1_t::difference_type difference_type BOOST_UNUSED_ATTRIBUTE;
typedef typename alloc1_t::pointer pointer;
typedef typename alloc1_t::const_pointer const_pointer;
typedef typename alloc1_t::reference reference;
typedef typename alloc1_t::const_reference const_reference;
- typedef typename alloc1_t::value_type value_type;
+ typedef typename alloc1_t::value_type value_type BOOST_UNUSED_ATTRIBUTE;
typedef typename alloc1_t::BOOST_NESTED_TEMPLATE rebind<double> binder_t;
typedef typename binder_t::other alloc2_t;
@@ -53,6 +59,8 @@ int test_allocator(const T& i)
// and isn't currently required by anything in boost
// so don't test for now...
// a3 = a2;
+
+ (void)a2;
return 0;
}
@@ -64,7 +72,7 @@ int test()
}
-
+#undef BOOST_UNUSED_ATTRIBUTE
diff --git a/libs/config/test/boost_no_std_unordered.ipp b/libs/config/test/boost_no_std_unordered.ipp
deleted file mode 100644
index c7ad0869df..0000000000
--- a/libs/config/test/boost_no_std_unordered.ipp
+++ /dev/null
@@ -1,27 +0,0 @@
-// (C) Copyright John Maddock and Dave Abrahams 2002.
-// Use, modification and distribution are subject to the
-// Boost Software License, Version 1.0. (See accompanying file
-// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-// See http://www.boost.org/libs/config for most recent version.
-
-// MACRO: BOOST_NO_STD_UNORDERED
-// TITLE: <unordered_map> and <unordered_set>
-// DESCRIPTION: Check for C++0x unordered container support
-
-#include <unordered_map>
-#include <unordered_set>
-
-namespace boost_no_std_unordered{
-
-int test()
-{
- std::unordered_map<int, int> im;
- std::unordered_set<int> is;
- std::unordered_multimap<int, int> imm;
- std::unordered_multiset<int> ims;
- return im.size() + is.size() + imm.size() + ims.size(); // all zero
-}
-
-}
-
diff --git a/libs/config/test/boost_no_std_wstreambuf.ipp b/libs/config/test/boost_no_std_wstreambuf.ipp
index 1be252eed2..45de2426fd 100644
--- a/libs/config/test/boost_no_std_wstreambuf.ipp
+++ b/libs/config/test/boost_no_std_wstreambuf.ipp
@@ -1,6 +1,6 @@
-// (C) Copyright John Maddock 2001.
-// Use, modification and distribution are subject to the
-// Boost Software License, Version 1.0. (See accompanying file
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for most recent version.
@@ -35,7 +35,7 @@ protected:
private:
parser_buf& operator=(const parser_buf&)
{ return *this; };
- parser_buf(const parser_buf&){};
+ parser_buf(const parser_buf&);
};
template<class charT, class traits>
@@ -56,7 +56,7 @@ parser_buf<charT, traits>::seekoff(off_type off, ::std::ios_base::seekdir way, :
int size = this->egptr() - this->eback();
int pos = this->gptr() - this->eback();
charT* g = this->eback();
- switch(way)
+ switch((int)way)
{
case ::std::ios_base::beg:
if((off < 0) || (off > size))
diff --git a/libs/config/test/boost_no_stdc_namespace.ipp b/libs/config/test/boost_no_stdc_namespace.ipp
index 993aec747f..3ff3f4948d 100644
--- a/libs/config/test/boost_no_stdc_namespace.ipp
+++ b/libs/config/test/boost_no_stdc_namespace.ipp
@@ -1,6 +1,6 @@
-// (C) Copyright John Maddock 2001.
-// Use, modification and distribution are subject to the
-// Boost Software License, Version 1.0. (See accompanying file
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for most recent version.
@@ -29,12 +29,12 @@ int test()
{
char c = 0;
#ifndef BOOST_NO_CTYPE_FUNCTIONS
- std::isspace(c);
- std::isalpha(c);
- std::ispunct(c);
+ (void)std::isspace(c);
+ (void)std::isalpha(c);
+ (void)std::ispunct(c);
#endif
(void)std::strlen(&c);
- std::clock();
+ (void)std::clock();
return 0;
}
diff --git a/libs/config/test/boost_no_tem_local_classes.ipp b/libs/config/test/boost_no_tem_local_classes.ipp
index 04e07b878a..876980ec31 100644
--- a/libs/config/test/boost_no_tem_local_classes.ipp
+++ b/libs/config/test/boost_no_tem_local_classes.ipp
@@ -19,7 +19,7 @@
namespace boost_no_cxx11_local_class_template_parameters {
template<typename T> struct a { void use() {} };
-template<typename T> void f(T x) {}
+template<typename T> void f(T) {}
int test() {
class local_class {} local_obj;
diff --git a/libs/config/test/boost_no_template_streams.ipp b/libs/config/test/boost_no_template_streams.ipp
index 3379d590ba..bb24e132c2 100644
--- a/libs/config/test/boost_no_template_streams.ipp
+++ b/libs/config/test/boost_no_template_streams.ipp
@@ -1,6 +1,6 @@
-// (C) Copyright John Maddock 2008.
-// Use, modification and distribution are subject to the
-// Boost Software License, Version 1.0. (See accompanying file
+// (C) Copyright John Maddock 2008.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for most recent version.
@@ -17,6 +17,7 @@ namespace boost_no_templated_iostreams{
int test()
{
std::basic_ostream<char, std::char_traits<char> >& osr = std::cout;
+ (void)osr;
return 0;
}
diff --git a/libs/config/test/boost_no_typeid.ipp b/libs/config/test/boost_no_typeid.ipp
index 3b127d5f0d..72dd4d3d28 100644
--- a/libs/config/test/boost_no_typeid.ipp
+++ b/libs/config/test/boost_no_typeid.ipp
@@ -16,7 +16,7 @@ namespace boost_no_typeid
int test()
{
- typeid(int);
+ (void)typeid(int);
return 0;
}
diff --git a/libs/config/test/boost_no_typename_with_ctor.ipp b/libs/config/test/boost_no_typename_with_ctor.ipp
index 68a5a0ecc7..6cf4da844b 100644
--- a/libs/config/test/boost_no_typename_with_ctor.ipp
+++ b/libs/config/test/boost_no_typename_with_ctor.ipp
@@ -26,6 +26,7 @@ typename T::type f() {
int test() {
A a = f<B<A> >();
+ (void)a;
return 0;
}
diff --git a/libs/config/test/boost_no_unicode_literals.ipp b/libs/config/test/boost_no_unicode_literals.ipp
index 1675d2058f..d5ffa0cb5f 100644
--- a/libs/config/test/boost_no_unicode_literals.ipp
+++ b/libs/config/test/boost_no_unicode_literals.ipp
@@ -12,7 +12,8 @@
namespace boost_no_cxx11_unicode_literals {
-void quiet_warning(const char*){}
+template <class CharT>
+void quiet_warning(const CharT*){}
int test()
{
@@ -20,6 +21,8 @@ int test()
const char16_t* c16 = u"";
const char32_t* c32 = U"";
quiet_warning(c8);
+ quiet_warning(c16);
+ quiet_warning(c32);
return 0;
}
diff --git a/libs/config/test/boost_no_unified_init.ipp b/libs/config/test/boost_no_unified_init.ipp
index 2a09c5f326..428c8f43d9 100644
--- a/libs/config/test/boost_no_unified_init.ipp
+++ b/libs/config/test/boost_no_unified_init.ipp
@@ -13,22 +13,24 @@
namespace boost_no_cxx11_unified_initialization_syntax {
-struct BasicStruct
+struct BasicStruct
{
int x;
double y;
};
-
-struct AltStruct
+
+struct AltStruct
{
public:
AltStruct(int x, double y) : x_{x}, y_{y} {}
+ int X() const { return x_; }
+ double Y() const { return y_; }
private:
int x_;
double y_;
};
-
-struct IdString
+
+struct IdString
{
std::string name;
int identifier;
@@ -37,7 +39,7 @@ struct IdString
return identifier == other.identifier && name == other.name;
}
};
-
+
IdString get_string()
{
return {"SomeName", 4}; //Note the lack of explicit type.
@@ -47,6 +49,8 @@ int test()
{
BasicStruct var1{5, 3.2};
AltStruct var2{2, 4.3};
+ (void) var1;
+ (void) var2;
IdString id{"SomeName", 4};
return id == get_string() ? 0 : 1;
diff --git a/libs/config/test/boost_no_using_breaks_adl.ipp b/libs/config/test/boost_no_using_breaks_adl.ipp
index 437d9fdc7a..e44e285d9c 100644
--- a/libs/config/test/boost_no_using_breaks_adl.ipp
+++ b/libs/config/test/boost_no_using_breaks_adl.ipp
@@ -1,6 +1,6 @@
-// (C) Copyright John Maddock 2001.
-// Use, modification and distribution are subject to the
-// Boost Software License, Version 1.0. (See accompanying file
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for most recent version.
@@ -40,7 +40,7 @@ namespace user_ns
{ return 0; }
template <class T>
- int f(T x)
+ int f(T x)
{
// use this as a workaround:
//using namespace boost;
@@ -60,6 +60,7 @@ int test()
typedef void* pv;
i = user_ns::f(pv());
i = user_ns::f(boost_ns::inner2::X<int>());
+ (void)i;
return 0;
}
diff --git a/libs/config/test/cmd_line_check.cpp b/libs/config/test/cmd_line_check.cpp
new file mode 100644
index 0000000000..33dff6466f
--- /dev/null
+++ b/libs/config/test/cmd_line_check.cpp
@@ -0,0 +1,9 @@
+
+#ifndef __clang__
+# error "This test is for Clang only"
+#endif
+
+int main()
+{
+ return 0;
+} \ No newline at end of file
diff --git a/libs/config/test/config_build_check.cpp b/libs/config/test/config_build_check.cpp
new file mode 100644
index 0000000000..b95d1c5eae
--- /dev/null
+++ b/libs/config/test/config_build_check.cpp
@@ -0,0 +1,18 @@
+// Copyright John Maddock 2014.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id$
+//
+
+# include "../test/boost_has_int128.ipp"
+# include "../test/boost_no_constexpr.ipp"
+# include "../test/boost_no_cxx11_user_lit.ipp"
+
+int main( int, char *[] )
+{
+ return boost_has_int128::test() || boost_no_cxx11_constexpr::test() || boost_no_cxx11_user_defined_literals::test();
+}
+
diff --git a/libs/config/test/config_info.cpp b/libs/config/test/config_info.cpp
index 8ea0419585..b1fcf51657 100644
--- a/libs/config/test/config_info.cpp
+++ b/libs/config/test/config_info.cpp
@@ -11,7 +11,7 @@
// See http://www.boost.org/libs/config for most recent version.
//
-// Revision $Id: config_info.cpp 79537 2012-07-15 15:59:05Z marshall $
+// Revision $Id$
//
#include <boost/config.hpp>
@@ -192,6 +192,7 @@ void print_compiler_macros()
PRINT_MACRO(__hppa);
PRINT_MACRO(__CYGWIN__);
PRINT_MACRO(__MINGW32__);
+ PRINT_MACRO(__GXX_RTTI);
// HP aCC:
PRINT_MACRO(__HP_aCC);
PRINT_MACRO(_HPACC_);
@@ -293,6 +294,8 @@ void print_compiler_macros()
PRINT_MACRO(_OPENMPT);
PRINT_MACRO(_PGO_INSTRUMENT);
PRINT_MACRO(__QMSPP_);
+ PRINT_MACRO(__INTEL_RTTI__);
+ PRINT_MACRO(__INTEL_CXX11_MODE__);
// Cray options:
PRINT_MACRO(_CRAYC);
@@ -563,6 +566,8 @@ void print_stdlib_macros()
PRINT_MACRO(_HAS_EXCEPTIONS);
PRINT_MACRO(_HAS_MEMBER_TEMPLATES_REBIND);
PRINT_MACRO(_HAS_TEMPLATE_PARTIAL_ORDERING);
+ // Libc++:
+ PRINT_MACRO(_LIBCPP_VERSION);
// STLPort and generic SGI STL options:
PRINT_MACRO(__SGI_STL_NO_ARROW_OPERATOR);
PRINT_MACRO(__SGI_STL_OWN_IOSTREAMS);
@@ -936,6 +941,7 @@ void print_boost_macros()
PRINT_MACRO(BOOST_HAS_GETSYSTEMTIMEASFILETIME);
PRINT_MACRO(BOOST_HAS_GETTIMEOFDAY);
PRINT_MACRO(BOOST_HAS_HASH);
+ PRINT_MACRO(BOOST_HAS_INT128);
PRINT_MACRO(BOOST_HAS_LOG1P);
PRINT_MACRO(BOOST_HAS_LONG_LONG);
PRINT_MACRO(BOOST_HAS_MACRO_USE_FACET);
@@ -989,6 +995,8 @@ void print_boost_macros()
PRINT_MACRO(BOOST_NO_CV_VOID_SPECIALIZATIONS);
PRINT_MACRO(BOOST_NO_CWCHAR);
PRINT_MACRO(BOOST_NO_CWCTYPE);
+ PRINT_MACRO(BOOST_NO_CXX11_ADDRESSOF);
+ PRINT_MACRO(BOOST_NO_CXX11_ALIGNAS);
PRINT_MACRO(BOOST_NO_CXX11_ALLOCATOR);
PRINT_MACRO(BOOST_NO_CXX11_ATOMIC_SMART_PTR);
PRINT_MACRO(BOOST_NO_CXX11_AUTO_DECLARATIONS);
@@ -1002,8 +1010,11 @@ void print_boost_macros()
PRINT_MACRO(BOOST_NO_CXX11_DELETED_FUNCTIONS);
PRINT_MACRO(BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS);
PRINT_MACRO(BOOST_NO_CXX11_EXTERN_TEMPLATE);
+ PRINT_MACRO(BOOST_NO_CXX11_FINAL);
+ PRINT_MACRO(BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS);
PRINT_MACRO(BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS);
PRINT_MACRO(BOOST_NO_CXX11_HDR_ARRAY);
+ PRINT_MACRO(BOOST_NO_CXX11_HDR_ATOMIC);
PRINT_MACRO(BOOST_NO_CXX11_HDR_CHRONO);
PRINT_MACRO(BOOST_NO_CXX11_HDR_CODECVT);
PRINT_MACRO(BOOST_NO_CXX11_HDR_CONDITION_VARIABLE);
@@ -1022,21 +1033,37 @@ void print_boost_macros()
PRINT_MACRO(BOOST_NO_CXX11_HDR_TYPE_TRAITS);
PRINT_MACRO(BOOST_NO_CXX11_HDR_UNORDERED_MAP);
PRINT_MACRO(BOOST_NO_CXX11_HDR_UNORDERED_SET);
+ PRINT_MACRO(BOOST_NO_CXX11_INLINE_NAMESPACES);
PRINT_MACRO(BOOST_NO_CXX11_LAMBDAS);
PRINT_MACRO(BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS);
PRINT_MACRO(BOOST_NO_CXX11_NOEXCEPT);
+ PRINT_MACRO(BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS);
PRINT_MACRO(BOOST_NO_CXX11_NULLPTR);
+ PRINT_MACRO(BOOST_NO_CXX11_NUMERIC_LIMITS);
PRINT_MACRO(BOOST_NO_CXX11_RANGE_BASED_FOR);
PRINT_MACRO(BOOST_NO_CXX11_RAW_LITERALS);
+ PRINT_MACRO(BOOST_NO_CXX11_REF_QUALIFIERS);
PRINT_MACRO(BOOST_NO_CXX11_RVALUE_REFERENCES);
PRINT_MACRO(BOOST_NO_CXX11_SCOPED_ENUMS);
PRINT_MACRO(BOOST_NO_CXX11_SMART_PTR);
PRINT_MACRO(BOOST_NO_CXX11_STATIC_ASSERT);
+ PRINT_MACRO(BOOST_NO_CXX11_STD_ALIGN);
PRINT_MACRO(BOOST_NO_CXX11_TEMPLATE_ALIASES);
+ PRINT_MACRO(BOOST_NO_CXX11_TRAILING_RESULT_TYPES);
PRINT_MACRO(BOOST_NO_CXX11_UNICODE_LITERALS);
PRINT_MACRO(BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX);
+ PRINT_MACRO(BOOST_NO_CXX11_USER_DEFINED_LITERALS);
PRINT_MACRO(BOOST_NO_CXX11_VARIADIC_MACROS);
PRINT_MACRO(BOOST_NO_CXX11_VARIADIC_TEMPLATES);
+ PRINT_MACRO(BOOST_NO_CXX14_AGGREGATE_NSDMI);
+ PRINT_MACRO(BOOST_NO_CXX14_BINARY_LITERALS);
+ PRINT_MACRO(BOOST_NO_CXX14_CONSTEXPR);
+ PRINT_MACRO(BOOST_NO_CXX14_DECLTYPE_AUTO);
+ PRINT_MACRO(BOOST_NO_CXX14_DIGIT_SEPARATORS);
+ PRINT_MACRO(BOOST_NO_CXX14_GENERIC_LAMBDAS);
+ PRINT_MACRO(BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES);
+ PRINT_MACRO(BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION);
+ PRINT_MACRO(BOOST_NO_CXX14_VARIABLE_TEMPLATES);
PRINT_MACRO(BOOST_NO_DEPENDENT_NESTED_DERIVATIONS);
PRINT_MACRO(BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS);
PRINT_MACRO(BOOST_NO_EXCEPTIONS);
@@ -1061,7 +1088,6 @@ void print_boost_macros()
PRINT_MACRO(BOOST_NO_MEMBER_TEMPLATE_KEYWORD);
PRINT_MACRO(BOOST_NO_MS_INT64_NUMERIC_LIMITS);
PRINT_MACRO(BOOST_NO_NESTED_FRIENDSHIP);
- PRINT_MACRO(BOOST_NO_CXX11_NUMERIC_LIMITS);
PRINT_MACRO(BOOST_NO_OPERATORS_IN_NAMESPACE);
PRINT_MACRO(BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS);
PRINT_MACRO(BOOST_NO_POINTER_TO_MEMBER_CONST);
@@ -1080,7 +1106,6 @@ void print_boost_macros()
PRINT_MACRO(BOOST_NO_STD_MIN_MAX);
PRINT_MACRO(BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN);
PRINT_MACRO(BOOST_NO_STD_TYPEINFO);
- PRINT_MACRO(BOOST_NO_STD_UNORDERED);
PRINT_MACRO(BOOST_NO_STD_USE_FACET);
PRINT_MACRO(BOOST_NO_STD_WSTREAMBUF);
PRINT_MACRO(BOOST_NO_STD_WSTRING);
@@ -1098,26 +1123,6 @@ void print_boost_macros()
PRINT_MACRO(BOOST_NO_USING_TEMPLATE);
PRINT_MACRO(BOOST_NO_VOID_RETURNS);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
// END GENERATED BLOCK
PRINT_MACRO(BOOST_INTEL);
@@ -1129,6 +1134,8 @@ void print_boost_macros()
PRINT_MACRO(BOOST_STATIC_CONSTEXPR);
PRINT_MACRO(BOOST_NOEXCEPT);
PRINT_MACRO(BOOST_FORCEINLINE);
+ PRINT_MACRO(BOOST_NOINLINE);
+ PRINT_MACRO(BOOST_FALLTHROUGH);
}
void print_separator()
diff --git a/libs/config/test/config_test.cpp b/libs/config/test/config_test.cpp
index ab78f48f5c..b266f4ebb0 100644
--- a/libs/config/test/config_test.cpp
+++ b/libs/config/test/config_test.cpp
@@ -1,4 +1,4 @@
-// This file was automatically generated on Tue Jul 10 14:57:46 2012
+// This file was automatically generated on Mon Oct 13 13:09:12 2014
// by libs/config/tools/generate.cpp
// Copyright John Maddock 2002-4.
// Use, modification and distribution are subject to the
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: config_test.cpp 79537 2012-07-15 15:59:05Z marshall $
+// Revision $Id$
//
// Test file for config setup
@@ -102,6 +102,16 @@ namespace boost_no_cwchar = empty_boost;
#else
namespace boost_no_cwctype = empty_boost;
#endif
+#ifndef BOOST_NO_CXX11_ADDRESSOF
+#include "boost_no_cxx11_addressof.ipp"
+#else
+namespace boost_no_cxx11_addressof = empty_boost;
+#endif
+#ifndef BOOST_NO_CXX11_ALIGNAS
+#include "boost_no_cxx11_alignas.ipp"
+#else
+namespace boost_no_cxx11_alignas = empty_boost;
+#endif
#ifndef BOOST_NO_CXX11_ALLOCATOR
#include "boost_no_cxx11_allocator.ipp"
#else
@@ -112,11 +122,21 @@ namespace boost_no_cxx11_allocator = empty_boost;
#else
namespace boost_no_cxx11_atomic_smart_ptr = empty_boost;
#endif
+#ifndef BOOST_NO_CXX11_FINAL
+#include "boost_no_cxx11_final.ipp"
+#else
+namespace boost_no_cxx11_final = empty_boost;
+#endif
#ifndef BOOST_NO_CXX11_HDR_ARRAY
#include "boost_no_cxx11_hdr_array.ipp"
#else
namespace boost_no_cxx11_hdr_array = empty_boost;
#endif
+#ifndef BOOST_NO_CXX11_HDR_ATOMIC
+#include "boost_no_cxx11_hdr_atomic.ipp"
+#else
+namespace boost_no_cxx11_hdr_atomic = empty_boost;
+#endif
#ifndef BOOST_NO_CXX11_HDR_CHRONO
#include "boost_no_cxx11_hdr_chrono.ipp"
#else
@@ -182,16 +202,16 @@ namespace boost_no_cxx11_hdr_thread = empty_boost;
#else
namespace boost_no_cxx11_hdr_tuple = empty_boost;
#endif
-#ifndef BOOST_NO_CXX11_HDR_TYPEINDEX
-#include "boost_no_cxx11_hdr_typeindex.ipp"
-#else
-namespace boost_no_cxx11_hdr_typeindex = empty_boost;
-#endif
#ifndef BOOST_NO_CXX11_HDR_TYPE_TRAITS
#include "boost_no_cxx11_hdr_type_traits.ipp"
#else
namespace boost_no_cxx11_hdr_type_traits = empty_boost;
#endif
+#ifndef BOOST_NO_CXX11_HDR_TYPEINDEX
+#include "boost_no_cxx11_hdr_typeindex.ipp"
+#else
+namespace boost_no_cxx11_hdr_typeindex = empty_boost;
+#endif
#ifndef BOOST_NO_CXX11_HDR_UNORDERED_MAP
#include "boost_no_cxx11_hdr_unordered_map.ipp"
#else
@@ -202,11 +222,91 @@ namespace boost_no_cxx11_hdr_unordered_map = empty_boost;
#else
namespace boost_no_cxx11_hdr_unordered_set = empty_boost;
#endif
+#ifndef BOOST_NO_CXX11_INLINE_NAMESPACES
+#include "boost_no_cxx11_inline_namespaces.ipp"
+#else
+namespace boost_no_cxx11_inline_namespaces = empty_boost;
+#endif
+#ifndef BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS
+#include "boost_no_cxx11_non_pub_def_fun.ipp"
+#else
+namespace boost_no_cxx11_non_public_defaulted_functions = empty_boost;
+#endif
+#ifndef BOOST_NO_CXX11_NUMERIC_LIMITS
+#include "boost_no_cxx11_numeric_limits.ipp"
+#else
+namespace boost_no_cxx11_numeric_limits = empty_boost;
+#endif
+#ifndef BOOST_NO_CXX11_REF_QUALIFIERS
+#include "boost_no_cxx11_ref_qualifiers.ipp"
+#else
+namespace boost_no_cxx11_ref_qualifiers = empty_boost;
+#endif
#ifndef BOOST_NO_CXX11_SMART_PTR
#include "boost_no_cxx11_smart_ptr.ipp"
#else
namespace boost_no_cxx11_smart_ptr = empty_boost;
#endif
+#ifndef BOOST_NO_CXX11_STD_ALIGN
+#include "boost_no_cxx11_std_align.ipp"
+#else
+namespace boost_no_cxx11_std_align = empty_boost;
+#endif
+#ifndef BOOST_NO_CXX11_TRAILING_RESULT_TYPES
+#include "boost_no_cxx11_trailing_result_types.ipp"
+#else
+namespace boost_no_cxx11_trailing_result_types = empty_boost;
+#endif
+#ifndef BOOST_NO_CXX11_USER_DEFINED_LITERALS
+#include "boost_no_cxx11_user_lit.ipp"
+#else
+namespace boost_no_cxx11_user_defined_literals = empty_boost;
+#endif
+#ifndef BOOST_NO_CXX14_BINARY_LITERALS
+#include "boost_no_cxx14_binary_literals.ipp"
+#else
+namespace boost_no_cxx14_binary_literals = empty_boost;
+#endif
+#ifndef BOOST_NO_CXX14_CONSTEXPR
+#include "boost_no_cxx14_constexpr.ipp"
+#else
+namespace boost_no_cxx14_constexpr = empty_boost;
+#endif
+#ifndef BOOST_NO_CXX14_DECLTYPE_AUTO
+#include "boost_no_cxx14_decltype_auto.ipp"
+#else
+namespace boost_no_cxx14_decltype_auto = empty_boost;
+#endif
+#ifndef BOOST_NO_CXX14_DIGIT_SEPARATORS
+#include "boost_no_cxx14_digit_separator.ipp"
+#else
+namespace boost_no_cxx14_digit_separator = empty_boost;
+#endif
+#ifndef BOOST_NO_CXX14_GENERIC_LAMBDAS
+#include "boost_no_cxx14_generic_lambda.ipp"
+#else
+namespace boost_no_cxx14_generic_lambdas = empty_boost;
+#endif
+#ifndef BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
+#include "boost_no_cxx14_lambda_capture.ipp"
+#else
+namespace boost_no_cxx14_initialized_lambda_captures = empty_boost;
+#endif
+#ifndef BOOST_NO_CXX14_AGGREGATE_NSDMI
+#include "boost_no_cxx14_member_init.ipp"
+#else
+namespace boost_no_cxx14_aggregate_nsdmi = empty_boost;
+#endif
+#ifndef BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
+#include "boost_no_cxx14_return_type_ded.ipp"
+#else
+namespace boost_no_cxx14_return_type_deduction = empty_boost;
+#endif
+#ifndef BOOST_NO_CXX14_VARIABLE_TEMPLATES
+#include "boost_no_cxx14_var_templ.ipp"
+#else
+namespace boost_no_cxx14_variable_templates = empty_boost;
+#endif
#ifndef BOOST_NO_CXX11_HDR_FUNCTIONAL
#include "boost_no_cxx_hdr_functional.ipp"
#else
@@ -247,26 +347,26 @@ namespace boost_no_dependent_nested_derivations = empty_boost;
#else
namespace boost_no_dependent_types_in_template_value_parameters = empty_boost;
#endif
-#ifndef BOOST_NO_EXCEPTIONS
-#include "boost_no_exceptions.ipp"
-#else
-namespace boost_no_exceptions = empty_boost;
-#endif
#ifndef BOOST_NO_EXCEPTION_STD_NAMESPACE
#include "boost_no_excep_std.ipp"
#else
namespace boost_no_exception_std_namespace = empty_boost;
#endif
-#ifndef BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
-#include "boost_no_explicit_cvt_ops.ipp"
+#ifndef BOOST_NO_EXCEPTIONS
+#include "boost_no_exceptions.ipp"
#else
-namespace boost_no_cxx11_explicit_conversion_operators = empty_boost;
+namespace boost_no_exceptions = empty_boost;
#endif
#ifndef BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
#include "boost_no_exp_func_tem_arg.ipp"
#else
namespace boost_no_explicit_function_template_arguments = empty_boost;
#endif
+#ifndef BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
+#include "boost_no_explicit_cvt_ops.ipp"
+#else
+namespace boost_no_cxx11_explicit_conversion_operators = empty_boost;
+#endif
#ifndef BOOST_NO_CXX11_EXTERN_TEMPLATE
#include "boost_no_extern_template.ipp"
#else
@@ -277,6 +377,16 @@ namespace boost_no_cxx11_extern_template = empty_boost;
#else
namespace boost_no_fenv_h = empty_boost;
#endif
+#ifndef BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS
+#include "boost_no_fixed_len_variadic_templates.ipp"
+#else
+namespace boost_no_cxx11_fixed_length_variadic_template_expansion_packs = empty_boost;
+#endif
+#ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING
+#include "boost_no_func_tmp_order.ipp"
+#else
+namespace boost_no_function_template_ordering = empty_boost;
+#endif
#ifndef BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
#include "boost_no_function_template_default_args.ipp"
#else
@@ -287,11 +397,6 @@ namespace boost_no_cxx11_function_template_default_args = empty_boost;
#else
namespace boost_no_function_type_specializations = empty_boost;
#endif
-#ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING
-#include "boost_no_func_tmp_order.ipp"
-#else
-namespace boost_no_function_template_ordering = empty_boost;
-#endif
#ifndef BOOST_NO_MS_INT64_NUMERIC_LIMITS
#include "boost_no_i64_limits.ipp"
#else
@@ -342,11 +447,6 @@ namespace boost_no_limits = empty_boost;
#else
namespace boost_no_limits_compile_time_constants = empty_boost;
#endif
-#ifndef BOOST_NO_CXX11_NUMERIC_LIMITS
-#include "boost_no_cxx11_numeric_limits.ipp"
-#else
-namespace boost_no_cxx11_numeric_limits = empty_boost;
-#endif
#ifndef BOOST_NO_LONG_LONG_NUMERIC_LIMITS
#include "boost_no_ll_limits.ipp"
#else
@@ -362,16 +462,6 @@ namespace boost_no_long_long = empty_boost;
#else
namespace boost_no_member_function_specializations = empty_boost;
#endif
-#ifndef BOOST_NO_MEMBER_TEMPLATES
-#include "boost_no_mem_templates.ipp"
-#else
-namespace boost_no_member_templates = empty_boost;
-#endif
-#ifndef BOOST_NO_MEMBER_TEMPLATE_FRIENDS
-#include "boost_no_mem_templ_frnds.ipp"
-#else
-namespace boost_no_member_template_friends = empty_boost;
-#endif
#ifndef BOOST_NO_MEMBER_TEMPLATE_KEYWORD
#include "boost_no_mem_tem_keyword.ipp"
#else
@@ -382,6 +472,16 @@ namespace boost_no_member_template_keyword = empty_boost;
#else
namespace boost_no_pointer_to_member_template_parameters = empty_boost;
#endif
+#ifndef BOOST_NO_MEMBER_TEMPLATE_FRIENDS
+#include "boost_no_mem_templ_frnds.ipp"
+#else
+namespace boost_no_member_template_friends = empty_boost;
+#endif
+#ifndef BOOST_NO_MEMBER_TEMPLATES
+#include "boost_no_mem_templates.ipp"
+#else
+namespace boost_no_member_templates = empty_boost;
+#endif
#ifndef BOOST_NO_NESTED_FRIENDSHIP
#include "boost_no_nested_friendship.ipp"
#else
@@ -402,16 +502,16 @@ namespace boost_no_cxx11_nullptr = empty_boost;
#else
namespace boost_no_operators_in_namespace = empty_boost;
#endif
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#include "boost_no_partial_spec.ipp"
-#else
-namespace boost_no_template_partial_specialization = empty_boost;
-#endif
#ifndef BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS
#include "boost_no_part_spec_def_args.ipp"
#else
namespace boost_no_partial_specialization_implicit_default_args = empty_boost;
#endif
+#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+#include "boost_no_partial_spec.ipp"
+#else
+namespace boost_no_template_partial_specialization = empty_boost;
+#endif
#ifndef BOOST_NO_PRIVATE_IN_AGGREGATE
#include "boost_no_priv_aggregate.ipp"
#else
@@ -472,11 +572,6 @@ namespace boost_no_stringstream = empty_boost;
#else
namespace boost_no_cxx11_static_assert = empty_boost;
#endif
-#ifndef BOOST_NO_STDC_NAMESPACE
-#include "boost_no_stdc_namespace.ipp"
-#else
-namespace boost_no_stdc_namespace = empty_boost;
-#endif
#ifndef BOOST_NO_STD_ALLOCATOR
#include "boost_no_std_allocator.ipp"
#else
@@ -487,16 +582,16 @@ namespace boost_no_std_allocator = empty_boost;
#else
namespace boost_no_std_distance = empty_boost;
#endif
-#ifndef BOOST_NO_STD_ITERATOR
-#include "boost_no_std_iterator.ipp"
-#else
-namespace boost_no_std_iterator = empty_boost;
-#endif
#ifndef BOOST_NO_STD_ITERATOR_TRAITS
#include "boost_no_std_iter_traits.ipp"
#else
namespace boost_no_std_iterator_traits = empty_boost;
#endif
+#ifndef BOOST_NO_STD_ITERATOR
+#include "boost_no_std_iterator.ipp"
+#else
+namespace boost_no_std_iterator = empty_boost;
+#endif
#ifndef BOOST_NO_STD_LOCALE
#include "boost_no_std_locale.ipp"
#else
@@ -522,11 +617,6 @@ namespace boost_no_std_output_iterator_assign = empty_boost;
#else
namespace boost_no_std_typeinfo = empty_boost;
#endif
-#ifndef BOOST_NO_STD_UNORDERED
-#include "boost_no_std_unordered.ipp"
-#else
-namespace boost_no_std_unordered = empty_boost;
-#endif
#ifndef BOOST_NO_STD_USE_FACET
#include "boost_no_std_use_facet.ipp"
#else
@@ -542,11 +632,21 @@ namespace boost_no_std_wstreambuf = empty_boost;
#else
namespace boost_no_std_wstring = empty_boost;
#endif
+#ifndef BOOST_NO_STDC_NAMESPACE
+#include "boost_no_stdc_namespace.ipp"
+#else
+namespace boost_no_stdc_namespace = empty_boost;
+#endif
#ifndef BOOST_NO_SWPRINTF
#include "boost_no_swprintf.ipp"
#else
namespace boost_no_swprintf = empty_boost;
#endif
+#ifndef BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
+#include "boost_no_tem_local_classes.ipp"
+#else
+namespace boost_no_cxx11_local_class_template_parameters = empty_boost;
+#endif
#ifndef BOOST_NO_CXX11_TEMPLATE_ALIASES
#include "boost_no_template_aliases.ipp"
#else
@@ -562,11 +662,6 @@ namespace boost_no_templated_iostreams = empty_boost;
#else
namespace boost_no_template_templates = empty_boost;
#endif
-#ifndef BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
-#include "boost_no_tem_local_classes.ipp"
-#else
-namespace boost_no_cxx11_local_class_template_parameters = empty_boost;
-#endif
#ifndef BOOST_NO_TWO_PHASE_NAME_LOOKUP
#include "boost_no_two_phase_lookup.ipp"
#else
@@ -673,6 +768,11 @@ namespace boost_has_gettimeofday = empty_boost;
#else
namespace boost_has_hash = empty_boost;
#endif
+#ifdef BOOST_HAS_INT128
+#include "boost_has_int128.ipp"
+#else
+namespace boost_has_int128 = empty_boost;
+#endif
#ifdef BOOST_HAS_LOG1P
#include "boost_has_log1p.ipp"
#else
@@ -713,11 +813,6 @@ namespace boost_has_nrvo = empty_boost;
#else
namespace boost_has_partial_std_allocator = empty_boost;
#endif
-#ifdef BOOST_HAS_PTHREADS
-#include "boost_has_pthreads.ipp"
-#else
-namespace boost_has_pthreads = empty_boost;
-#endif
#ifdef BOOST_HAS_PTHREAD_DELAY_NP
#include "boost_has_pthread_delay_np.ipp"
#else
@@ -733,6 +828,11 @@ namespace boost_has_pthread_mutexattr_settype = empty_boost;
#else
namespace boost_has_pthread_yield = empty_boost;
#endif
+#ifdef BOOST_HAS_PTHREADS
+#include "boost_has_pthreads.ipp"
+#else
+namespace boost_has_pthreads = empty_boost;
+#endif
#ifdef BOOST_HAS_RVALUE_REFS
#include "boost_has_rvalue_refs.ipp"
#else
@@ -931,6 +1031,11 @@ int main( int, char *[] )
std::cerr << "Failed test for BOOST_HAS_HASH at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
+ if(0 != boost_has_int128::test())
+ {
+ std::cerr << "Failed test for BOOST_HAS_INT128 at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
if(0 != boost_has_log1p::test())
{
std::cerr << "Failed test for BOOST_HAS_LOG1P at: " << __FILE__ << ":" << __LINE__ << std::endl;
@@ -971,11 +1076,6 @@ int main( int, char *[] )
std::cerr << "Failed test for BOOST_HAS_PARTIAL_STD_ALLOCATOR at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
- if(0 != boost_has_pthreads::test())
- {
- std::cerr << "Failed test for BOOST_HAS_PTHREADS at: " << __FILE__ << ":" << __LINE__ << std::endl;
- ++error_count;
- }
if(0 != boost_has_pthread_delay_np::test())
{
std::cerr << "Failed test for BOOST_HAS_PTHREAD_DELAY_NP at: " << __FILE__ << ":" << __LINE__ << std::endl;
@@ -991,6 +1091,11 @@ int main( int, char *[] )
std::cerr << "Failed test for BOOST_HAS_PTHREAD_YIELD at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
+ if(0 != boost_has_pthreads::test())
+ {
+ std::cerr << "Failed test for BOOST_HAS_PTHREADS at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
if(0 != boost_has_rvalue_refs::test())
{
std::cerr << "Failed test for BOOST_HAS_RVALUE_REFS at: " << __FILE__ << ":" << __LINE__ << std::endl;
@@ -1221,6 +1326,16 @@ int main( int, char *[] )
std::cerr << "Failed test for BOOST_NO_CWCTYPE at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
+ if(0 != boost_no_cxx11_addressof::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_CXX11_ADDRESSOF at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_cxx11_alignas::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_CXX11_ALIGNAS at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
if(0 != boost_no_cxx11_allocator::test())
{
std::cerr << "Failed test for BOOST_NO_CXX11_ALLOCATOR at: " << __FILE__ << ":" << __LINE__ << std::endl;
@@ -1231,11 +1346,21 @@ int main( int, char *[] )
std::cerr << "Failed test for BOOST_NO_CXX11_ATOMIC_SMART_PTR at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
+ if(0 != boost_no_cxx11_final::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_CXX11_FINAL at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
if(0 != boost_no_cxx11_hdr_array::test())
{
std::cerr << "Failed test for BOOST_NO_CXX11_HDR_ARRAY at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
+ if(0 != boost_no_cxx11_hdr_atomic::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_CXX11_HDR_ATOMIC at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
if(0 != boost_no_cxx11_hdr_chrono::test())
{
std::cerr << "Failed test for BOOST_NO_CXX11_HDR_CHRONO at: " << __FILE__ << ":" << __LINE__ << std::endl;
@@ -1301,14 +1426,14 @@ int main( int, char *[] )
std::cerr << "Failed test for BOOST_NO_CXX11_HDR_TUPLE at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
- if(0 != boost_no_cxx11_hdr_typeindex::test())
+ if(0 != boost_no_cxx11_hdr_type_traits::test())
{
- std::cerr << "Failed test for BOOST_NO_CXX11_HDR_TYPEINDEX at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ std::cerr << "Failed test for BOOST_NO_CXX11_HDR_TYPE_TRAITS at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
- if(0 != boost_no_cxx11_hdr_type_traits::test())
+ if(0 != boost_no_cxx11_hdr_typeindex::test())
{
- std::cerr << "Failed test for BOOST_NO_CXX11_HDR_TYPE_TRAITS at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ std::cerr << "Failed test for BOOST_NO_CXX11_HDR_TYPEINDEX at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_cxx11_hdr_unordered_map::test())
@@ -1321,11 +1446,91 @@ int main( int, char *[] )
std::cerr << "Failed test for BOOST_NO_CXX11_HDR_UNORDERED_SET at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
+ if(0 != boost_no_cxx11_inline_namespaces::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_CXX11_INLINE_NAMESPACES at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_cxx11_non_public_defaulted_functions::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_cxx11_numeric_limits::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_CXX11_NUMERIC_LIMITS at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_cxx11_ref_qualifiers::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_CXX11_REF_QUALIFIERS at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
if(0 != boost_no_cxx11_smart_ptr::test())
{
std::cerr << "Failed test for BOOST_NO_CXX11_SMART_PTR at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
+ if(0 != boost_no_cxx11_std_align::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_CXX11_STD_ALIGN at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_cxx11_trailing_result_types::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_CXX11_TRAILING_RESULT_TYPES at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_cxx11_user_defined_literals::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_CXX11_USER_DEFINED_LITERALS at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_cxx14_binary_literals::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_CXX14_BINARY_LITERALS at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_cxx14_constexpr::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_CXX14_CONSTEXPR at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_cxx14_decltype_auto::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_CXX14_DECLTYPE_AUTO at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_cxx14_digit_separator::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_CXX14_DIGIT_SEPARATORS at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_cxx14_generic_lambdas::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_CXX14_GENERIC_LAMBDAS at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_cxx14_initialized_lambda_captures::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_cxx14_aggregate_nsdmi::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_CXX14_AGGREGATE_NSDMI at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_cxx14_return_type_deduction::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_cxx14_variable_templates::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_CXX14_VARIABLE_TEMPLATES at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
if(0 != boost_no_cxx11_hdr_functional::test())
{
std::cerr << "Failed test for BOOST_NO_CXX11_HDR_FUNCTIONAL at: " << __FILE__ << ":" << __LINE__ << std::endl;
@@ -1366,19 +1571,14 @@ int main( int, char *[] )
std::cerr << "Failed test for BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
- if(0 != boost_no_exceptions::test())
- {
- std::cerr << "Failed test for BOOST_NO_EXCEPTIONS at: " << __FILE__ << ":" << __LINE__ << std::endl;
- ++error_count;
- }
if(0 != boost_no_exception_std_namespace::test())
{
std::cerr << "Failed test for BOOST_NO_EXCEPTION_STD_NAMESPACE at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
- if(0 != boost_no_cxx11_explicit_conversion_operators::test())
+ if(0 != boost_no_exceptions::test())
{
- std::cerr << "Failed test for BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ std::cerr << "Failed test for BOOST_NO_EXCEPTIONS at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_explicit_function_template_arguments::test())
@@ -1386,6 +1586,11 @@ int main( int, char *[] )
std::cerr << "Failed test for BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
+ if(0 != boost_no_cxx11_explicit_conversion_operators::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
if(0 != boost_no_cxx11_extern_template::test())
{
std::cerr << "Failed test for BOOST_NO_CXX11_EXTERN_TEMPLATE at: " << __FILE__ << ":" << __LINE__ << std::endl;
@@ -1396,6 +1601,16 @@ int main( int, char *[] )
std::cerr << "Failed test for BOOST_NO_FENV_H at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
+ if(0 != boost_no_cxx11_fixed_length_variadic_template_expansion_packs::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_function_template_ordering::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_FUNCTION_TEMPLATE_ORDERING at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
if(0 != boost_no_cxx11_function_template_default_args::test())
{
std::cerr << "Failed test for BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS at: " << __FILE__ << ":" << __LINE__ << std::endl;
@@ -1406,11 +1621,6 @@ int main( int, char *[] )
std::cerr << "Failed test for BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
- if(0 != boost_no_function_template_ordering::test())
- {
- std::cerr << "Failed test for BOOST_NO_FUNCTION_TEMPLATE_ORDERING at: " << __FILE__ << ":" << __LINE__ << std::endl;
- ++error_count;
- }
if(0 != boost_no_ms_int64_numeric_limits::test())
{
std::cerr << "Failed test for BOOST_NO_MS_INT64_NUMERIC_LIMITS at: " << __FILE__ << ":" << __LINE__ << std::endl;
@@ -1461,11 +1671,6 @@ int main( int, char *[] )
std::cerr << "Failed test for BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
- if(0 != boost_no_cxx11_numeric_limits::test())
- {
- std::cerr << "Failed test for BOOST_NO_CXX11_NUMERIC_LIMITS at: " << __FILE__ << ":" << __LINE__ << std::endl;
- ++error_count;
- }
if(0 != boost_no_long_long_numeric_limits::test())
{
std::cerr << "Failed test for BOOST_NO_LONG_LONG_NUMERIC_LIMITS at: " << __FILE__ << ":" << __LINE__ << std::endl;
@@ -1481,24 +1686,24 @@ int main( int, char *[] )
std::cerr << "Failed test for BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
- if(0 != boost_no_member_templates::test())
+ if(0 != boost_no_member_template_keyword::test())
{
- std::cerr << "Failed test for BOOST_NO_MEMBER_TEMPLATES at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ std::cerr << "Failed test for BOOST_NO_MEMBER_TEMPLATE_KEYWORD at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
- if(0 != boost_no_member_template_friends::test())
+ if(0 != boost_no_pointer_to_member_template_parameters::test())
{
- std::cerr << "Failed test for BOOST_NO_MEMBER_TEMPLATE_FRIENDS at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ std::cerr << "Failed test for BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
- if(0 != boost_no_member_template_keyword::test())
+ if(0 != boost_no_member_template_friends::test())
{
- std::cerr << "Failed test for BOOST_NO_MEMBER_TEMPLATE_KEYWORD at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ std::cerr << "Failed test for BOOST_NO_MEMBER_TEMPLATE_FRIENDS at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
- if(0 != boost_no_pointer_to_member_template_parameters::test())
+ if(0 != boost_no_member_templates::test())
{
- std::cerr << "Failed test for BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ std::cerr << "Failed test for BOOST_NO_MEMBER_TEMPLATES at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_nested_friendship::test())
@@ -1521,14 +1726,14 @@ int main( int, char *[] )
std::cerr << "Failed test for BOOST_NO_OPERATORS_IN_NAMESPACE at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
- if(0 != boost_no_template_partial_specialization::test())
+ if(0 != boost_no_partial_specialization_implicit_default_args::test())
{
- std::cerr << "Failed test for BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ std::cerr << "Failed test for BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
- if(0 != boost_no_partial_specialization_implicit_default_args::test())
+ if(0 != boost_no_template_partial_specialization::test())
{
- std::cerr << "Failed test for BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ std::cerr << "Failed test for BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_private_in_aggregate::test())
@@ -1591,11 +1796,6 @@ int main( int, char *[] )
std::cerr << "Failed test for BOOST_NO_CXX11_STATIC_ASSERT at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
- if(0 != boost_no_stdc_namespace::test())
- {
- std::cerr << "Failed test for BOOST_NO_STDC_NAMESPACE at: " << __FILE__ << ":" << __LINE__ << std::endl;
- ++error_count;
- }
if(0 != boost_no_std_allocator::test())
{
std::cerr << "Failed test for BOOST_NO_STD_ALLOCATOR at: " << __FILE__ << ":" << __LINE__ << std::endl;
@@ -1606,14 +1806,14 @@ int main( int, char *[] )
std::cerr << "Failed test for BOOST_NO_STD_DISTANCE at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
- if(0 != boost_no_std_iterator::test())
+ if(0 != boost_no_std_iterator_traits::test())
{
- std::cerr << "Failed test for BOOST_NO_STD_ITERATOR at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ std::cerr << "Failed test for BOOST_NO_STD_ITERATOR_TRAITS at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
- if(0 != boost_no_std_iterator_traits::test())
+ if(0 != boost_no_std_iterator::test())
{
- std::cerr << "Failed test for BOOST_NO_STD_ITERATOR_TRAITS at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ std::cerr << "Failed test for BOOST_NO_STD_ITERATOR at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_std_locale::test())
@@ -1641,11 +1841,6 @@ int main( int, char *[] )
std::cerr << "Failed test for BOOST_NO_STD_TYPEINFO at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
- if(0 != boost_no_std_unordered::test())
- {
- std::cerr << "Failed test for BOOST_NO_STD_UNORDERED at: " << __FILE__ << ":" << __LINE__ << std::endl;
- ++error_count;
- }
if(0 != boost_no_std_use_facet::test())
{
std::cerr << "Failed test for BOOST_NO_STD_USE_FACET at: " << __FILE__ << ":" << __LINE__ << std::endl;
@@ -1661,11 +1856,21 @@ int main( int, char *[] )
std::cerr << "Failed test for BOOST_NO_STD_WSTRING at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
+ if(0 != boost_no_stdc_namespace::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_STDC_NAMESPACE at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
if(0 != boost_no_swprintf::test())
{
std::cerr << "Failed test for BOOST_NO_SWPRINTF at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
+ if(0 != boost_no_cxx11_local_class_template_parameters::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
if(0 != boost_no_cxx11_template_aliases::test())
{
std::cerr << "Failed test for BOOST_NO_CXX11_TEMPLATE_ALIASES at: " << __FILE__ << ":" << __LINE__ << std::endl;
@@ -1681,11 +1886,6 @@ int main( int, char *[] )
std::cerr << "Failed test for BOOST_NO_TEMPLATE_TEMPLATES at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
- if(0 != boost_no_cxx11_local_class_template_parameters::test())
- {
- std::cerr << "Failed test for BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS at: " << __FILE__ << ":" << __LINE__ << std::endl;
- ++error_count;
- }
if(0 != boost_no_two_phase_name_lookup::test())
{
std::cerr << "Failed test for BOOST_NO_TWO_PHASE_NAME_LOOKUP at: " << __FILE__ << ":" << __LINE__ << std::endl;
diff --git a/libs/config/test/cstdint_include_test.cpp b/libs/config/test/cstdint_include_test.cpp
new file mode 100644
index 0000000000..25d37c82db
--- /dev/null
+++ b/libs/config/test/cstdint_include_test.cpp
@@ -0,0 +1,69 @@
+// Copyright John Maddock 2009.
+// 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)
+
+#define __STDC_CONSTANT_MACROS
+#include <boost/cstdint.hpp> // must be the only #include!
+
+int main()
+{
+ boost::int8_t i8 = INT8_C(0);
+ (void)i8;
+ boost::uint8_t ui8 = UINT8_C(0);
+ (void)ui8;
+ boost::int16_t i16 = INT16_C(0);
+ (void)i16;
+ boost::uint16_t ui16 = UINT16_C(0);
+ (void)ui16;
+ boost::int32_t i32 = INT32_C(0);
+ (void)i32;
+ boost::uint32_t ui32 = UINT32_C(0);
+ (void)ui32;
+#ifndef BOOST_NO_INT64_T
+ boost::int64_t i64 = 0;
+ (void)i64;
+ boost::uint64_t ui64 = 0;
+ (void)ui64;
+#endif
+ boost::int_least8_t i8least = INT8_C(0);
+ (void)i8least;
+ boost::uint_least8_t ui8least = UINT8_C(0);
+ (void)ui8least;
+ boost::int_least16_t i16least = INT16_C(0);
+ (void)i16least;
+ boost::uint_least16_t ui16least = UINT16_C(0);
+ (void)ui16least;
+ boost::int_least32_t i32least = INT32_C(0);
+ (void)i32least;
+ boost::uint_least32_t ui32least = UINT32_C(0);
+ (void)ui32least;
+#ifndef BOOST_NO_INT64_T
+ boost::int_least64_t i64least = 0;
+ (void)i64least;
+ boost::uint_least64_t ui64least = 0;
+ (void)ui64least;
+#endif
+ boost::int_fast8_t i8fast = INT8_C(0);
+ (void)i8fast;
+ boost::uint_fast8_t ui8fast = UINT8_C(0);
+ (void)ui8fast;
+ boost::int_fast16_t i16fast = INT16_C(0);
+ (void)i16fast;
+ boost::uint_fast16_t ui16fast = UINT16_C(0);
+ (void)ui16fast;
+ boost::int_fast32_t i32fast = INT32_C(0);
+ (void)i32fast;
+ boost::uint_fast32_t ui32fast = UINT32_C(0);
+ (void)ui32fast;
+#ifndef BOOST_NO_INT64_T
+ boost::int_fast64_t i64fast = 0;
+ (void)i64fast;
+ boost::uint_fast64_t ui64fast = 0;
+ (void)ui64fast;
+#endif
+ boost::intmax_t im = 0;
+ (void)im;
+ boost::uintmax_t uim = 0;
+ (void)uim;
+}
diff --git a/libs/config/test/cstdint_test.cpp b/libs/config/test/cstdint_test.cpp
new file mode 100644
index 0000000000..f3cbd9bbf5
--- /dev/null
+++ b/libs/config/test/cstdint_test.cpp
@@ -0,0 +1,238 @@
+// boost cstdint.hpp test program ------------------------------------------//
+
+// Copyright Beman Dawes 2000. Distributed under the Boost
+// Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+
+// See http://www.boost.org/libs/integer for documentation.
+
+// Revision History
+// 11 Sep 01 Adapted to work with macros defined in native stdint.h (John Maddock)
+// 12 Nov 00 Adapted to merged <boost/cstdint.hpp>
+// 23 Sep 00 Added INTXX_C constant macro support + int64_t support (John Maddock).
+// 28 Jun 00 Initial version
+
+//
+// There are two ways to test this: in version 1, we include cstdint.hpp as the first
+// include, which means we get decide whether __STDC_CONSTANT_MACROS is defined.
+// In version two we include stdint.h with __STDC_CONSTANT_MACROS *NOT* defined first,
+// and check that we still end up with compatible definitions for the INT#_C macros.
+//
+// This is version 1.
+//
+
+#if defined(__GNUC__) && (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4))
+// We can't suppress this warning on the command line as not all GCC versions support -Wno-type-limits :
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#endif
+
+#include <boost/cstdint.hpp>
+#include <boost/detail/lightweight_test.hpp>
+#include <iostream>
+
+#ifndef BOOST_NO_INCLASS_MEMBER_INITIALIZATION
+//
+// the following class is designed to verify
+// that the various INTXX_C macros can be used
+// in integral constant expressions:
+//
+struct integral_constant_checker
+{
+ static const boost::int8_t int8 = INT8_C(-127);
+ static const boost::int_least8_t int_least8 = INT8_C(-127);
+ static const boost::int_fast8_t int_fast8 = INT8_C(-127);
+
+ static const boost::uint8_t uint8 = UINT8_C(255);
+ static const boost::uint_least8_t uint_least8 = UINT8_C(255);
+ static const boost::uint_fast8_t uint_fast8 = UINT8_C(255);
+
+ static const boost::int16_t int16 = INT16_C(-32767);
+ static const boost::int_least16_t int_least16 = INT16_C(-32767);
+ static const boost::int_fast16_t int_fast16 = INT16_C(-32767);
+
+ static const boost::uint16_t uint16 = UINT16_C(65535);
+ static const boost::uint_least16_t uint_least16 = UINT16_C(65535);
+ static const boost::uint_fast16_t uint_fast16 = UINT16_C(65535);
+
+ static const boost::int32_t int32 = INT32_C(-2147483647);
+ static const boost::int_least32_t int_least32 = INT32_C(-2147483647);
+ static const boost::int_fast32_t int_fast32 = INT32_C(-2147483647);
+
+ static const boost::uint32_t uint32 = UINT32_C(4294967295);
+ static const boost::uint_least32_t uint_least32 = UINT32_C(4294967295);
+ static const boost::uint_fast32_t uint_fast32 = UINT32_C(4294967295);
+
+ static void check();
+};
+
+void integral_constant_checker::check()
+{
+ BOOST_TEST( int8 == -127 );
+ BOOST_TEST( int_least8 == -127 );
+ BOOST_TEST( int_fast8 == -127 );
+ BOOST_TEST( uint8 == 255u );
+ BOOST_TEST( uint_least8 == 255u );
+ BOOST_TEST( uint_fast8 == 255u );
+ BOOST_TEST( int16 == -32767 );
+ BOOST_TEST( int_least16 == -32767 );
+ BOOST_TEST( int_fast16 == -32767 );
+ BOOST_TEST( uint16 == 65535u );
+ BOOST_TEST( uint_least16 == 65535u );
+ BOOST_TEST( uint_fast16 == 65535u );
+ BOOST_TEST( int32 == -2147483647 );
+ BOOST_TEST( int_least32 == -2147483647 );
+ BOOST_TEST( int_fast32 == -2147483647 );
+ BOOST_TEST( uint32 == 4294967295u );
+ BOOST_TEST( uint_least32 == 4294967295u );
+ BOOST_TEST( uint_fast32 == 4294967295u );
+}
+#endif // BOOST_NO_INCLASS_MEMBER_INITIALIZATION
+
+//
+// the following function simply verifies that the type
+// of an integral constant is correctly defined:
+//
+#ifdef __BORLANDC__
+#pragma option -w-8008
+#pragma option -w-8066
+#endif
+template <class T1, class T2>
+void integral_constant_type_check(T1, T2)
+{
+ //
+ // the types T1 and T2 may not be exactly
+ // the same type, but they should be the
+ // same size and signedness. We could use
+ // numeric_limits to verify this, but
+ // numeric_limits implementations currently
+ // vary too much, or are incomplete or missing.
+ //
+ T1 t1 = static_cast<T1>(-1); // cast suppresses warnings
+ T2 t2 = static_cast<T2>(-1); // ditto
+#if defined(BOOST_HAS_STDINT_H)
+ // if we have a native stdint.h
+ // then the INTXX_C macros may define
+ // a type that's wider than required:
+ BOOST_TEST(sizeof(T1) <= sizeof(T2));
+#else
+ BOOST_TEST(sizeof(T1) == sizeof(T2));
+ BOOST_TEST(t1 == t2);
+#endif
+#if defined(BOOST_HAS_STDINT_H)
+ // native headers are permitted to promote small
+ // unsigned types to type int:
+ if(sizeof(T1) >= sizeof(int))
+ {
+ if(t1 > 0)
+ BOOST_TEST(t2 > 0);
+ else
+ BOOST_TEST(!(t2 > 0));
+ }
+ else if(t1 < 0)
+ BOOST_TEST(!(t2 > 0));
+#else
+ if(t1 > 0)
+ BOOST_TEST(t2 > 0);
+ else
+ BOOST_TEST(!(t2 > 0));
+#endif
+}
+
+
+int main(int, char*[])
+{
+#ifndef BOOST_NO_INCLASS_MEMBER_INITIALIZATION
+ integral_constant_checker::check();
+#endif
+ //
+ // verify the types of the integral constants:
+ //
+ integral_constant_type_check(boost::int8_t(0), INT8_C(0));
+ integral_constant_type_check(boost::uint8_t(0), UINT8_C(0));
+ integral_constant_type_check(boost::int16_t(0), INT16_C(0));
+ integral_constant_type_check(boost::uint16_t(0), UINT16_C(0));
+ integral_constant_type_check(boost::int32_t(0), INT32_C(0));
+ integral_constant_type_check(boost::uint32_t(0), UINT32_C(0));
+#ifndef BOOST_NO_INT64_T
+ integral_constant_type_check(boost::int64_t(0), INT64_C(0));
+ integral_constant_type_check(boost::uint64_t(0), UINT64_C(0));
+#endif
+ //
+ boost::int8_t int8 = INT8_C(-127);
+ boost::int_least8_t int_least8 = INT8_C(-127);
+ boost::int_fast8_t int_fast8 = INT8_C(-127);
+
+ boost::uint8_t uint8 = UINT8_C(255);
+ boost::uint_least8_t uint_least8 = UINT8_C(255);
+ boost::uint_fast8_t uint_fast8 = UINT8_C(255);
+
+ boost::int16_t int16 = INT16_C(-32767);
+ boost::int_least16_t int_least16 = INT16_C(-32767);
+ boost::int_fast16_t int_fast16 = INT16_C(-32767);
+
+ boost::uint16_t uint16 = UINT16_C(65535);
+ boost::uint_least16_t uint_least16 = UINT16_C(65535);
+ boost::uint_fast16_t uint_fast16 = UINT16_C(65535);
+
+ boost::int32_t int32 = INT32_C(-2147483647);
+ boost::int_least32_t int_least32 = INT32_C(-2147483647);
+ boost::int_fast32_t int_fast32 = INT32_C(-2147483647);
+
+ boost::uint32_t uint32 = UINT32_C(4294967295);
+ boost::uint_least32_t uint_least32 = UINT32_C(4294967295);
+ boost::uint_fast32_t uint_fast32 = UINT32_C(4294967295);
+
+#ifndef BOOST_NO_INT64_T
+ boost::int64_t int64 = INT64_C(-9223372036854775807);
+ boost::int_least64_t int_least64 = INT64_C(-9223372036854775807);
+ boost::int_fast64_t int_fast64 = INT64_C(-9223372036854775807);
+
+ boost::uint64_t uint64 = UINT64_C(18446744073709551615);
+ boost::uint_least64_t uint_least64 = UINT64_C(18446744073709551615);
+ boost::uint_fast64_t uint_fast64 = UINT64_C(18446744073709551615);
+
+ boost::intmax_t intmax = INTMAX_C(-9223372036854775807);
+ boost::uintmax_t uintmax = UINTMAX_C(18446744073709551615);
+#else
+ boost::intmax_t intmax = INTMAX_C(-2147483647);
+ boost::uintmax_t uintmax = UINTMAX_C(4294967295);
+#endif
+
+ BOOST_TEST( int8 == -127 );
+ BOOST_TEST( int_least8 == -127 );
+ BOOST_TEST( int_fast8 == -127 );
+ BOOST_TEST( uint8 == 255u );
+ BOOST_TEST( uint_least8 == 255u );
+ BOOST_TEST( uint_fast8 == 255u );
+ BOOST_TEST( int16 == -32767 );
+ BOOST_TEST( int_least16 == -32767 );
+ BOOST_TEST( int_fast16 == -32767 );
+ BOOST_TEST( uint16 == 65535u );
+ BOOST_TEST( uint_least16 == 65535u );
+ BOOST_TEST( uint_fast16 == 65535u );
+ BOOST_TEST( int32 == -2147483647 );
+ BOOST_TEST( int_least32 == -2147483647 );
+ BOOST_TEST( int_fast32 == -2147483647 );
+ BOOST_TEST( uint32 == 4294967295u );
+ BOOST_TEST( uint_least32 == 4294967295u );
+ BOOST_TEST( uint_fast32 == 4294967295u );
+
+#ifndef BOOST_NO_INT64_T
+ BOOST_TEST( int64 == INT64_C(-9223372036854775807) );
+ BOOST_TEST( int_least64 == INT64_C(-9223372036854775807) );
+ BOOST_TEST( int_fast64 == INT64_C(-9223372036854775807) );
+ BOOST_TEST( uint64 == UINT64_C(18446744073709551615) );
+ BOOST_TEST( uint_least64 == UINT64_C(18446744073709551615) );
+ BOOST_TEST( uint_fast64 == UINT64_C(18446744073709551615) );
+ BOOST_TEST( intmax == INT64_C(-9223372036854775807) );
+ BOOST_TEST( uintmax == UINT64_C(18446744073709551615) );
+#else
+ BOOST_TEST( intmax == -2147483647 );
+ BOOST_TEST( uintmax == 4294967295u );
+#endif
+
+
+ std::cout << "OK\n";
+ return boost::report_errors();
+}
diff --git a/libs/config/test/cstdint_test2.cpp b/libs/config/test/cstdint_test2.cpp
new file mode 100644
index 0000000000..91ff28f4c2
--- /dev/null
+++ b/libs/config/test/cstdint_test2.cpp
@@ -0,0 +1,248 @@
+// boost cstdint.hpp test program ------------------------------------------//
+
+// Copyright Beman Dawes 2000. Distributed under the Boost
+// Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+
+// See http://www.boost.org/libs/integer for documentation.
+
+// Revision History
+// 11 Sep 01 Adapted to work with macros defined in native stdint.h (John Maddock)
+// 12 Nov 00 Adapted to merged <boost/cstdint.hpp>
+// 23 Sep 00 Added INTXX_C constant macro support + int64_t support (John Maddock).
+// 28 Jun 00 Initial version
+
+//
+// There are two ways to test this: in version 1, we include cstdint.hpp as the first
+// include, which means we get decide whether __STDC_CONSTANT_MACROS is defined.
+// In version two we include stdint.h with __STDC_CONSTANT_MACROS *NOT* defined first,
+// and check that we still end up with compatible definitions for the INT#_C macros.
+//
+// This is version 2.
+//
+
+#if defined(__GNUC__) && (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4))
+// We can't suppress this warning on the command line as not all GCC versions support -Wno-type-limits :
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#endif
+
+#include <boost/config.hpp>
+
+#ifdef BOOST_HAS_STDINT_H
+#ifdef __hpux
+# include <inttypes.h>
+#else
+# include <stdint.h>
+#endif
+#endif
+
+#include <boost/cstdint.hpp>
+#include <boost/detail/lightweight_test.hpp>
+#include <iostream>
+
+#ifndef BOOST_NO_INCLASS_MEMBER_INITIALIZATION
+//
+// the following class is designed to verify
+// that the various INTXX_C macros can be used
+// in integral constant expressions:
+//
+struct integral_constant_checker
+{
+ static const boost::int8_t int8 = INT8_C(-127);
+ static const boost::int_least8_t int_least8 = INT8_C(-127);
+ static const boost::int_fast8_t int_fast8 = INT8_C(-127);
+
+ static const boost::uint8_t uint8 = UINT8_C(255);
+ static const boost::uint_least8_t uint_least8 = UINT8_C(255);
+ static const boost::uint_fast8_t uint_fast8 = UINT8_C(255);
+
+ static const boost::int16_t int16 = INT16_C(-32767);
+ static const boost::int_least16_t int_least16 = INT16_C(-32767);
+ static const boost::int_fast16_t int_fast16 = INT16_C(-32767);
+
+ static const boost::uint16_t uint16 = UINT16_C(65535);
+ static const boost::uint_least16_t uint_least16 = UINT16_C(65535);
+ static const boost::uint_fast16_t uint_fast16 = UINT16_C(65535);
+
+ static const boost::int32_t int32 = INT32_C(-2147483647);
+ static const boost::int_least32_t int_least32 = INT32_C(-2147483647);
+ static const boost::int_fast32_t int_fast32 = INT32_C(-2147483647);
+
+ static const boost::uint32_t uint32 = UINT32_C(4294967295);
+ static const boost::uint_least32_t uint_least32 = UINT32_C(4294967295);
+ static const boost::uint_fast32_t uint_fast32 = UINT32_C(4294967295);
+
+ static void check();
+};
+
+void integral_constant_checker::check()
+{
+ BOOST_TEST( int8 == -127 );
+ BOOST_TEST( int_least8 == -127 );
+ BOOST_TEST( int_fast8 == -127 );
+ BOOST_TEST( uint8 == 255u );
+ BOOST_TEST( uint_least8 == 255u );
+ BOOST_TEST( uint_fast8 == 255u );
+ BOOST_TEST( int16 == -32767 );
+ BOOST_TEST( int_least16 == -32767 );
+ BOOST_TEST( int_fast16 == -32767 );
+ BOOST_TEST( uint16 == 65535u );
+ BOOST_TEST( uint_least16 == 65535u );
+ BOOST_TEST( uint_fast16 == 65535u );
+ BOOST_TEST( int32 == -2147483647 );
+ BOOST_TEST( int_least32 == -2147483647 );
+ BOOST_TEST( int_fast32 == -2147483647 );
+ BOOST_TEST( uint32 == 4294967295u );
+ BOOST_TEST( uint_least32 == 4294967295u );
+ BOOST_TEST( uint_fast32 == 4294967295u );
+}
+#endif // BOOST_NO_INCLASS_MEMBER_INITIALIZATION
+
+//
+// the following function simply verifies that the type
+// of an integral constant is correctly defined:
+//
+#ifdef __BORLANDC__
+#pragma option -w-8008
+#pragma option -w-8066
+#endif
+template <class T1, class T2>
+void integral_constant_type_check(T1, T2)
+{
+ //
+ // the types T1 and T2 may not be exactly
+ // the same type, but they should be the
+ // same size and signedness. We could use
+ // numeric_limits to verify this, but
+ // numeric_limits implementations currently
+ // vary too much, or are incomplete or missing.
+ //
+ T1 t1 = static_cast<T1>(-1); // cast suppresses warnings
+ T2 t2 = static_cast<T2>(-1); // ditto
+#if defined(BOOST_HAS_STDINT_H)
+ // if we have a native stdint.h
+ // then the INTXX_C macros may define
+ // a type that's wider than required:
+ BOOST_TEST(sizeof(T1) <= sizeof(T2));
+#else
+ BOOST_TEST(sizeof(T1) == sizeof(T2));
+ BOOST_TEST(t1 == t2);
+#endif
+#if defined(BOOST_HAS_STDINT_H)
+ // native headers are permitted to promote small
+ // unsigned types to type int:
+ if(sizeof(T1) >= sizeof(int))
+ {
+ if(t1 > 0)
+ BOOST_TEST(t2 > 0);
+ else
+ BOOST_TEST(!(t2 > 0));
+ }
+ else if(t1 < 0)
+ BOOST_TEST(!(t2 > 0));
+#else
+ if(t1 > 0)
+ BOOST_TEST(t2 > 0);
+ else
+ BOOST_TEST(!(t2 > 0));
+#endif
+}
+
+
+int main(int, char*[])
+{
+#ifndef BOOST_NO_INCLASS_MEMBER_INITIALIZATION
+ integral_constant_checker::check();
+#endif
+ //
+ // verify the types of the integral constants:
+ //
+ integral_constant_type_check(boost::int8_t(0), INT8_C(0));
+ integral_constant_type_check(boost::uint8_t(0), UINT8_C(0));
+ integral_constant_type_check(boost::int16_t(0), INT16_C(0));
+ integral_constant_type_check(boost::uint16_t(0), UINT16_C(0));
+ integral_constant_type_check(boost::int32_t(0), INT32_C(0));
+ integral_constant_type_check(boost::uint32_t(0), UINT32_C(0));
+#ifndef BOOST_NO_INT64_T
+ integral_constant_type_check(boost::int64_t(0), INT64_C(0));
+ integral_constant_type_check(boost::uint64_t(0), UINT64_C(0));
+#endif
+ //
+ boost::int8_t int8 = INT8_C(-127);
+ boost::int_least8_t int_least8 = INT8_C(-127);
+ boost::int_fast8_t int_fast8 = INT8_C(-127);
+
+ boost::uint8_t uint8 = UINT8_C(255);
+ boost::uint_least8_t uint_least8 = UINT8_C(255);
+ boost::uint_fast8_t uint_fast8 = UINT8_C(255);
+
+ boost::int16_t int16 = INT16_C(-32767);
+ boost::int_least16_t int_least16 = INT16_C(-32767);
+ boost::int_fast16_t int_fast16 = INT16_C(-32767);
+
+ boost::uint16_t uint16 = UINT16_C(65535);
+ boost::uint_least16_t uint_least16 = UINT16_C(65535);
+ boost::uint_fast16_t uint_fast16 = UINT16_C(65535);
+
+ boost::int32_t int32 = INT32_C(-2147483647);
+ boost::int_least32_t int_least32 = INT32_C(-2147483647);
+ boost::int_fast32_t int_fast32 = INT32_C(-2147483647);
+
+ boost::uint32_t uint32 = UINT32_C(4294967295);
+ boost::uint_least32_t uint_least32 = UINT32_C(4294967295);
+ boost::uint_fast32_t uint_fast32 = UINT32_C(4294967295);
+
+#ifndef BOOST_NO_INT64_T
+ boost::int64_t int64 = INT64_C(-9223372036854775807);
+ boost::int_least64_t int_least64 = INT64_C(-9223372036854775807);
+ boost::int_fast64_t int_fast64 = INT64_C(-9223372036854775807);
+
+ boost::uint64_t uint64 = UINT64_C(18446744073709551615);
+ boost::uint_least64_t uint_least64 = UINT64_C(18446744073709551615);
+ boost::uint_fast64_t uint_fast64 = UINT64_C(18446744073709551615);
+
+ boost::intmax_t intmax = INTMAX_C(-9223372036854775807);
+ boost::uintmax_t uintmax = UINTMAX_C(18446744073709551615);
+#else
+ boost::intmax_t intmax = INTMAX_C(-2147483647);
+ boost::uintmax_t uintmax = UINTMAX_C(4294967295);
+#endif
+
+ BOOST_TEST( int8 == -127 );
+ BOOST_TEST( int_least8 == -127 );
+ BOOST_TEST( int_fast8 == -127 );
+ BOOST_TEST( uint8 == 255u );
+ BOOST_TEST( uint_least8 == 255u );
+ BOOST_TEST( uint_fast8 == 255u );
+ BOOST_TEST( int16 == -32767 );
+ BOOST_TEST( int_least16 == -32767 );
+ BOOST_TEST( int_fast16 == -32767 );
+ BOOST_TEST( uint16 == 65535u );
+ BOOST_TEST( uint_least16 == 65535u );
+ BOOST_TEST( uint_fast16 == 65535u );
+ BOOST_TEST( int32 == -2147483647 );
+ BOOST_TEST( int_least32 == -2147483647 );
+ BOOST_TEST( int_fast32 == -2147483647 );
+ BOOST_TEST( uint32 == 4294967295u );
+ BOOST_TEST( uint_least32 == 4294967295u );
+ BOOST_TEST( uint_fast32 == 4294967295u );
+
+#ifndef BOOST_NO_INT64_T
+ BOOST_TEST( int64 == INT64_C(-9223372036854775807) );
+ BOOST_TEST( int_least64 == INT64_C(-9223372036854775807) );
+ BOOST_TEST( int_fast64 == INT64_C(-9223372036854775807) );
+ BOOST_TEST( uint64 == UINT64_C(18446744073709551615) );
+ BOOST_TEST( uint_least64 == UINT64_C(18446744073709551615) );
+ BOOST_TEST( uint_fast64 == UINT64_C(18446744073709551615) );
+ BOOST_TEST( intmax == INT64_C(-9223372036854775807) );
+ BOOST_TEST( uintmax == UINT64_C(18446744073709551615) );
+#else
+ BOOST_TEST( intmax == -2147483647 );
+ BOOST_TEST( uintmax == 4294967295u );
+#endif
+
+
+ std::cout << "OK\n";
+ return boost::report_errors();
+}
diff --git a/libs/config/test/no_std_unordered_fail.cpp b/libs/config/test/has_int128_fail.cpp
index afc31bea51..a22755710c 100644
--- a/libs/config/test/no_std_unordered_fail.cpp
+++ b/libs/config/test/has_int128_fail.cpp
@@ -1,4 +1,4 @@
-// This file was automatically generated on Tue Dec 16 16:41:40 2008
+// This file was automatically generated on Thu Oct 25 10:14:36 2012
// by libs/config/tools/generate.cpp
// Copyright John Maddock 2002-4.
// Use, modification and distribution are subject to the
@@ -6,14 +6,14 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: generate.cpp 49281 2008-10-11 15:40:44Z johnmaddock $
+// Revision $Id$
//
-// Test file for macro BOOST_NO_STD_UNORDERED
+// Test file for macro BOOST_HAS_INT128
// This file should not compile, if it does then
-// BOOST_NO_STD_UNORDERED should not be defined.
-// See file boost_no_std_unordered.ipp for details
+// BOOST_HAS_INT128 should be defined.
+// See file boost_has_int128.ipp for details
// Must not have BOOST_ASSERT_CONFIG set; it defeats
// the objective of this file:
@@ -24,14 +24,14 @@
#include <boost/config.hpp>
#include "test.hpp"
-#ifdef BOOST_NO_STD_UNORDERED
-#include "boost_no_std_unordered.ipp"
+#ifndef BOOST_HAS_INT128
+#include "boost_has_int128.ipp"
#else
#error "this file should not compile"
#endif
int main( int, char *[] )
{
- return boost_no_std_unordered::test();
+ return boost_has_int128::test();
}
diff --git a/libs/config/test/no_std_unordered_pass.cpp b/libs/config/test/has_int128_pass.cpp
index 5ef2bf0259..9c59390133 100644
--- a/libs/config/test/no_std_unordered_pass.cpp
+++ b/libs/config/test/has_int128_pass.cpp
@@ -1,4 +1,4 @@
-// This file was automatically generated on Tue Dec 16 16:41:40 2008
+// This file was automatically generated on Thu Oct 25 10:14:36 2012
// by libs/config/tools/generate.cpp
// Copyright John Maddock 2002-4.
// Use, modification and distribution are subject to the
@@ -6,14 +6,14 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: generate.cpp 49281 2008-10-11 15:40:44Z johnmaddock $
+// Revision $Id$
//
-// Test file for macro BOOST_NO_STD_UNORDERED
+// Test file for macro BOOST_HAS_INT128
// This file should compile, if it does not then
-// BOOST_NO_STD_UNORDERED should be defined.
-// See file boost_no_std_unordered.ipp for details
+// BOOST_HAS_INT128 should not be defined.
+// See file boost_has_int128.ipp for details
// Must not have BOOST_ASSERT_CONFIG set; it defeats
// the objective of this file:
@@ -24,14 +24,14 @@
#include <boost/config.hpp>
#include "test.hpp"
-#ifndef BOOST_NO_STD_UNORDERED
-#include "boost_no_std_unordered.ipp"
+#ifdef BOOST_HAS_INT128
+#include "boost_has_int128.ipp"
#else
-namespace boost_no_std_unordered = empty_boost;
+namespace boost_has_int128 = empty_boost;
#endif
int main( int, char *[] )
{
- return boost_no_std_unordered::test();
+ return boost_has_int128::test();
}
diff --git a/libs/config/test/has_tr1_array_fail.cpp b/libs/config/test/has_tr1_array_fail.cpp
index e20bf374ef..36a33a153b 100644
--- a/libs/config/test/has_tr1_array_fail.cpp
+++ b/libs/config/test/has_tr1_array_fail.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: has_tr1_array_fail.cpp 47435 2008-07-15 10:41:52Z johnmaddock $
+// Revision $Id$
//
diff --git a/libs/config/test/has_tr1_array_pass.cpp b/libs/config/test/has_tr1_array_pass.cpp
index ec012ad4b4..4b07315712 100644
--- a/libs/config/test/has_tr1_array_pass.cpp
+++ b/libs/config/test/has_tr1_array_pass.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: has_tr1_array_pass.cpp 47435 2008-07-15 10:41:52Z johnmaddock $
+// Revision $Id$
//
diff --git a/libs/config/test/has_tr1_bind_fail.cpp b/libs/config/test/has_tr1_bind_fail.cpp
index df5473b7d9..7af7516ec5 100644
--- a/libs/config/test/has_tr1_bind_fail.cpp
+++ b/libs/config/test/has_tr1_bind_fail.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: has_tr1_bind_fail.cpp 47435 2008-07-15 10:41:52Z johnmaddock $
+// Revision $Id$
//
diff --git a/libs/config/test/has_tr1_bind_pass.cpp b/libs/config/test/has_tr1_bind_pass.cpp
index 5b701b77bb..54a6a6be9d 100644
--- a/libs/config/test/has_tr1_bind_pass.cpp
+++ b/libs/config/test/has_tr1_bind_pass.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: has_tr1_bind_pass.cpp 47435 2008-07-15 10:41:52Z johnmaddock $
+// Revision $Id$
//
diff --git a/libs/config/test/has_tr1_complex_over_fail.cpp b/libs/config/test/has_tr1_complex_over_fail.cpp
index a5ba4ce516..1f282190da 100644
--- a/libs/config/test/has_tr1_complex_over_fail.cpp
+++ b/libs/config/test/has_tr1_complex_over_fail.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: has_tr1_complex_over_fail.cpp 47435 2008-07-15 10:41:52Z johnmaddock $
+// Revision $Id$
//
diff --git a/libs/config/test/has_tr1_complex_over_pass.cpp b/libs/config/test/has_tr1_complex_over_pass.cpp
index d3f4250791..5535cdad0c 100644
--- a/libs/config/test/has_tr1_complex_over_pass.cpp
+++ b/libs/config/test/has_tr1_complex_over_pass.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: has_tr1_complex_over_pass.cpp 47435 2008-07-15 10:41:52Z johnmaddock $
+// Revision $Id$
//
diff --git a/libs/config/test/has_tr1_complex_trig_fail.cpp b/libs/config/test/has_tr1_complex_trig_fail.cpp
index 0a7eaa8e79..3c1ce163e9 100644
--- a/libs/config/test/has_tr1_complex_trig_fail.cpp
+++ b/libs/config/test/has_tr1_complex_trig_fail.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: has_tr1_complex_trig_fail.cpp 47435 2008-07-15 10:41:52Z johnmaddock $
+// Revision $Id$
//
diff --git a/libs/config/test/has_tr1_complex_trig_pass.cpp b/libs/config/test/has_tr1_complex_trig_pass.cpp
index 71748fc559..9aca24b424 100644
--- a/libs/config/test/has_tr1_complex_trig_pass.cpp
+++ b/libs/config/test/has_tr1_complex_trig_pass.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: has_tr1_complex_trig_pass.cpp 47435 2008-07-15 10:41:52Z johnmaddock $
+// Revision $Id$
//
diff --git a/libs/config/test/has_tr1_function_fail.cpp b/libs/config/test/has_tr1_function_fail.cpp
index d65ad14cdb..f6e3a2dbcf 100644
--- a/libs/config/test/has_tr1_function_fail.cpp
+++ b/libs/config/test/has_tr1_function_fail.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: has_tr1_function_fail.cpp 47435 2008-07-15 10:41:52Z johnmaddock $
+// Revision $Id$
//
diff --git a/libs/config/test/has_tr1_function_pass.cpp b/libs/config/test/has_tr1_function_pass.cpp
index ae3e25f0c8..8aa466c186 100644
--- a/libs/config/test/has_tr1_function_pass.cpp
+++ b/libs/config/test/has_tr1_function_pass.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: has_tr1_function_pass.cpp 47435 2008-07-15 10:41:52Z johnmaddock $
+// Revision $Id$
//
diff --git a/libs/config/test/has_tr1_hash_fail.cpp b/libs/config/test/has_tr1_hash_fail.cpp
index e453374b28..2c072e88d5 100644
--- a/libs/config/test/has_tr1_hash_fail.cpp
+++ b/libs/config/test/has_tr1_hash_fail.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: has_tr1_hash_fail.cpp 47435 2008-07-15 10:41:52Z johnmaddock $
+// Revision $Id$
//
diff --git a/libs/config/test/has_tr1_hash_pass.cpp b/libs/config/test/has_tr1_hash_pass.cpp
index d38005a959..48c293477a 100644
--- a/libs/config/test/has_tr1_hash_pass.cpp
+++ b/libs/config/test/has_tr1_hash_pass.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: has_tr1_hash_pass.cpp 47435 2008-07-15 10:41:52Z johnmaddock $
+// Revision $Id$
//
diff --git a/libs/config/test/has_tr1_mem_fn_fail.cpp b/libs/config/test/has_tr1_mem_fn_fail.cpp
index 46b72d7b78..01bff252d9 100644
--- a/libs/config/test/has_tr1_mem_fn_fail.cpp
+++ b/libs/config/test/has_tr1_mem_fn_fail.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: has_tr1_mem_fn_fail.cpp 47435 2008-07-15 10:41:52Z johnmaddock $
+// Revision $Id$
//
diff --git a/libs/config/test/has_tr1_mem_fn_pass.cpp b/libs/config/test/has_tr1_mem_fn_pass.cpp
index da34f539d1..9a1398d083 100644
--- a/libs/config/test/has_tr1_mem_fn_pass.cpp
+++ b/libs/config/test/has_tr1_mem_fn_pass.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: has_tr1_mem_fn_pass.cpp 47435 2008-07-15 10:41:52Z johnmaddock $
+// Revision $Id$
//
diff --git a/libs/config/test/has_tr1_random_fail.cpp b/libs/config/test/has_tr1_random_fail.cpp
index 0c835b7002..15e5a3a81c 100644
--- a/libs/config/test/has_tr1_random_fail.cpp
+++ b/libs/config/test/has_tr1_random_fail.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: has_tr1_random_fail.cpp 47435 2008-07-15 10:41:52Z johnmaddock $
+// Revision $Id$
//
diff --git a/libs/config/test/has_tr1_random_pass.cpp b/libs/config/test/has_tr1_random_pass.cpp
index be4362cd92..9dd86abf8b 100644
--- a/libs/config/test/has_tr1_random_pass.cpp
+++ b/libs/config/test/has_tr1_random_pass.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: has_tr1_random_pass.cpp 47435 2008-07-15 10:41:52Z johnmaddock $
+// Revision $Id$
//
diff --git a/libs/config/test/has_tr1_ref_wrap_fail.cpp b/libs/config/test/has_tr1_ref_wrap_fail.cpp
index 3708b8b9cf..c44abb5816 100644
--- a/libs/config/test/has_tr1_ref_wrap_fail.cpp
+++ b/libs/config/test/has_tr1_ref_wrap_fail.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: has_tr1_ref_wrap_fail.cpp 47435 2008-07-15 10:41:52Z johnmaddock $
+// Revision $Id$
//
diff --git a/libs/config/test/has_tr1_ref_wrap_pass.cpp b/libs/config/test/has_tr1_ref_wrap_pass.cpp
index d43985cb7f..909530120b 100644
--- a/libs/config/test/has_tr1_ref_wrap_pass.cpp
+++ b/libs/config/test/has_tr1_ref_wrap_pass.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: has_tr1_ref_wrap_pass.cpp 47435 2008-07-15 10:41:52Z johnmaddock $
+// Revision $Id$
//
diff --git a/libs/config/test/has_tr1_regex_fail.cpp b/libs/config/test/has_tr1_regex_fail.cpp
index f5bdd74fd5..7daac7320e 100644
--- a/libs/config/test/has_tr1_regex_fail.cpp
+++ b/libs/config/test/has_tr1_regex_fail.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: has_tr1_regex_fail.cpp 47435 2008-07-15 10:41:52Z johnmaddock $
+// Revision $Id$
//
diff --git a/libs/config/test/has_tr1_regex_pass.cpp b/libs/config/test/has_tr1_regex_pass.cpp
index 223da16628..d6cfa887e6 100644
--- a/libs/config/test/has_tr1_regex_pass.cpp
+++ b/libs/config/test/has_tr1_regex_pass.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: has_tr1_regex_pass.cpp 47435 2008-07-15 10:41:52Z johnmaddock $
+// Revision $Id$
//
diff --git a/libs/config/test/has_tr1_result_of_fail.cpp b/libs/config/test/has_tr1_result_of_fail.cpp
index fa5640aa99..1fc14f3bab 100644
--- a/libs/config/test/has_tr1_result_of_fail.cpp
+++ b/libs/config/test/has_tr1_result_of_fail.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: has_tr1_result_of_fail.cpp 47435 2008-07-15 10:41:52Z johnmaddock $
+// Revision $Id$
//
diff --git a/libs/config/test/has_tr1_result_of_pass.cpp b/libs/config/test/has_tr1_result_of_pass.cpp
index c2080a8636..b770847c00 100644
--- a/libs/config/test/has_tr1_result_of_pass.cpp
+++ b/libs/config/test/has_tr1_result_of_pass.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: has_tr1_result_of_pass.cpp 47435 2008-07-15 10:41:52Z johnmaddock $
+// Revision $Id$
//
diff --git a/libs/config/test/has_tr1_shared_ptr_fail.cpp b/libs/config/test/has_tr1_shared_ptr_fail.cpp
index a032199896..bbd2fc5178 100644
--- a/libs/config/test/has_tr1_shared_ptr_fail.cpp
+++ b/libs/config/test/has_tr1_shared_ptr_fail.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: has_tr1_shared_ptr_fail.cpp 47435 2008-07-15 10:41:52Z johnmaddock $
+// Revision $Id$
//
diff --git a/libs/config/test/has_tr1_shared_ptr_pass.cpp b/libs/config/test/has_tr1_shared_ptr_pass.cpp
index aa3b65e24c..a4c9764a6b 100644
--- a/libs/config/test/has_tr1_shared_ptr_pass.cpp
+++ b/libs/config/test/has_tr1_shared_ptr_pass.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: has_tr1_shared_ptr_pass.cpp 47435 2008-07-15 10:41:52Z johnmaddock $
+// Revision $Id$
//
diff --git a/libs/config/test/has_tr1_tuple_fail.cpp b/libs/config/test/has_tr1_tuple_fail.cpp
index d14e797fe4..5ea571e3a2 100644
--- a/libs/config/test/has_tr1_tuple_fail.cpp
+++ b/libs/config/test/has_tr1_tuple_fail.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: has_tr1_tuple_fail.cpp 47435 2008-07-15 10:41:52Z johnmaddock $
+// Revision $Id$
//
diff --git a/libs/config/test/has_tr1_tuple_pass.cpp b/libs/config/test/has_tr1_tuple_pass.cpp
index f85e2cfdd4..6c6d949b67 100644
--- a/libs/config/test/has_tr1_tuple_pass.cpp
+++ b/libs/config/test/has_tr1_tuple_pass.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: has_tr1_tuple_pass.cpp 47435 2008-07-15 10:41:52Z johnmaddock $
+// Revision $Id$
//
diff --git a/libs/config/test/has_tr1_type_traits_fail.cpp b/libs/config/test/has_tr1_type_traits_fail.cpp
index 5cfdf41bf3..b4edd4ef0a 100644
--- a/libs/config/test/has_tr1_type_traits_fail.cpp
+++ b/libs/config/test/has_tr1_type_traits_fail.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: has_tr1_type_traits_fail.cpp 47435 2008-07-15 10:41:52Z johnmaddock $
+// Revision $Id$
//
diff --git a/libs/config/test/has_tr1_type_traits_pass.cpp b/libs/config/test/has_tr1_type_traits_pass.cpp
index 572fe39163..d2c51ddf01 100644
--- a/libs/config/test/has_tr1_type_traits_pass.cpp
+++ b/libs/config/test/has_tr1_type_traits_pass.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: has_tr1_type_traits_pass.cpp 47435 2008-07-15 10:41:52Z johnmaddock $
+// Revision $Id$
//
diff --git a/libs/config/test/has_tr1_unordered_map_fail.cpp b/libs/config/test/has_tr1_unordered_map_fail.cpp
index 0a4c49df0d..b272dbbe8f 100644
--- a/libs/config/test/has_tr1_unordered_map_fail.cpp
+++ b/libs/config/test/has_tr1_unordered_map_fail.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: has_tr1_unordered_map_fail.cpp 47435 2008-07-15 10:41:52Z johnmaddock $
+// Revision $Id$
//
diff --git a/libs/config/test/has_tr1_unordered_map_pass.cpp b/libs/config/test/has_tr1_unordered_map_pass.cpp
index e92ed109e0..e222c01a09 100644
--- a/libs/config/test/has_tr1_unordered_map_pass.cpp
+++ b/libs/config/test/has_tr1_unordered_map_pass.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: has_tr1_unordered_map_pass.cpp 47435 2008-07-15 10:41:52Z johnmaddock $
+// Revision $Id$
//
diff --git a/libs/config/test/has_tr1_unordered_set_fail.cpp b/libs/config/test/has_tr1_unordered_set_fail.cpp
index 1f24029077..d11fb35221 100644
--- a/libs/config/test/has_tr1_unordered_set_fail.cpp
+++ b/libs/config/test/has_tr1_unordered_set_fail.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: has_tr1_unordered_set_fail.cpp 47435 2008-07-15 10:41:52Z johnmaddock $
+// Revision $Id$
//
diff --git a/libs/config/test/has_tr1_unordered_set_pass.cpp b/libs/config/test/has_tr1_unordered_set_pass.cpp
index 86ccee7c54..23c9406ec3 100644
--- a/libs/config/test/has_tr1_unordered_set_pass.cpp
+++ b/libs/config/test/has_tr1_unordered_set_pass.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: has_tr1_unordered_set_pass.cpp 47435 2008-07-15 10:41:52Z johnmaddock $
+// Revision $Id$
//
diff --git a/libs/config/test/has_tr1_utility_fail.cpp b/libs/config/test/has_tr1_utility_fail.cpp
index 7246c53ec1..5c82a0d592 100644
--- a/libs/config/test/has_tr1_utility_fail.cpp
+++ b/libs/config/test/has_tr1_utility_fail.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: has_tr1_utility_fail.cpp 47435 2008-07-15 10:41:52Z johnmaddock $
+// Revision $Id$
//
diff --git a/libs/config/test/has_tr1_utility_pass.cpp b/libs/config/test/has_tr1_utility_pass.cpp
index 538ca9615f..ccdd1acd87 100644
--- a/libs/config/test/has_tr1_utility_pass.cpp
+++ b/libs/config/test/has_tr1_utility_pass.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: has_tr1_utility_pass.cpp 47435 2008-07-15 10:41:52Z johnmaddock $
+// Revision $Id$
//
diff --git a/libs/config/test/helper_macro_test.cpp b/libs/config/test/helper_macro_test.cpp
new file mode 100644
index 0000000000..81737fec0f
--- /dev/null
+++ b/libs/config/test/helper_macro_test.cpp
@@ -0,0 +1,60 @@
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+#include <boost/config.hpp>
+
+int test_fallthrough(int n)
+{
+ switch (n)
+ {
+ case 0:
+ n++;
+ BOOST_FALLTHROUGH;
+ case 1:
+ n++;
+ break;
+ }
+ return n;
+}
+
+int test_unreachable(int i)
+{
+ if(BOOST_LIKELY(i)) return i;
+
+ throw i;
+ BOOST_UNREACHABLE_RETURN(0);
+}
+
+BOOST_FORCEINLINE int always_inline(int i){ return ++i; }
+BOOST_NOINLINE int never_inline(int i){ return ++i; }
+
+BOOST_NORETURN void always_throw()
+{
+ throw 0;
+}
+
+
+#define test_fallthrough(x) foobar(x)
+
+
+int main()
+{
+ typedef int unused_type BOOST_ATTRIBUTE_UNUSED;
+ try
+ {
+ int result = test_fallthrough BOOST_PREVENT_MACRO_SUBSTITUTION(0);
+ BOOST_STATIC_CONSTANT(bool, value = 0);
+ result += test_unreachable(1);
+ result += always_inline(2);
+ result += never_inline(3);
+ if(BOOST_UNLIKELY(!result))
+ always_throw();
+ }
+ catch(int)
+ {
+ return 1;
+ }
+ return 0;
+}
+
diff --git a/libs/config/test/limits_test.cpp b/libs/config/test/limits_test.cpp
index da27f4f43a..3a4cd3a691 100644
--- a/libs/config/test/limits_test.cpp
+++ b/libs/config/test/limits_test.cpp
@@ -5,7 +5,7 @@
* accompanying file LICENSE_1_0.txt or copy at
* http://www.boost.org/LICENSE_1_0.txt)
*
- * $Id: limits_test.cpp 79537 2012-07-15 15:59:05Z marshall $
+ * $Id$
*/
#include <boost/limits.hpp>
diff --git a/libs/config/test/link/test/Jamfile.v2 b/libs/config/test/link/test/Jamfile.v2
index 22668af24a..251e525667 100644
--- a/libs/config/test/link/test/Jamfile.v2
+++ b/libs/config/test/link/test/Jamfile.v2
@@ -73,10 +73,10 @@ autolink-lib link_test : ../link_test.cpp
explicit link_test ;
run ../main.cpp link_test
- : : : <toolset>msvc-8.0:<build>no <toolset>msvc-9.0:<build>no <toolset>msvc-10.0:<build>no <link>static <runtime-link>static <threading>single debug : link_test_ssd ;
+ : : : <toolset>msvc-8.0:<build>no <toolset>msvc-9.0:<build>no <toolset>msvc-10.0:<build>no <toolset>msvc-11.0:<build>no <toolset>msvc-12.0:<build>no <link>static <runtime-link>static <threading>single debug : link_test_ssd ;
run ../main.cpp link_test
- : : : <toolset>msvc-8.0:<build>no <toolset>msvc-9.0:<build>no <toolset>msvc-10.0:<build>no <link>static <runtime-link>static <threading>single release : link_test_ssr ;
+ : : : <toolset>msvc-8.0:<build>no <toolset>msvc-9.0:<build>no <toolset>msvc-10.0:<build>no <toolset>msvc-11.0:<build>no <toolset>msvc-12.0:<build>no <link>static <runtime-link>static <threading>single release : link_test_ssr ;
run ../main.cpp link_test
: : : <link>static <runtime-link>static <threading>multi debug : link_test_smd ;
diff --git a/libs/config/test/no_auto_declarations_fail.cpp b/libs/config/test/no_auto_declarations_fail.cpp
index 892061165b..8f770df7fa 100644
--- a/libs/config/test/no_auto_declarations_fail.cpp
+++ b/libs/config/test/no_auto_declarations_fail.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_auto_declarations_fail.cpp 79537 2012-07-15 15:59:05Z marshall $
+// Revision $Id$
//
@@ -32,6 +32,6 @@
int main( int, char *[] )
{
- return boost_no_auto_declarations::test();
+ return boost_no_cxx11_auto_declarations::test();
}
diff --git a/libs/config/test/no_auto_declarations_pass.cpp b/libs/config/test/no_auto_declarations_pass.cpp
index d5dcdf1d66..b901aaff76 100644
--- a/libs/config/test/no_auto_declarations_pass.cpp
+++ b/libs/config/test/no_auto_declarations_pass.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_auto_declarations_pass.cpp 79537 2012-07-15 15:59:05Z marshall $
+// Revision $Id$
//
@@ -27,11 +27,11 @@
#ifndef BOOST_NO_CXX11_AUTO_DECLARATIONS
#include "boost_no_auto_declarations.ipp"
#else
-namespace boost_no_auto_declarations = empty_boost;
+namespace boost_no_cxx11_auto_declarations = empty_boost;
#endif
int main( int, char *[] )
{
- return boost_no_auto_declarations::test();
+ return boost_no_cxx11_auto_declarations::test();
}
diff --git a/libs/config/test/no_auto_multidecl_fail.cpp b/libs/config/test/no_auto_multidecl_fail.cpp
index f1cc9f9113..6646447398 100644
--- a/libs/config/test/no_auto_multidecl_fail.cpp
+++ b/libs/config/test/no_auto_multidecl_fail.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_auto_multidecl_fail.cpp 79537 2012-07-15 15:59:05Z marshall $
+// Revision $Id$
//
@@ -32,6 +32,6 @@
int main( int, char *[] )
{
- return boost_no_auto_multideclarations::test();
+ return boost_no_cxx11_auto_multideclarations::test();
}
diff --git a/libs/config/test/no_auto_multidecl_pass.cpp b/libs/config/test/no_auto_multidecl_pass.cpp
index e9710c7ee1..b2071ea647 100644
--- a/libs/config/test/no_auto_multidecl_pass.cpp
+++ b/libs/config/test/no_auto_multidecl_pass.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_auto_multidecl_pass.cpp 79537 2012-07-15 15:59:05Z marshall $
+// Revision $Id$
//
@@ -27,11 +27,11 @@
#ifndef BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
#include "boost_no_auto_multidecl.ipp"
#else
-namespace boost_no_auto_multideclarations = empty_boost;
+namespace boost_no_cxx11_auto_multideclarations = empty_boost;
#endif
int main( int, char *[] )
{
- return boost_no_auto_multideclarations::test();
+ return boost_no_cxx11_auto_multideclarations::test();
}
diff --git a/libs/config/test/no_char16_t_fail.cpp b/libs/config/test/no_char16_t_fail.cpp
index 2642d09452..63ddf7ac98 100644
--- a/libs/config/test/no_char16_t_fail.cpp
+++ b/libs/config/test/no_char16_t_fail.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_char16_t_fail.cpp 79537 2012-07-15 15:59:05Z marshall $
+// Revision $Id$
//
@@ -32,6 +32,6 @@
int main( int, char *[] )
{
- return boost_no_char16_t::test();
+ return boost_no_cxx11_char16_t::test();
}
diff --git a/libs/config/test/no_char16_t_pass.cpp b/libs/config/test/no_char16_t_pass.cpp
index 2033ef1e74..b714f09836 100644
--- a/libs/config/test/no_char16_t_pass.cpp
+++ b/libs/config/test/no_char16_t_pass.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_char16_t_pass.cpp 79537 2012-07-15 15:59:05Z marshall $
+// Revision $Id$
//
@@ -27,11 +27,11 @@
#ifndef BOOST_NO_CXX11_CHAR16_T
#include "boost_no_char16_t.ipp"
#else
-namespace boost_no_char16_t = empty_boost;
+namespace boost_no_cxx11_char16_t = empty_boost;
#endif
int main( int, char *[] )
{
- return boost_no_char16_t::test();
+ return boost_no_cxx11_char16_t::test();
}
diff --git a/libs/config/test/no_char32_t_fail.cpp b/libs/config/test/no_char32_t_fail.cpp
index 0db24e68d0..868050eea5 100644
--- a/libs/config/test/no_char32_t_fail.cpp
+++ b/libs/config/test/no_char32_t_fail.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_char32_t_fail.cpp 79537 2012-07-15 15:59:05Z marshall $
+// Revision $Id$
//
@@ -32,6 +32,6 @@
int main( int, char *[] )
{
- return boost_no_char32_t::test();
+ return boost_no_cxx11_char32_t::test();
}
diff --git a/libs/config/test/no_char32_t_pass.cpp b/libs/config/test/no_char32_t_pass.cpp
index bf89241fa8..4bb7d5f31a 100644
--- a/libs/config/test/no_char32_t_pass.cpp
+++ b/libs/config/test/no_char32_t_pass.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_char32_t_pass.cpp 79537 2012-07-15 15:59:05Z marshall $
+// Revision $Id$
//
@@ -27,11 +27,11 @@
#ifndef BOOST_NO_CXX11_CHAR32_T
#include "boost_no_char32_t.ipp"
#else
-namespace boost_no_char32_t = empty_boost;
+namespace boost_no_cxx11_char32_t = empty_boost;
#endif
int main( int, char *[] )
{
- return boost_no_char32_t::test();
+ return boost_no_cxx11_char32_t::test();
}
diff --git a/libs/config/test/no_constexpr_fail.cpp b/libs/config/test/no_constexpr_fail.cpp
index 37561f1acb..0f1163c406 100644
--- a/libs/config/test/no_constexpr_fail.cpp
+++ b/libs/config/test/no_constexpr_fail.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_constexpr_fail.cpp 79537 2012-07-15 15:59:05Z marshall $
+// Revision $Id$
//
@@ -32,6 +32,6 @@
int main( int, char *[] )
{
- return boost_no_constexpr::test();
+ return boost_no_cxx11_constexpr::test();
}
diff --git a/libs/config/test/no_constexpr_pass.cpp b/libs/config/test/no_constexpr_pass.cpp
index ab87357927..fbacd360a1 100644
--- a/libs/config/test/no_constexpr_pass.cpp
+++ b/libs/config/test/no_constexpr_pass.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_constexpr_pass.cpp 79537 2012-07-15 15:59:05Z marshall $
+// Revision $Id$
//
@@ -27,11 +27,11 @@
#ifndef BOOST_NO_CXX11_CONSTEXPR
#include "boost_no_constexpr.ipp"
#else
-namespace boost_no_constexpr = empty_boost;
+namespace boost_no_cxx11_constexpr = empty_boost;
#endif
int main( int, char *[] )
{
- return boost_no_constexpr::test();
+ return boost_no_cxx11_constexpr::test();
}
diff --git a/libs/config/test/no_cxx11_addressof_fail.cpp b/libs/config/test/no_cxx11_addressof_fail.cpp
new file mode 100644
index 0000000000..9216b5effc
--- /dev/null
+++ b/libs/config/test/no_cxx11_addressof_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Tue Feb 11 17:12:27 2014
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id$
+//
+
+
+// Test file for macro BOOST_NO_CXX11_ADDRESSOF
+// This file should not compile, if it does then
+// BOOST_NO_CXX11_ADDRESSOF should not be defined.
+// See file boost_no_cxx11_addressof.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_CXX11_ADDRESSOF
+#include "boost_no_cxx11_addressof.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_cxx11_addressof::test();
+}
+
diff --git a/libs/config/test/no_cxx11_addressof_pass.cpp b/libs/config/test/no_cxx11_addressof_pass.cpp
new file mode 100644
index 0000000000..e4e84abc17
--- /dev/null
+++ b/libs/config/test/no_cxx11_addressof_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Tue Feb 11 17:12:27 2014
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id$
+//
+
+
+// Test file for macro BOOST_NO_CXX11_ADDRESSOF
+// This file should compile, if it does not then
+// BOOST_NO_CXX11_ADDRESSOF should be defined.
+// See file boost_no_cxx11_addressof.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_CXX11_ADDRESSOF
+#include "boost_no_cxx11_addressof.ipp"
+#else
+namespace boost_no_cxx11_addressof = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_cxx11_addressof::test();
+}
+
diff --git a/libs/config/test/no_cxx11_alignas_fail.cpp b/libs/config/test/no_cxx11_alignas_fail.cpp
new file mode 100644
index 0000000000..767aaa34d2
--- /dev/null
+++ b/libs/config/test/no_cxx11_alignas_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Sun Apr 28 18:36:48 2013
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id$
+//
+
+
+// Test file for macro BOOST_NO_CXX11_ALIGNAS
+// This file should not compile, if it does then
+// BOOST_NO_CXX11_ALIGNAS should not be defined.
+// See file boost_no_cxx11_alignas.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_CXX11_ALIGNAS
+#include "boost_no_cxx11_alignas.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_cxx11_alignas::test();
+}
+
diff --git a/libs/config/test/no_cxx11_alignas_pass.cpp b/libs/config/test/no_cxx11_alignas_pass.cpp
new file mode 100644
index 0000000000..b8b84b9350
--- /dev/null
+++ b/libs/config/test/no_cxx11_alignas_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Sun Apr 28 18:36:48 2013
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id$
+//
+
+
+// Test file for macro BOOST_NO_CXX11_ALIGNAS
+// This file should compile, if it does not then
+// BOOST_NO_CXX11_ALIGNAS should be defined.
+// See file boost_no_cxx11_alignas.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_CXX11_ALIGNAS
+#include "boost_no_cxx11_alignas.ipp"
+#else
+namespace boost_no_cxx11_alignas = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_cxx11_alignas::test();
+}
+
diff --git a/libs/config/test/no_cxx11_final_fail.cpp b/libs/config/test/no_cxx11_final_fail.cpp
new file mode 100644
index 0000000000..50c35a2074
--- /dev/null
+++ b/libs/config/test/no_cxx11_final_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Fri Aug 15 15:51:00 2014
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id$
+//
+
+
+// Test file for macro BOOST_NO_CXX11_FINAL
+// This file should not compile, if it does then
+// BOOST_NO_CXX11_FINAL should not be defined.
+// See file boost_no_cxx11_final.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_CXX11_FINAL
+#include "boost_no_cxx11_final.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_cxx11_final::test();
+}
+
diff --git a/libs/config/test/no_cxx11_final_pass.cpp b/libs/config/test/no_cxx11_final_pass.cpp
new file mode 100644
index 0000000000..e18530bd49
--- /dev/null
+++ b/libs/config/test/no_cxx11_final_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Fri Aug 15 15:51:00 2014
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id$
+//
+
+
+// Test file for macro BOOST_NO_CXX11_FINAL
+// This file should compile, if it does not then
+// BOOST_NO_CXX11_FINAL should be defined.
+// See file boost_no_cxx11_final.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_CXX11_FINAL
+#include "boost_no_cxx11_final.ipp"
+#else
+namespace boost_no_cxx11_final = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_cxx11_final::test();
+}
+
diff --git a/libs/config/test/no_cxx11_hdr_array_fail.cpp b/libs/config/test/no_cxx11_hdr_array_fail.cpp
index 3c6c55ea0f..766c0f5860 100644
--- a/libs/config/test/no_cxx11_hdr_array_fail.cpp
+++ b/libs/config/test/no_cxx11_hdr_array_fail.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_cxx11_hdr_array_fail.cpp 78478 2012-05-15 11:57:21Z johnmaddock $
+// Revision $Id$
//
diff --git a/libs/config/test/no_cxx11_hdr_array_pass.cpp b/libs/config/test/no_cxx11_hdr_array_pass.cpp
index 79e0af8165..493840542c 100644
--- a/libs/config/test/no_cxx11_hdr_array_pass.cpp
+++ b/libs/config/test/no_cxx11_hdr_array_pass.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_cxx11_hdr_array_pass.cpp 78478 2012-05-15 11:57:21Z johnmaddock $
+// Revision $Id$
//
diff --git a/libs/config/test/no_cxx11_hdr_atomic_fail.cpp b/libs/config/test/no_cxx11_hdr_atomic_fail.cpp
new file mode 100644
index 0000000000..cb6bd124e4
--- /dev/null
+++ b/libs/config/test/no_cxx11_hdr_atomic_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Thu Dec 12 19:07:12 2013
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id$
+//
+
+
+// Test file for macro BOOST_NO_CXX11_HDR_ATOMIC
+// This file should not compile, if it does then
+// BOOST_NO_CXX11_HDR_ATOMIC should not be defined.
+// See file boost_no_cxx11_hdr_atomic.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_CXX11_HDR_ATOMIC
+#include "boost_no_cxx11_hdr_atomic.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_cxx11_hdr_atomic::test();
+}
+
diff --git a/libs/config/test/no_cxx11_hdr_atomic_pass.cpp b/libs/config/test/no_cxx11_hdr_atomic_pass.cpp
new file mode 100644
index 0000000000..7258f646b8
--- /dev/null
+++ b/libs/config/test/no_cxx11_hdr_atomic_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Thu Dec 12 19:07:12 2013
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id$
+//
+
+
+// Test file for macro BOOST_NO_CXX11_HDR_ATOMIC
+// This file should compile, if it does not then
+// BOOST_NO_CXX11_HDR_ATOMIC should be defined.
+// See file boost_no_cxx11_hdr_atomic.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_CXX11_HDR_ATOMIC
+#include "boost_no_cxx11_hdr_atomic.ipp"
+#else
+namespace boost_no_cxx11_hdr_atomic = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_cxx11_hdr_atomic::test();
+}
+
diff --git a/libs/config/test/no_cxx11_hdr_chrono_fail.cpp b/libs/config/test/no_cxx11_hdr_chrono_fail.cpp
index 76631b9883..d1ac76e0b6 100644
--- a/libs/config/test/no_cxx11_hdr_chrono_fail.cpp
+++ b/libs/config/test/no_cxx11_hdr_chrono_fail.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_cxx11_hdr_chrono_fail.cpp 78478 2012-05-15 11:57:21Z johnmaddock $
+// Revision $Id$
//
diff --git a/libs/config/test/no_cxx11_hdr_chrono_pass.cpp b/libs/config/test/no_cxx11_hdr_chrono_pass.cpp
index 072cb3101d..3bc1af88a8 100644
--- a/libs/config/test/no_cxx11_hdr_chrono_pass.cpp
+++ b/libs/config/test/no_cxx11_hdr_chrono_pass.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_cxx11_hdr_chrono_pass.cpp 78478 2012-05-15 11:57:21Z johnmaddock $
+// Revision $Id$
//
diff --git a/libs/config/test/no_cxx11_hdr_codecvt_fail.cpp b/libs/config/test/no_cxx11_hdr_codecvt_fail.cpp
index 4b1dec572b..041fd0a2d5 100644
--- a/libs/config/test/no_cxx11_hdr_codecvt_fail.cpp
+++ b/libs/config/test/no_cxx11_hdr_codecvt_fail.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_cxx11_hdr_codecvt_fail.cpp 78478 2012-05-15 11:57:21Z johnmaddock $
+// Revision $Id$
//
diff --git a/libs/config/test/no_cxx11_hdr_codecvt_pass.cpp b/libs/config/test/no_cxx11_hdr_codecvt_pass.cpp
index 802f55809d..241a38d449 100644
--- a/libs/config/test/no_cxx11_hdr_codecvt_pass.cpp
+++ b/libs/config/test/no_cxx11_hdr_codecvt_pass.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_cxx11_hdr_codecvt_pass.cpp 78478 2012-05-15 11:57:21Z johnmaddock $
+// Revision $Id$
//
diff --git a/libs/config/test/no_cxx11_hdr_condition_variable_fail.cpp b/libs/config/test/no_cxx11_hdr_condition_variable_fail.cpp
index cacd4f1e7e..f34cd377cc 100644
--- a/libs/config/test/no_cxx11_hdr_condition_variable_fail.cpp
+++ b/libs/config/test/no_cxx11_hdr_condition_variable_fail.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_cxx11_hdr_condition_variable_fail.cpp 78478 2012-05-15 11:57:21Z johnmaddock $
+// Revision $Id$
//
diff --git a/libs/config/test/no_cxx11_hdr_condition_variable_pass.cpp b/libs/config/test/no_cxx11_hdr_condition_variable_pass.cpp
index 58791897d4..017084bbb3 100644
--- a/libs/config/test/no_cxx11_hdr_condition_variable_pass.cpp
+++ b/libs/config/test/no_cxx11_hdr_condition_variable_pass.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_cxx11_hdr_condition_variable_pass.cpp 78478 2012-05-15 11:57:21Z johnmaddock $
+// Revision $Id$
//
diff --git a/libs/config/test/no_cxx11_hdr_forward_list_fail.cpp b/libs/config/test/no_cxx11_hdr_forward_list_fail.cpp
index 66ea415dc6..9a1205d41e 100644
--- a/libs/config/test/no_cxx11_hdr_forward_list_fail.cpp
+++ b/libs/config/test/no_cxx11_hdr_forward_list_fail.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_cxx11_hdr_forward_list_fail.cpp 78478 2012-05-15 11:57:21Z johnmaddock $
+// Revision $Id$
//
diff --git a/libs/config/test/no_cxx11_hdr_forward_list_pass.cpp b/libs/config/test/no_cxx11_hdr_forward_list_pass.cpp
index f35c5c402f..3e8b55b598 100644
--- a/libs/config/test/no_cxx11_hdr_forward_list_pass.cpp
+++ b/libs/config/test/no_cxx11_hdr_forward_list_pass.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_cxx11_hdr_forward_list_pass.cpp 78478 2012-05-15 11:57:21Z johnmaddock $
+// Revision $Id$
//
diff --git a/libs/config/test/no_cxx11_hdr_future_fail.cpp b/libs/config/test/no_cxx11_hdr_future_fail.cpp
index 0b028652ff..7640f9d36c 100644
--- a/libs/config/test/no_cxx11_hdr_future_fail.cpp
+++ b/libs/config/test/no_cxx11_hdr_future_fail.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_cxx11_hdr_future_fail.cpp 78478 2012-05-15 11:57:21Z johnmaddock $
+// Revision $Id$
//
diff --git a/libs/config/test/no_cxx11_hdr_future_pass.cpp b/libs/config/test/no_cxx11_hdr_future_pass.cpp
index 488947f041..ec169526d1 100644
--- a/libs/config/test/no_cxx11_hdr_future_pass.cpp
+++ b/libs/config/test/no_cxx11_hdr_future_pass.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_cxx11_hdr_future_pass.cpp 78478 2012-05-15 11:57:21Z johnmaddock $
+// Revision $Id$
//
diff --git a/libs/config/test/no_cxx11_hdr_initializer_list_fail.cpp b/libs/config/test/no_cxx11_hdr_initializer_list_fail.cpp
index bdab725660..6dfe099e16 100644
--- a/libs/config/test/no_cxx11_hdr_initializer_list_fail.cpp
+++ b/libs/config/test/no_cxx11_hdr_initializer_list_fail.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_cxx11_hdr_initializer_list_fail.cpp 78478 2012-05-15 11:57:21Z johnmaddock $
+// Revision $Id$
//
diff --git a/libs/config/test/no_cxx11_hdr_initializer_list_pass.cpp b/libs/config/test/no_cxx11_hdr_initializer_list_pass.cpp
index d26d0abc1a..2a7153905d 100644
--- a/libs/config/test/no_cxx11_hdr_initializer_list_pass.cpp
+++ b/libs/config/test/no_cxx11_hdr_initializer_list_pass.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_cxx11_hdr_initializer_list_pass.cpp 78478 2012-05-15 11:57:21Z johnmaddock $
+// Revision $Id$
//
diff --git a/libs/config/test/no_cxx11_hdr_mutex_fail.cpp b/libs/config/test/no_cxx11_hdr_mutex_fail.cpp
index 9492083709..87432ec956 100644
--- a/libs/config/test/no_cxx11_hdr_mutex_fail.cpp
+++ b/libs/config/test/no_cxx11_hdr_mutex_fail.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_cxx11_hdr_mutex_fail.cpp 78478 2012-05-15 11:57:21Z johnmaddock $
+// Revision $Id$
//
diff --git a/libs/config/test/no_cxx11_hdr_mutex_pass.cpp b/libs/config/test/no_cxx11_hdr_mutex_pass.cpp
index c6ec00be9d..a912b2cad3 100644
--- a/libs/config/test/no_cxx11_hdr_mutex_pass.cpp
+++ b/libs/config/test/no_cxx11_hdr_mutex_pass.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_cxx11_hdr_mutex_pass.cpp 78478 2012-05-15 11:57:21Z johnmaddock $
+// Revision $Id$
//
diff --git a/libs/config/test/no_cxx11_hdr_random_fail.cpp b/libs/config/test/no_cxx11_hdr_random_fail.cpp
index ccbf2c77f7..e4ed0f8e7c 100644
--- a/libs/config/test/no_cxx11_hdr_random_fail.cpp
+++ b/libs/config/test/no_cxx11_hdr_random_fail.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_cxx11_hdr_random_fail.cpp 78478 2012-05-15 11:57:21Z johnmaddock $
+// Revision $Id$
//
diff --git a/libs/config/test/no_cxx11_hdr_random_pass.cpp b/libs/config/test/no_cxx11_hdr_random_pass.cpp
index 6c77dedbe5..7995481a2a 100644
--- a/libs/config/test/no_cxx11_hdr_random_pass.cpp
+++ b/libs/config/test/no_cxx11_hdr_random_pass.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_cxx11_hdr_random_pass.cpp 78478 2012-05-15 11:57:21Z johnmaddock $
+// Revision $Id$
//
diff --git a/libs/config/test/no_cxx11_hdr_ratio_fail.cpp b/libs/config/test/no_cxx11_hdr_ratio_fail.cpp
index 160405ce18..8e15efb62d 100644
--- a/libs/config/test/no_cxx11_hdr_ratio_fail.cpp
+++ b/libs/config/test/no_cxx11_hdr_ratio_fail.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_cxx11_hdr_ratio_fail.cpp 78478 2012-05-15 11:57:21Z johnmaddock $
+// Revision $Id$
//
diff --git a/libs/config/test/no_cxx11_hdr_ratio_pass.cpp b/libs/config/test/no_cxx11_hdr_ratio_pass.cpp
index 019c3e868e..8c1b2d4604 100644
--- a/libs/config/test/no_cxx11_hdr_ratio_pass.cpp
+++ b/libs/config/test/no_cxx11_hdr_ratio_pass.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_cxx11_hdr_ratio_pass.cpp 78478 2012-05-15 11:57:21Z johnmaddock $
+// Revision $Id$
//
diff --git a/libs/config/test/no_cxx11_hdr_regex_fail.cpp b/libs/config/test/no_cxx11_hdr_regex_fail.cpp
index a3990f32ff..178d5b5667 100644
--- a/libs/config/test/no_cxx11_hdr_regex_fail.cpp
+++ b/libs/config/test/no_cxx11_hdr_regex_fail.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_cxx11_hdr_regex_fail.cpp 78478 2012-05-15 11:57:21Z johnmaddock $
+// Revision $Id$
//
diff --git a/libs/config/test/no_cxx11_hdr_regex_pass.cpp b/libs/config/test/no_cxx11_hdr_regex_pass.cpp
index 7792bfa60f..6acd2e8e0b 100644
--- a/libs/config/test/no_cxx11_hdr_regex_pass.cpp
+++ b/libs/config/test/no_cxx11_hdr_regex_pass.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_cxx11_hdr_regex_pass.cpp 78478 2012-05-15 11:57:21Z johnmaddock $
+// Revision $Id$
//
diff --git a/libs/config/test/no_cxx11_hdr_system_error_fail.cpp b/libs/config/test/no_cxx11_hdr_system_error_fail.cpp
index e16a1f45e8..85bb100b0c 100644
--- a/libs/config/test/no_cxx11_hdr_system_error_fail.cpp
+++ b/libs/config/test/no_cxx11_hdr_system_error_fail.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_cxx11_hdr_system_error_fail.cpp 78478 2012-05-15 11:57:21Z johnmaddock $
+// Revision $Id$
//
diff --git a/libs/config/test/no_cxx11_hdr_system_error_pass.cpp b/libs/config/test/no_cxx11_hdr_system_error_pass.cpp
index 00a549afd3..042b52f8f9 100644
--- a/libs/config/test/no_cxx11_hdr_system_error_pass.cpp
+++ b/libs/config/test/no_cxx11_hdr_system_error_pass.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_cxx11_hdr_system_error_pass.cpp 78478 2012-05-15 11:57:21Z johnmaddock $
+// Revision $Id$
//
diff --git a/libs/config/test/no_cxx11_hdr_thread_fail.cpp b/libs/config/test/no_cxx11_hdr_thread_fail.cpp
index 9b6d8c9374..0e54a012bc 100644
--- a/libs/config/test/no_cxx11_hdr_thread_fail.cpp
+++ b/libs/config/test/no_cxx11_hdr_thread_fail.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_cxx11_hdr_thread_fail.cpp 78478 2012-05-15 11:57:21Z johnmaddock $
+// Revision $Id$
//
diff --git a/libs/config/test/no_cxx11_hdr_thread_pass.cpp b/libs/config/test/no_cxx11_hdr_thread_pass.cpp
index 68f5768241..34313ab3d3 100644
--- a/libs/config/test/no_cxx11_hdr_thread_pass.cpp
+++ b/libs/config/test/no_cxx11_hdr_thread_pass.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_cxx11_hdr_thread_pass.cpp 78478 2012-05-15 11:57:21Z johnmaddock $
+// Revision $Id$
//
diff --git a/libs/config/test/no_cxx11_hdr_tuple_fail.cpp b/libs/config/test/no_cxx11_hdr_tuple_fail.cpp
index 0275ca4e9f..655de0f665 100644
--- a/libs/config/test/no_cxx11_hdr_tuple_fail.cpp
+++ b/libs/config/test/no_cxx11_hdr_tuple_fail.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_cxx11_hdr_tuple_fail.cpp 78478 2012-05-15 11:57:21Z johnmaddock $
+// Revision $Id$
//
diff --git a/libs/config/test/no_cxx11_hdr_tuple_pass.cpp b/libs/config/test/no_cxx11_hdr_tuple_pass.cpp
index c6ea9bf350..505a77933b 100644
--- a/libs/config/test/no_cxx11_hdr_tuple_pass.cpp
+++ b/libs/config/test/no_cxx11_hdr_tuple_pass.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_cxx11_hdr_tuple_pass.cpp 78478 2012-05-15 11:57:21Z johnmaddock $
+// Revision $Id$
//
diff --git a/libs/config/test/no_cxx11_hdr_type_traits_fail.cpp b/libs/config/test/no_cxx11_hdr_type_traits_fail.cpp
index d32444fd83..603e57e2a9 100644
--- a/libs/config/test/no_cxx11_hdr_type_traits_fail.cpp
+++ b/libs/config/test/no_cxx11_hdr_type_traits_fail.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_cxx11_hdr_type_traits_fail.cpp 78478 2012-05-15 11:57:21Z johnmaddock $
+// Revision $Id$
//
diff --git a/libs/config/test/no_cxx11_hdr_type_traits_pass.cpp b/libs/config/test/no_cxx11_hdr_type_traits_pass.cpp
index 061b05223d..1f57ef6213 100644
--- a/libs/config/test/no_cxx11_hdr_type_traits_pass.cpp
+++ b/libs/config/test/no_cxx11_hdr_type_traits_pass.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_cxx11_hdr_type_traits_pass.cpp 78478 2012-05-15 11:57:21Z johnmaddock $
+// Revision $Id$
//
diff --git a/libs/config/test/no_cxx11_hdr_unordered_map_fail.cpp b/libs/config/test/no_cxx11_hdr_unordered_map_fail.cpp
index beb52605c3..dad493bb2b 100644
--- a/libs/config/test/no_cxx11_hdr_unordered_map_fail.cpp
+++ b/libs/config/test/no_cxx11_hdr_unordered_map_fail.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_cxx11_hdr_unordered_map_fail.cpp 78478 2012-05-15 11:57:21Z johnmaddock $
+// Revision $Id$
//
diff --git a/libs/config/test/no_cxx11_hdr_unordered_map_pass.cpp b/libs/config/test/no_cxx11_hdr_unordered_map_pass.cpp
index 2bdfa13f89..cc30df478b 100644
--- a/libs/config/test/no_cxx11_hdr_unordered_map_pass.cpp
+++ b/libs/config/test/no_cxx11_hdr_unordered_map_pass.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_cxx11_hdr_unordered_map_pass.cpp 78478 2012-05-15 11:57:21Z johnmaddock $
+// Revision $Id$
//
diff --git a/libs/config/test/no_cxx11_hdr_unordered_set_fail.cpp b/libs/config/test/no_cxx11_hdr_unordered_set_fail.cpp
index a361e8bd06..df9e75d9e5 100644
--- a/libs/config/test/no_cxx11_hdr_unordered_set_fail.cpp
+++ b/libs/config/test/no_cxx11_hdr_unordered_set_fail.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_cxx11_hdr_unordered_set_fail.cpp 78478 2012-05-15 11:57:21Z johnmaddock $
+// Revision $Id$
//
diff --git a/libs/config/test/no_cxx11_hdr_unordered_set_pass.cpp b/libs/config/test/no_cxx11_hdr_unordered_set_pass.cpp
index d0fbf440aa..97c5632a63 100644
--- a/libs/config/test/no_cxx11_hdr_unordered_set_pass.cpp
+++ b/libs/config/test/no_cxx11_hdr_unordered_set_pass.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_cxx11_hdr_unordered_set_pass.cpp 78478 2012-05-15 11:57:21Z johnmaddock $
+// Revision $Id$
//
diff --git a/libs/config/test/no_cxx11_inline_namespaces_fail.cpp b/libs/config/test/no_cxx11_inline_namespaces_fail.cpp
new file mode 100644
index 0000000000..09ca60c8fe
--- /dev/null
+++ b/libs/config/test/no_cxx11_inline_namespaces_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Sun Apr 28 18:36:48 2013
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id$
+//
+
+
+// Test file for macro BOOST_NO_CXX11_INLINE_NAMESPACES
+// This file should not compile, if it does then
+// BOOST_NO_CXX11_INLINE_NAMESPACES should not be defined.
+// See file boost_no_cxx11_inline_namespaces.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_CXX11_INLINE_NAMESPACES
+#include "boost_no_cxx11_inline_namespaces.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_cxx11_inline_namespaces::test();
+}
+
diff --git a/libs/config/test/no_cxx11_inline_namespaces_pass.cpp b/libs/config/test/no_cxx11_inline_namespaces_pass.cpp
new file mode 100644
index 0000000000..4988af97ba
--- /dev/null
+++ b/libs/config/test/no_cxx11_inline_namespaces_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Sun Apr 28 18:36:48 2013
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id$
+//
+
+
+// Test file for macro BOOST_NO_CXX11_INLINE_NAMESPACES
+// This file should compile, if it does not then
+// BOOST_NO_CXX11_INLINE_NAMESPACES should be defined.
+// See file boost_no_cxx11_inline_namespaces.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_CXX11_INLINE_NAMESPACES
+#include "boost_no_cxx11_inline_namespaces.ipp"
+#else
+namespace boost_no_cxx11_inline_namespaces = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_cxx11_inline_namespaces::test();
+}
+
diff --git a/libs/config/test/no_cxx11_non_pub_def_fun_fail.cpp b/libs/config/test/no_cxx11_non_pub_def_fun_fail.cpp
new file mode 100644
index 0000000000..59f32b6cf4
--- /dev/null
+++ b/libs/config/test/no_cxx11_non_pub_def_fun_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Fri Aug 22 18:33:20 2014
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id$
+//
+
+
+// Test file for macro BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS
+// This file should not compile, if it does then
+// BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS should not be defined.
+// See file boost_no_cxx11_non_pub_def_fun.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS
+#include "boost_no_cxx11_non_pub_def_fun.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_cxx11_non_public_defaulted_functions::test();
+}
+
diff --git a/libs/config/test/no_cxx11_non_pub_def_fun_pass.cpp b/libs/config/test/no_cxx11_non_pub_def_fun_pass.cpp
new file mode 100644
index 0000000000..2e00a6a73f
--- /dev/null
+++ b/libs/config/test/no_cxx11_non_pub_def_fun_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Fri Aug 22 18:33:20 2014
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id$
+//
+
+
+// Test file for macro BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS
+// This file should compile, if it does not then
+// BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS should be defined.
+// See file boost_no_cxx11_non_pub_def_fun.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS
+#include "boost_no_cxx11_non_pub_def_fun.ipp"
+#else
+namespace boost_no_cxx11_non_public_defaulted_functions = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_cxx11_non_public_defaulted_functions::test();
+}
+
diff --git a/libs/config/test/no_cxx11_ref_qualifiers_fail.cpp b/libs/config/test/no_cxx11_ref_qualifiers_fail.cpp
new file mode 100644
index 0000000000..413ca8e9bd
--- /dev/null
+++ b/libs/config/test/no_cxx11_ref_qualifiers_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Wed May 28 17:13:04 2014
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id$
+//
+
+
+// Test file for macro BOOST_NO_CXX11_REF_QUALIFIERS
+// This file should not compile, if it does then
+// BOOST_NO_CXX11_REF_QUALIFIERS should not be defined.
+// See file boost_no_cxx11_ref_qualifiers.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_CXX11_REF_QUALIFIERS
+#include "boost_no_cxx11_ref_qualifiers.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_cxx11_ref_qualifiers::test();
+}
+
diff --git a/libs/config/test/no_cxx11_ref_qualifiers_pass.cpp b/libs/config/test/no_cxx11_ref_qualifiers_pass.cpp
new file mode 100644
index 0000000000..99216f60e7
--- /dev/null
+++ b/libs/config/test/no_cxx11_ref_qualifiers_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Wed May 28 17:13:04 2014
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id$
+//
+
+
+// Test file for macro BOOST_NO_CXX11_REF_QUALIFIERS
+// This file should compile, if it does not then
+// BOOST_NO_CXX11_REF_QUALIFIERS should be defined.
+// See file boost_no_cxx11_ref_qualifiers.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_CXX11_REF_QUALIFIERS
+#include "boost_no_cxx11_ref_qualifiers.ipp"
+#else
+namespace boost_no_cxx11_ref_qualifiers = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_cxx11_ref_qualifiers::test();
+}
+
diff --git a/libs/config/test/no_cxx11_std_align_fail.cpp b/libs/config/test/no_cxx11_std_align_fail.cpp
new file mode 100644
index 0000000000..7a87dea2fb
--- /dev/null
+++ b/libs/config/test/no_cxx11_std_align_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Tue Feb 11 16:14:42 2014
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id$
+//
+
+
+// Test file for macro BOOST_NO_CXX11_STD_ALIGN
+// This file should not compile, if it does then
+// BOOST_NO_CXX11_STD_ALIGN should not be defined.
+// See file boost_no_cxx11_std_align.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_CXX11_STD_ALIGN
+#include "boost_no_cxx11_std_align.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_cxx11_std_align::test();
+}
+
diff --git a/libs/config/test/no_cxx11_std_align_pass.cpp b/libs/config/test/no_cxx11_std_align_pass.cpp
new file mode 100644
index 0000000000..4ee4ba65bf
--- /dev/null
+++ b/libs/config/test/no_cxx11_std_align_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Tue Feb 11 16:14:42 2014
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id$
+//
+
+
+// Test file for macro BOOST_NO_CXX11_STD_ALIGN
+// This file should compile, if it does not then
+// BOOST_NO_CXX11_STD_ALIGN should be defined.
+// See file boost_no_cxx11_std_align.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_CXX11_STD_ALIGN
+#include "boost_no_cxx11_std_align.ipp"
+#else
+namespace boost_no_cxx11_std_align = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_cxx11_std_align::test();
+}
+
diff --git a/libs/config/test/no_cxx11_trailing_result_types_fail.cpp b/libs/config/test/no_cxx11_trailing_result_types_fail.cpp
new file mode 100644
index 0000000000..edabc2def6
--- /dev/null
+++ b/libs/config/test/no_cxx11_trailing_result_types_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Sun Apr 28 18:36:48 2013
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id$
+//
+
+
+// Test file for macro BOOST_NO_CXX11_TRAILING_RESULT_TYPES
+// This file should not compile, if it does then
+// BOOST_NO_CXX11_TRAILING_RESULT_TYPES should not be defined.
+// See file boost_no_cxx11_trailing_result_types.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_CXX11_TRAILING_RESULT_TYPES
+#include "boost_no_cxx11_trailing_result_types.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_cxx11_trailing_result_types::test();
+}
+
diff --git a/libs/config/test/no_cxx11_trailing_result_types_pass.cpp b/libs/config/test/no_cxx11_trailing_result_types_pass.cpp
new file mode 100644
index 0000000000..6cc54cf0a5
--- /dev/null
+++ b/libs/config/test/no_cxx11_trailing_result_types_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Sun Apr 28 18:36:48 2013
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id$
+//
+
+
+// Test file for macro BOOST_NO_CXX11_TRAILING_RESULT_TYPES
+// This file should compile, if it does not then
+// BOOST_NO_CXX11_TRAILING_RESULT_TYPES should be defined.
+// See file boost_no_cxx11_trailing_result_types.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_CXX11_TRAILING_RESULT_TYPES
+#include "boost_no_cxx11_trailing_result_types.ipp"
+#else
+namespace boost_no_cxx11_trailing_result_types = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_cxx11_trailing_result_types::test();
+}
+
diff --git a/libs/config/test/no_cxx11_user_lit_fail.cpp b/libs/config/test/no_cxx11_user_lit_fail.cpp
new file mode 100644
index 0000000000..266645569a
--- /dev/null
+++ b/libs/config/test/no_cxx11_user_lit_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Sun Apr 28 18:36:48 2013
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: generate.cpp 72327 2011-06-01 14:51:03Z eric_niebler $
+//
+
+
+// Test file for macro BOOST_NO_CXX11_USER_DEFINED_LITERALS
+// This file should not compile, if it does then
+// BOOST_NO_CXX11_USER_DEFINED_LITERALS should not be defined.
+// See file boost_no_cxx11_user_lit.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_CXX11_USER_DEFINED_LITERALS
+#include "boost_no_cxx11_user_lit.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_cxx11_user_defined_literals::test();
+}
+
diff --git a/libs/config/test/no_cxx11_user_lit_pass.cpp b/libs/config/test/no_cxx11_user_lit_pass.cpp
new file mode 100644
index 0000000000..d1408f5eac
--- /dev/null
+++ b/libs/config/test/no_cxx11_user_lit_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Sun Apr 28 18:36:48 2013
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id: generate.cpp 72327 2011-06-01 14:51:03Z eric_niebler $
+//
+
+
+// Test file for macro BOOST_NO_CXX11_USER_DEFINED_LITERALS
+// This file should compile, if it does not then
+// BOOST_NO_CXX11_USER_DEFINED_LITERALS should be defined.
+// See file boost_no_cxx11_user_lit.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_CXX11_USER_DEFINED_LITERALS
+#include "boost_no_cxx11_user_lit.ipp"
+#else
+namespace boost_no_cxx11_user_defined_literals = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_cxx11_user_defined_literals::test();
+}
+
diff --git a/libs/config/test/no_cxx14_binary_literals_fail.cpp b/libs/config/test/no_cxx14_binary_literals_fail.cpp
new file mode 100644
index 0000000000..759e87197a
--- /dev/null
+++ b/libs/config/test/no_cxx14_binary_literals_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Sat Oct 11 19:26:16 2014
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id$
+//
+
+
+// Test file for macro BOOST_NO_CXX14_BINARY_LITERALS
+// This file should not compile, if it does then
+// BOOST_NO_CXX14_BINARY_LITERALS should not be defined.
+// See file boost_no_cxx14_binary_literals.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_CXX14_BINARY_LITERALS
+#include "boost_no_cxx14_binary_literals.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_cxx14_binary_literals::test();
+}
+
diff --git a/libs/config/test/no_cxx14_binary_literals_pass.cpp b/libs/config/test/no_cxx14_binary_literals_pass.cpp
new file mode 100644
index 0000000000..94debc27f8
--- /dev/null
+++ b/libs/config/test/no_cxx14_binary_literals_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Sat Oct 11 19:26:16 2014
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id$
+//
+
+
+// Test file for macro BOOST_NO_CXX14_BINARY_LITERALS
+// This file should compile, if it does not then
+// BOOST_NO_CXX14_BINARY_LITERALS should be defined.
+// See file boost_no_cxx14_binary_literals.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_CXX14_BINARY_LITERALS
+#include "boost_no_cxx14_binary_literals.ipp"
+#else
+namespace boost_no_cxx14_binary_literals = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_cxx14_binary_literals::test();
+}
+
diff --git a/libs/config/test/no_cxx14_constexpr_fail.cpp b/libs/config/test/no_cxx14_constexpr_fail.cpp
new file mode 100644
index 0000000000..0028023bac
--- /dev/null
+++ b/libs/config/test/no_cxx14_constexpr_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Sat Oct 11 19:26:16 2014
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id$
+//
+
+
+// Test file for macro BOOST_NO_CXX14_CONSTEXPR
+// This file should not compile, if it does then
+// BOOST_NO_CXX14_CONSTEXPR should not be defined.
+// See file boost_no_cxx14_constexpr.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_CXX14_CONSTEXPR
+#include "boost_no_cxx14_constexpr.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_cxx14_constexpr::test();
+}
+
diff --git a/libs/config/test/no_cxx14_constexpr_pass.cpp b/libs/config/test/no_cxx14_constexpr_pass.cpp
new file mode 100644
index 0000000000..8272f91896
--- /dev/null
+++ b/libs/config/test/no_cxx14_constexpr_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Sat Oct 11 19:26:16 2014
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id$
+//
+
+
+// Test file for macro BOOST_NO_CXX14_CONSTEXPR
+// This file should compile, if it does not then
+// BOOST_NO_CXX14_CONSTEXPR should be defined.
+// See file boost_no_cxx14_constexpr.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_CXX14_CONSTEXPR
+#include "boost_no_cxx14_constexpr.ipp"
+#else
+namespace boost_no_cxx14_constexpr = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_cxx14_constexpr::test();
+}
+
diff --git a/libs/config/test/no_cxx14_decltype_auto_fail.cpp b/libs/config/test/no_cxx14_decltype_auto_fail.cpp
new file mode 100644
index 0000000000..78639cf569
--- /dev/null
+++ b/libs/config/test/no_cxx14_decltype_auto_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Sat Oct 11 19:26:16 2014
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id$
+//
+
+
+// Test file for macro BOOST_NO_CXX14_DECLTYPE_AUTO
+// This file should not compile, if it does then
+// BOOST_NO_CXX14_DECLTYPE_AUTO should not be defined.
+// See file boost_no_cxx14_decltype_auto.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_CXX14_DECLTYPE_AUTO
+#include "boost_no_cxx14_decltype_auto.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_cxx14_decltype_auto::test();
+}
+
diff --git a/libs/config/test/no_cxx14_decltype_auto_pass.cpp b/libs/config/test/no_cxx14_decltype_auto_pass.cpp
new file mode 100644
index 0000000000..e36cb64d29
--- /dev/null
+++ b/libs/config/test/no_cxx14_decltype_auto_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Sat Oct 11 19:26:16 2014
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id$
+//
+
+
+// Test file for macro BOOST_NO_CXX14_DECLTYPE_AUTO
+// This file should compile, if it does not then
+// BOOST_NO_CXX14_DECLTYPE_AUTO should be defined.
+// See file boost_no_cxx14_decltype_auto.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_CXX14_DECLTYPE_AUTO
+#include "boost_no_cxx14_decltype_auto.ipp"
+#else
+namespace boost_no_cxx14_decltype_auto = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_cxx14_decltype_auto::test();
+}
+
diff --git a/libs/config/test/no_cxx14_digit_separator_fail.cpp b/libs/config/test/no_cxx14_digit_separator_fail.cpp
new file mode 100644
index 0000000000..8c0c06a101
--- /dev/null
+++ b/libs/config/test/no_cxx14_digit_separator_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Sat Oct 11 19:26:16 2014
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id$
+//
+
+
+// Test file for macro BOOST_NO_CXX14_DIGIT_SEPARATORS
+// This file should not compile, if it does then
+// BOOST_NO_CXX14_DIGIT_SEPARATORS should not be defined.
+// See file boost_no_cxx14_digit_separator.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_CXX14_DIGIT_SEPARATORS
+#include "boost_no_cxx14_digit_separator.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_cxx14_digit_separator::test();
+}
+
diff --git a/libs/config/test/no_cxx14_digit_separator_pass.cpp b/libs/config/test/no_cxx14_digit_separator_pass.cpp
new file mode 100644
index 0000000000..bb88cd29db
--- /dev/null
+++ b/libs/config/test/no_cxx14_digit_separator_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Sat Oct 11 19:26:16 2014
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id$
+//
+
+
+// Test file for macro BOOST_NO_CXX14_DIGIT_SEPARATORS
+// This file should compile, if it does not then
+// BOOST_NO_CXX14_DIGIT_SEPARATORS should be defined.
+// See file boost_no_cxx14_digit_separator.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_CXX14_DIGIT_SEPARATORS
+#include "boost_no_cxx14_digit_separator.ipp"
+#else
+namespace boost_no_cxx14_digit_separator = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_cxx14_digit_separator::test();
+}
+
diff --git a/libs/config/test/no_cxx14_generic_lambda_fail.cpp b/libs/config/test/no_cxx14_generic_lambda_fail.cpp
new file mode 100644
index 0000000000..928f765324
--- /dev/null
+++ b/libs/config/test/no_cxx14_generic_lambda_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Sat Oct 11 19:26:16 2014
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id$
+//
+
+
+// Test file for macro BOOST_NO_CXX14_GENERIC_LAMBDAS
+// This file should not compile, if it does then
+// BOOST_NO_CXX14_GENERIC_LAMBDAS should not be defined.
+// See file boost_no_cxx14_generic_lambda.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_CXX14_GENERIC_LAMBDAS
+#include "boost_no_cxx14_generic_lambda.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_cxx14_generic_lambdas::test();
+}
+
diff --git a/libs/config/test/no_cxx14_generic_lambda_pass.cpp b/libs/config/test/no_cxx14_generic_lambda_pass.cpp
new file mode 100644
index 0000000000..bef36ac6ed
--- /dev/null
+++ b/libs/config/test/no_cxx14_generic_lambda_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Sat Oct 11 19:26:16 2014
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id$
+//
+
+
+// Test file for macro BOOST_NO_CXX14_GENERIC_LAMBDAS
+// This file should compile, if it does not then
+// BOOST_NO_CXX14_GENERIC_LAMBDAS should be defined.
+// See file boost_no_cxx14_generic_lambda.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_CXX14_GENERIC_LAMBDAS
+#include "boost_no_cxx14_generic_lambda.ipp"
+#else
+namespace boost_no_cxx14_generic_lambdas = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_cxx14_generic_lambdas::test();
+}
+
diff --git a/libs/config/test/no_cxx14_lambda_capture_fail.cpp b/libs/config/test/no_cxx14_lambda_capture_fail.cpp
new file mode 100644
index 0000000000..515cc08e94
--- /dev/null
+++ b/libs/config/test/no_cxx14_lambda_capture_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Sat Oct 11 19:26:17 2014
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id$
+//
+
+
+// Test file for macro BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
+// This file should not compile, if it does then
+// BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES should not be defined.
+// See file boost_no_cxx14_lambda_capture.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
+#include "boost_no_cxx14_lambda_capture.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_cxx14_initialized_lambda_captures::test();
+}
+
diff --git a/libs/config/test/no_cxx14_lambda_capture_pass.cpp b/libs/config/test/no_cxx14_lambda_capture_pass.cpp
new file mode 100644
index 0000000000..d5c09c5f0b
--- /dev/null
+++ b/libs/config/test/no_cxx14_lambda_capture_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Sat Oct 11 19:26:17 2014
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id$
+//
+
+
+// Test file for macro BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
+// This file should compile, if it does not then
+// BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES should be defined.
+// See file boost_no_cxx14_lambda_capture.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
+#include "boost_no_cxx14_lambda_capture.ipp"
+#else
+namespace boost_no_cxx14_initialized_lambda_captures = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_cxx14_initialized_lambda_captures::test();
+}
+
diff --git a/libs/config/test/no_cxx14_member_init_fail.cpp b/libs/config/test/no_cxx14_member_init_fail.cpp
new file mode 100644
index 0000000000..ba3ae4e269
--- /dev/null
+++ b/libs/config/test/no_cxx14_member_init_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Sat Oct 11 19:26:17 2014
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id$
+//
+
+
+// Test file for macro BOOST_NO_CXX14_AGGREGATE_NSDMI
+// This file should not compile, if it does then
+// BOOST_NO_CXX14_AGGREGATE_NSDMI should not be defined.
+// See file boost_no_cxx14_member_init.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_CXX14_AGGREGATE_NSDMI
+#include "boost_no_cxx14_member_init.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_cxx14_aggregate_nsdmi::test();
+}
+
diff --git a/libs/config/test/no_cxx14_member_init_pass.cpp b/libs/config/test/no_cxx14_member_init_pass.cpp
new file mode 100644
index 0000000000..9dd8e89777
--- /dev/null
+++ b/libs/config/test/no_cxx14_member_init_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Sat Oct 11 19:26:17 2014
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id$
+//
+
+
+// Test file for macro BOOST_NO_CXX14_AGGREGATE_NSDMI
+// This file should compile, if it does not then
+// BOOST_NO_CXX14_AGGREGATE_NSDMI should be defined.
+// See file boost_no_cxx14_member_init.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_CXX14_AGGREGATE_NSDMI
+#include "boost_no_cxx14_member_init.ipp"
+#else
+namespace boost_no_cxx14_aggregate_nsdmi = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_cxx14_aggregate_nsdmi::test();
+}
+
diff --git a/libs/config/test/no_cxx14_return_type_ded_fail.cpp b/libs/config/test/no_cxx14_return_type_ded_fail.cpp
new file mode 100644
index 0000000000..a969c84057
--- /dev/null
+++ b/libs/config/test/no_cxx14_return_type_ded_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Sat Oct 11 19:26:17 2014
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id$
+//
+
+
+// Test file for macro BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
+// This file should not compile, if it does then
+// BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION should not be defined.
+// See file boost_no_cxx14_return_type_ded.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
+#include "boost_no_cxx14_return_type_ded.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_cxx14_return_type_deduction::test();
+}
+
diff --git a/libs/config/test/no_cxx14_return_type_ded_pass.cpp b/libs/config/test/no_cxx14_return_type_ded_pass.cpp
new file mode 100644
index 0000000000..f3e35f3757
--- /dev/null
+++ b/libs/config/test/no_cxx14_return_type_ded_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Sat Oct 11 19:26:17 2014
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id$
+//
+
+
+// Test file for macro BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
+// This file should compile, if it does not then
+// BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION should be defined.
+// See file boost_no_cxx14_return_type_ded.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
+#include "boost_no_cxx14_return_type_ded.ipp"
+#else
+namespace boost_no_cxx14_return_type_deduction = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_cxx14_return_type_deduction::test();
+}
+
diff --git a/libs/config/test/no_cxx14_var_templ_fail.cpp b/libs/config/test/no_cxx14_var_templ_fail.cpp
new file mode 100644
index 0000000000..438ccd7e68
--- /dev/null
+++ b/libs/config/test/no_cxx14_var_templ_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Sat Oct 11 19:26:17 2014
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id$
+//
+
+
+// Test file for macro BOOST_NO_CXX14_VARIABLE_TEMPLATES
+// This file should not compile, if it does then
+// BOOST_NO_CXX14_VARIABLE_TEMPLATES should not be defined.
+// See file boost_no_cxx14_var_templ.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_CXX14_VARIABLE_TEMPLATES
+#include "boost_no_cxx14_var_templ.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_cxx14_variable_templates::test();
+}
+
diff --git a/libs/config/test/no_cxx14_var_templ_pass.cpp b/libs/config/test/no_cxx14_var_templ_pass.cpp
new file mode 100644
index 0000000000..90c7b4c51f
--- /dev/null
+++ b/libs/config/test/no_cxx14_var_templ_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Sat Oct 11 19:26:17 2014
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id$
+//
+
+
+// Test file for macro BOOST_NO_CXX14_VARIABLE_TEMPLATES
+// This file should compile, if it does not then
+// BOOST_NO_CXX14_VARIABLE_TEMPLATES should be defined.
+// See file boost_no_cxx14_var_templ.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_CXX14_VARIABLE_TEMPLATES
+#include "boost_no_cxx14_var_templ.ipp"
+#else
+namespace boost_no_cxx14_variable_templates = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_cxx14_variable_templates::test();
+}
+
diff --git a/libs/config/test/no_decltype_fail.cpp b/libs/config/test/no_decltype_fail.cpp
index 380d7c1c0b..59be58668a 100644
--- a/libs/config/test/no_decltype_fail.cpp
+++ b/libs/config/test/no_decltype_fail.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_decltype_fail.cpp 79537 2012-07-15 15:59:05Z marshall $
+// Revision $Id$
//
@@ -32,6 +32,6 @@
int main( int, char *[] )
{
- return boost_no_decltype::test();
+ return boost_no_cxx11_decltype::test();
}
diff --git a/libs/config/test/no_decltype_n3276_fail.cpp b/libs/config/test/no_decltype_n3276_fail.cpp
index 216300c8bf..1e86fb6f4e 100644
--- a/libs/config/test/no_decltype_n3276_fail.cpp
+++ b/libs/config/test/no_decltype_n3276_fail.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_decltype_n3276_fail.cpp 79537 2012-07-15 15:59:05Z marshall $
+// Revision $Id$
//
@@ -32,6 +32,6 @@
int main( int, char *[] )
{
- return boost_no_decltype_n3276::test();
+ return boost_no_cxx11_decltype_n3276::test();
}
diff --git a/libs/config/test/no_decltype_n3276_pass.cpp b/libs/config/test/no_decltype_n3276_pass.cpp
index 35427beeff..0eb3a21f9e 100644
--- a/libs/config/test/no_decltype_n3276_pass.cpp
+++ b/libs/config/test/no_decltype_n3276_pass.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_decltype_n3276_pass.cpp 79537 2012-07-15 15:59:05Z marshall $
+// Revision $Id$
//
@@ -27,11 +27,11 @@
#ifndef BOOST_NO_CXX11_DECLTYPE_N3276
#include "boost_no_decltype_n3276.ipp"
#else
-namespace boost_no_decltype_n3276 = empty_boost;
+namespace boost_no_cxx11_decltype_n3276 = empty_boost;
#endif
int main( int, char *[] )
{
- return boost_no_decltype_n3276::test();
+ return boost_no_cxx11_decltype_n3276::test();
}
diff --git a/libs/config/test/no_decltype_pass.cpp b/libs/config/test/no_decltype_pass.cpp
index 54fab98ca9..91dfe258d0 100644
--- a/libs/config/test/no_decltype_pass.cpp
+++ b/libs/config/test/no_decltype_pass.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_decltype_pass.cpp 79537 2012-07-15 15:59:05Z marshall $
+// Revision $Id$
//
@@ -27,11 +27,11 @@
#ifndef BOOST_NO_CXX11_DECLTYPE
#include "boost_no_decltype.ipp"
#else
-namespace boost_no_decltype = empty_boost;
+namespace boost_no_cxx11_decltype = empty_boost;
#endif
int main( int, char *[] )
{
- return boost_no_decltype::test();
+ return boost_no_cxx11_decltype::test();
}
diff --git a/libs/config/test/no_defaulted_functions_fail.cpp b/libs/config/test/no_defaulted_functions_fail.cpp
index 1753771371..58569579fd 100644
--- a/libs/config/test/no_defaulted_functions_fail.cpp
+++ b/libs/config/test/no_defaulted_functions_fail.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_defaulted_functions_fail.cpp 79537 2012-07-15 15:59:05Z marshall $
+// Revision $Id$
//
@@ -32,6 +32,6 @@
int main( int, char *[] )
{
- return boost_no_defaulted_functions::test();
+ return boost_no_cxx11_defaulted_functions::test();
}
diff --git a/libs/config/test/no_defaulted_functions_pass.cpp b/libs/config/test/no_defaulted_functions_pass.cpp
index d5300b8e7c..d35f89e0a8 100644
--- a/libs/config/test/no_defaulted_functions_pass.cpp
+++ b/libs/config/test/no_defaulted_functions_pass.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_defaulted_functions_pass.cpp 79537 2012-07-15 15:59:05Z marshall $
+// Revision $Id$
//
@@ -27,11 +27,11 @@
#ifndef BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
#include "boost_no_defaulted_functions.ipp"
#else
-namespace boost_no_defaulted_functions = empty_boost;
+namespace boost_no_cxx11_defaulted_functions = empty_boost;
#endif
int main( int, char *[] )
{
- return boost_no_defaulted_functions::test();
+ return boost_no_cxx11_defaulted_functions::test();
}
diff --git a/libs/config/test/no_deleted_functions_fail.cpp b/libs/config/test/no_deleted_functions_fail.cpp
index 84f40c8539..e08abe8850 100644
--- a/libs/config/test/no_deleted_functions_fail.cpp
+++ b/libs/config/test/no_deleted_functions_fail.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_deleted_functions_fail.cpp 79537 2012-07-15 15:59:05Z marshall $
+// Revision $Id$
//
@@ -32,6 +32,6 @@
int main( int, char *[] )
{
- return boost_no_deleted_functions::test();
+ return boost_no_cxx11_deleted_functions::test();
}
diff --git a/libs/config/test/no_deleted_functions_pass.cpp b/libs/config/test/no_deleted_functions_pass.cpp
index a3fcbe03a0..d157332a94 100644
--- a/libs/config/test/no_deleted_functions_pass.cpp
+++ b/libs/config/test/no_deleted_functions_pass.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_deleted_functions_pass.cpp 79537 2012-07-15 15:59:05Z marshall $
+// Revision $Id$
//
@@ -27,11 +27,11 @@
#ifndef BOOST_NO_CXX11_DELETED_FUNCTIONS
#include "boost_no_deleted_functions.ipp"
#else
-namespace boost_no_deleted_functions = empty_boost;
+namespace boost_no_cxx11_deleted_functions = empty_boost;
#endif
int main( int, char *[] )
{
- return boost_no_deleted_functions::test();
+ return boost_no_cxx11_deleted_functions::test();
}
diff --git a/libs/config/test/no_explicit_cvt_ops_fail.cpp b/libs/config/test/no_explicit_cvt_ops_fail.cpp
index 6c43d18cab..ba150874e5 100644
--- a/libs/config/test/no_explicit_cvt_ops_fail.cpp
+++ b/libs/config/test/no_explicit_cvt_ops_fail.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_explicit_cvt_ops_fail.cpp 79537 2012-07-15 15:59:05Z marshall $
+// Revision $Id$
//
@@ -32,6 +32,6 @@
int main( int, char *[] )
{
- return boost_no_explicit_conversion_operators::test();
+ return boost_no_cxx11_explicit_conversion_operators::test();
}
diff --git a/libs/config/test/no_explicit_cvt_ops_pass.cpp b/libs/config/test/no_explicit_cvt_ops_pass.cpp
index 78e81e532e..2e3c42069f 100644
--- a/libs/config/test/no_explicit_cvt_ops_pass.cpp
+++ b/libs/config/test/no_explicit_cvt_ops_pass.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_explicit_cvt_ops_pass.cpp 79537 2012-07-15 15:59:05Z marshall $
+// Revision $Id$
//
@@ -27,11 +27,11 @@
#ifndef BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
#include "boost_no_explicit_cvt_ops.ipp"
#else
-namespace boost_no_explicit_conversion_operators = empty_boost;
+namespace boost_no_cxx11_explicit_conversion_operators = empty_boost;
#endif
int main( int, char *[] )
{
- return boost_no_explicit_conversion_operators::test();
+ return boost_no_cxx11_explicit_conversion_operators::test();
}
diff --git a/libs/config/test/no_extern_template_fail.cpp b/libs/config/test/no_extern_template_fail.cpp
index 65d9e2d954..80c87744e3 100644
--- a/libs/config/test/no_extern_template_fail.cpp
+++ b/libs/config/test/no_extern_template_fail.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_extern_template_fail.cpp 79537 2012-07-15 15:59:05Z marshall $
+// Revision $Id$
//
@@ -32,6 +32,6 @@
int main( int, char *[] )
{
- return boost_no_extern_template::test();
+ return boost_no_cxx11_extern_template::test();
}
diff --git a/libs/config/test/no_extern_template_pass.cpp b/libs/config/test/no_extern_template_pass.cpp
index 8e756ca335..acbd037c0d 100644
--- a/libs/config/test/no_extern_template_pass.cpp
+++ b/libs/config/test/no_extern_template_pass.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_extern_template_pass.cpp 79537 2012-07-15 15:59:05Z marshall $
+// Revision $Id$
//
@@ -27,11 +27,11 @@
#ifndef BOOST_NO_CXX11_EXTERN_TEMPLATE
#include "boost_no_extern_template.ipp"
#else
-namespace boost_no_extern_template = empty_boost;
+namespace boost_no_cxx11_extern_template = empty_boost;
#endif
int main( int, char *[] )
{
- return boost_no_extern_template::test();
+ return boost_no_cxx11_extern_template::test();
}
diff --git a/libs/config/test/no_fixed_len_variadic_templates_fail.cpp b/libs/config/test/no_fixed_len_variadic_templates_fail.cpp
new file mode 100644
index 0000000000..70988291d4
--- /dev/null
+++ b/libs/config/test/no_fixed_len_variadic_templates_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Mon Aug 25 18:12:27 2014
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id$
+//
+
+
+// Test file for macro BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS
+// This file should not compile, if it does then
+// BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS should not be defined.
+// See file boost_no_fixed_len_variadic_templates.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS
+#include "boost_no_fixed_len_variadic_templates.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_cxx11_fixed_length_variadic_template_expansion_packs::test();
+}
+
diff --git a/libs/config/test/no_fixed_len_variadic_templates_pass.cpp b/libs/config/test/no_fixed_len_variadic_templates_pass.cpp
new file mode 100644
index 0000000000..2c52f53433
--- /dev/null
+++ b/libs/config/test/no_fixed_len_variadic_templates_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Mon Aug 25 18:12:27 2014
+// by libs/config/tools/generate.cpp
+// Copyright John Maddock 2002-4.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for the most recent version.//
+// Revision $Id$
+//
+
+
+// Test file for macro BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS
+// This file should compile, if it does not then
+// BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS should be defined.
+// See file boost_no_fixed_len_variadic_templates.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS
+#include "boost_no_fixed_len_variadic_templates.ipp"
+#else
+namespace boost_no_cxx11_fixed_length_variadic_template_expansion_packs = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_cxx11_fixed_length_variadic_template_expansion_packs::test();
+}
+
diff --git a/libs/config/test/no_function_template_default_args_fail.cpp b/libs/config/test/no_function_template_default_args_fail.cpp
index 3995d646ff..e10568e88e 100644
--- a/libs/config/test/no_function_template_default_args_fail.cpp
+++ b/libs/config/test/no_function_template_default_args_fail.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_function_template_default_args_fail.cpp 79537 2012-07-15 15:59:05Z marshall $
+// Revision $Id$
//
@@ -32,6 +32,6 @@
int main( int, char *[] )
{
- return boost_no_function_template_default_args::test();
+ return boost_no_cxx11_function_template_default_args::test();
}
diff --git a/libs/config/test/no_function_template_default_args_pass.cpp b/libs/config/test/no_function_template_default_args_pass.cpp
index 698c62d002..478c98629d 100644
--- a/libs/config/test/no_function_template_default_args_pass.cpp
+++ b/libs/config/test/no_function_template_default_args_pass.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_function_template_default_args_pass.cpp 79537 2012-07-15 15:59:05Z marshall $
+// Revision $Id$
//
@@ -27,11 +27,11 @@
#ifndef BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
#include "boost_no_function_template_default_args.ipp"
#else
-namespace boost_no_function_template_default_args = empty_boost;
+namespace boost_no_cxx11_function_template_default_args = empty_boost;
#endif
int main( int, char *[] )
{
- return boost_no_function_template_default_args::test();
+ return boost_no_cxx11_function_template_default_args::test();
}
diff --git a/libs/config/test/no_lambdas_fail.cpp b/libs/config/test/no_lambdas_fail.cpp
index 17de55a2f0..68680bc99a 100644
--- a/libs/config/test/no_lambdas_fail.cpp
+++ b/libs/config/test/no_lambdas_fail.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_lambdas_fail.cpp 79537 2012-07-15 15:59:05Z marshall $
+// Revision $Id$
//
@@ -32,6 +32,6 @@
int main( int, char *[] )
{
- return boost_no_lambdas::test();
+ return boost_no_cxx11_lambdas::test();
}
diff --git a/libs/config/test/no_lambdas_pass.cpp b/libs/config/test/no_lambdas_pass.cpp
index cc6523d628..453a72a73e 100644
--- a/libs/config/test/no_lambdas_pass.cpp
+++ b/libs/config/test/no_lambdas_pass.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_lambdas_pass.cpp 79537 2012-07-15 15:59:05Z marshall $
+// Revision $Id$
//
@@ -27,11 +27,11 @@
#ifndef BOOST_NO_CXX11_LAMBDAS
#include "boost_no_lambdas.ipp"
#else
-namespace boost_no_lambdas = empty_boost;
+namespace boost_no_cxx11_lambdas = empty_boost;
#endif
int main( int, char *[] )
{
- return boost_no_lambdas::test();
+ return boost_no_cxx11_lambdas::test();
}
diff --git a/libs/config/test/no_long_long_fail.cpp b/libs/config/test/no_long_long_fail.cpp
index e95456cb45..2a2e724f0b 100644
--- a/libs/config/test/no_long_long_fail.cpp
+++ b/libs/config/test/no_long_long_fail.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_long_long_fail.cpp 51606 2009-03-04 14:28:36Z bemandawes $
+// Revision $Id$
//
diff --git a/libs/config/test/no_long_long_pass.cpp b/libs/config/test/no_long_long_pass.cpp
index 2233b376b9..3e00f1b391 100644
--- a/libs/config/test/no_long_long_pass.cpp
+++ b/libs/config/test/no_long_long_pass.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_long_long_pass.cpp 51606 2009-03-04 14:28:36Z bemandawes $
+// Revision $Id$
//
diff --git a/libs/config/test/no_noexcept_fail.cpp b/libs/config/test/no_noexcept_fail.cpp
index dfc95e01cf..b49d9bed77 100644
--- a/libs/config/test/no_noexcept_fail.cpp
+++ b/libs/config/test/no_noexcept_fail.cpp
@@ -32,6 +32,6 @@
int main( int, char *[] )
{
- return boost_no_noexcept::test();
+ return boost_no_cxx11_noexcept::test();
}
diff --git a/libs/config/test/no_noexcept_pass.cpp b/libs/config/test/no_noexcept_pass.cpp
index 3f923c927b..4f07f7d07b 100644
--- a/libs/config/test/no_noexcept_pass.cpp
+++ b/libs/config/test/no_noexcept_pass.cpp
@@ -27,11 +27,11 @@
#ifndef BOOST_NO_CXX11_NOEXCEPT
#include "boost_no_noexcept.ipp"
#else
-namespace boost_no_noexcept = empty_boost;
+namespace boost_no_cxx11_noexcept = empty_boost;
#endif
int main( int, char *[] )
{
- return boost_no_noexcept::test();
+ return boost_no_cxx11_noexcept::test();
}
diff --git a/libs/config/test/no_nullptr_fail.cpp b/libs/config/test/no_nullptr_fail.cpp
index 09cda572f3..c870ef236b 100644
--- a/libs/config/test/no_nullptr_fail.cpp
+++ b/libs/config/test/no_nullptr_fail.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_nullptr_fail.cpp 79537 2012-07-15 15:59:05Z marshall $
+// Revision $Id$
//
@@ -32,6 +32,6 @@
int main( int, char *[] )
{
- return boost_no_nullptr::test();
+ return boost_no_cxx11_nullptr::test();
}
diff --git a/libs/config/test/no_nullptr_pass.cpp b/libs/config/test/no_nullptr_pass.cpp
index c26b377fd4..34450ad503 100644
--- a/libs/config/test/no_nullptr_pass.cpp
+++ b/libs/config/test/no_nullptr_pass.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_nullptr_pass.cpp 79537 2012-07-15 15:59:05Z marshall $
+// Revision $Id$
//
@@ -27,11 +27,11 @@
#ifndef BOOST_NO_CXX11_NULLPTR
#include "boost_no_nullptr.ipp"
#else
-namespace boost_no_nullptr = empty_boost;
+namespace boost_no_cxx11_nullptr = empty_boost;
#endif
int main( int, char *[] )
{
- return boost_no_nullptr::test();
+ return boost_no_cxx11_nullptr::test();
}
diff --git a/libs/config/test/no_range_based_for_fail.cpp b/libs/config/test/no_range_based_for_fail.cpp
index 68a72cf91d..6b0a0f54d2 100644
--- a/libs/config/test/no_range_based_for_fail.cpp
+++ b/libs/config/test/no_range_based_for_fail.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_range_based_for_fail.cpp 79537 2012-07-15 15:59:05Z marshall $
+// Revision $Id$
//
diff --git a/libs/config/test/no_range_based_for_pass.cpp b/libs/config/test/no_range_based_for_pass.cpp
index 402df01d55..b8207c5791 100644
--- a/libs/config/test/no_range_based_for_pass.cpp
+++ b/libs/config/test/no_range_based_for_pass.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_range_based_for_pass.cpp 79537 2012-07-15 15:59:05Z marshall $
+// Revision $Id$
//
diff --git a/libs/config/test/no_raw_literals_fail.cpp b/libs/config/test/no_raw_literals_fail.cpp
index d7a4d3b3bb..3c535fadf9 100644
--- a/libs/config/test/no_raw_literals_fail.cpp
+++ b/libs/config/test/no_raw_literals_fail.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_raw_literals_fail.cpp 79537 2012-07-15 15:59:05Z marshall $
+// Revision $Id$
//
@@ -32,6 +32,6 @@
int main( int, char *[] )
{
- return boost_no_raw_literals::test();
+ return boost_no_cxx11_raw_literals::test();
}
diff --git a/libs/config/test/no_raw_literals_pass.cpp b/libs/config/test/no_raw_literals_pass.cpp
index da1d1c83c5..ddf99c2710 100644
--- a/libs/config/test/no_raw_literals_pass.cpp
+++ b/libs/config/test/no_raw_literals_pass.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_raw_literals_pass.cpp 79537 2012-07-15 15:59:05Z marshall $
+// Revision $Id$
//
@@ -27,11 +27,11 @@
#ifndef BOOST_NO_CXX11_RAW_LITERALS
#include "boost_no_raw_literals.ipp"
#else
-namespace boost_no_raw_literals = empty_boost;
+namespace boost_no_cxx11_raw_literals = empty_boost;
#endif
int main( int, char *[] )
{
- return boost_no_raw_literals::test();
+ return boost_no_cxx11_raw_literals::test();
}
diff --git a/libs/config/test/no_rvalue_references_fail.cpp b/libs/config/test/no_rvalue_references_fail.cpp
index 12e225426e..390b6c5f52 100644
--- a/libs/config/test/no_rvalue_references_fail.cpp
+++ b/libs/config/test/no_rvalue_references_fail.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_rvalue_references_fail.cpp 79537 2012-07-15 15:59:05Z marshall $
+// Revision $Id$
//
@@ -32,6 +32,6 @@
int main( int, char *[] )
{
- return boost_no_rvalue_references::test();
+ return boost_no_cxx11_rvalue_references::test();
}
diff --git a/libs/config/test/no_rvalue_references_pass.cpp b/libs/config/test/no_rvalue_references_pass.cpp
index b6aad8d477..c11494c6ca 100644
--- a/libs/config/test/no_rvalue_references_pass.cpp
+++ b/libs/config/test/no_rvalue_references_pass.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_rvalue_references_pass.cpp 79537 2012-07-15 15:59:05Z marshall $
+// Revision $Id$
//
@@ -27,11 +27,11 @@
#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
#include "boost_no_rvalue_references.ipp"
#else
-namespace boost_no_rvalue_references = empty_boost;
+namespace boost_no_cxx11_rvalue_references = empty_boost;
#endif
int main( int, char *[] )
{
- return boost_no_rvalue_references::test();
+ return boost_no_cxx11_rvalue_references::test();
}
diff --git a/libs/config/test/no_scoped_enums_fail.cpp b/libs/config/test/no_scoped_enums_fail.cpp
index 32e8fcc4d4..4c1c184df3 100644
--- a/libs/config/test/no_scoped_enums_fail.cpp
+++ b/libs/config/test/no_scoped_enums_fail.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_scoped_enums_fail.cpp 79537 2012-07-15 15:59:05Z marshall $
+// Revision $Id$
//
@@ -32,6 +32,6 @@
int main( int, char *[] )
{
- return boost_no_scoped_enums::test();
+ return boost_no_cxx11_scoped_enums::test();
}
diff --git a/libs/config/test/no_scoped_enums_pass.cpp b/libs/config/test/no_scoped_enums_pass.cpp
index e16def92bd..501fea90eb 100644
--- a/libs/config/test/no_scoped_enums_pass.cpp
+++ b/libs/config/test/no_scoped_enums_pass.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_scoped_enums_pass.cpp 79537 2012-07-15 15:59:05Z marshall $
+// Revision $Id$
//
@@ -27,11 +27,11 @@
#ifndef BOOST_NO_CXX11_SCOPED_ENUMS
#include "boost_no_scoped_enums.ipp"
#else
-namespace boost_no_scoped_enums = empty_boost;
+namespace boost_no_cxx11_scoped_enums = empty_boost;
#endif
int main( int, char *[] )
{
- return boost_no_scoped_enums::test();
+ return boost_no_cxx11_scoped_enums::test();
}
diff --git a/libs/config/test/no_sfinae_expr_fail.cpp b/libs/config/test/no_sfinae_expr_fail.cpp
index 925f9ecaa8..e7c8b03d75 100644
--- a/libs/config/test/no_sfinae_expr_fail.cpp
+++ b/libs/config/test/no_sfinae_expr_fail.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_sfinae_expr_fail.cpp 56678 2009-10-09 16:16:02Z johnmaddock $
+// Revision $Id$
//
diff --git a/libs/config/test/no_sfinae_expr_pass.cpp b/libs/config/test/no_sfinae_expr_pass.cpp
index 5b580250c8..fc87d786bf 100644
--- a/libs/config/test/no_sfinae_expr_pass.cpp
+++ b/libs/config/test/no_sfinae_expr_pass.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_sfinae_expr_pass.cpp 56678 2009-10-09 16:16:02Z johnmaddock $
+// Revision $Id$
//
diff --git a/libs/config/test/no_static_assert_fail.cpp b/libs/config/test/no_static_assert_fail.cpp
index 34755fc61d..f958c683da 100644
--- a/libs/config/test/no_static_assert_fail.cpp
+++ b/libs/config/test/no_static_assert_fail.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_static_assert_fail.cpp 79537 2012-07-15 15:59:05Z marshall $
+// Revision $Id$
//
@@ -32,6 +32,6 @@
int main( int, char *[] )
{
- return boost_no_static_assert::test();
+ return boost_no_cxx11_static_assert::test();
}
diff --git a/libs/config/test/no_static_assert_pass.cpp b/libs/config/test/no_static_assert_pass.cpp
index fb570f09e4..8529887630 100644
--- a/libs/config/test/no_static_assert_pass.cpp
+++ b/libs/config/test/no_static_assert_pass.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_static_assert_pass.cpp 79537 2012-07-15 15:59:05Z marshall $
+// Revision $Id$
//
@@ -27,11 +27,11 @@
#ifndef BOOST_NO_CXX11_STATIC_ASSERT
#include "boost_no_static_assert.ipp"
#else
-namespace boost_no_static_assert = empty_boost;
+namespace boost_no_cxx11_static_assert = empty_boost;
#endif
int main( int, char *[] )
{
- return boost_no_static_assert::test();
+ return boost_no_cxx11_static_assert::test();
}
diff --git a/libs/config/test/no_tem_local_classes_fail.cpp b/libs/config/test/no_tem_local_classes_fail.cpp
index a1bb96cdf1..f6c2a31ff9 100644
--- a/libs/config/test/no_tem_local_classes_fail.cpp
+++ b/libs/config/test/no_tem_local_classes_fail.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_tem_local_classes_fail.cpp 79537 2012-07-15 15:59:05Z marshall $
+// Revision $Id$
//
@@ -32,6 +32,6 @@
int main( int, char *[] )
{
- return boost_no_local_class_template_parameters::test();
+ return boost_no_cxx11_local_class_template_parameters::test();
}
diff --git a/libs/config/test/no_tem_local_classes_pass.cpp b/libs/config/test/no_tem_local_classes_pass.cpp
index d47ba34fce..036819c186 100644
--- a/libs/config/test/no_tem_local_classes_pass.cpp
+++ b/libs/config/test/no_tem_local_classes_pass.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_tem_local_classes_pass.cpp 79537 2012-07-15 15:59:05Z marshall $
+// Revision $Id$
//
@@ -27,11 +27,11 @@
#ifndef BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
#include "boost_no_tem_local_classes.ipp"
#else
-namespace boost_no_local_class_template_parameters = empty_boost;
+namespace boost_no_cxx11_local_class_template_parameters = empty_boost;
#endif
int main( int, char *[] )
{
- return boost_no_local_class_template_parameters::test();
+ return boost_no_cxx11_local_class_template_parameters::test();
}
diff --git a/libs/config/test/no_template_aliases_fail.cpp b/libs/config/test/no_template_aliases_fail.cpp
index be2591296f..fd4af49e5d 100644
--- a/libs/config/test/no_template_aliases_fail.cpp
+++ b/libs/config/test/no_template_aliases_fail.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_template_aliases_fail.cpp 79537 2012-07-15 15:59:05Z marshall $
+// Revision $Id$
//
@@ -32,6 +32,6 @@
int main( int, char *[] )
{
- return boost_no_template_aliases::test();
+ return boost_no_cxx11_template_aliases::test();
}
diff --git a/libs/config/test/no_template_aliases_pass.cpp b/libs/config/test/no_template_aliases_pass.cpp
index bff908e2cd..ed66a355e7 100644
--- a/libs/config/test/no_template_aliases_pass.cpp
+++ b/libs/config/test/no_template_aliases_pass.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_template_aliases_pass.cpp 79537 2012-07-15 15:59:05Z marshall $
+// Revision $Id$
//
@@ -27,11 +27,11 @@
#ifndef BOOST_NO_CXX11_TEMPLATE_ALIASES
#include "boost_no_template_aliases.ipp"
#else
-namespace boost_no_template_aliases = empty_boost;
+namespace boost_no_cxx11_template_aliases = empty_boost;
#endif
int main( int, char *[] )
{
- return boost_no_template_aliases::test();
+ return boost_no_cxx11_template_aliases::test();
}
diff --git a/libs/config/test/no_unicode_literals_fail.cpp b/libs/config/test/no_unicode_literals_fail.cpp
index 715faf83a9..381f562ac9 100644
--- a/libs/config/test/no_unicode_literals_fail.cpp
+++ b/libs/config/test/no_unicode_literals_fail.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_unicode_literals_fail.cpp 79537 2012-07-15 15:59:05Z marshall $
+// Revision $Id$
//
@@ -32,6 +32,6 @@
int main( int, char *[] )
{
- return boost_no_unicode_literals::test();
+ return boost_no_cxx11_unicode_literals::test();
}
diff --git a/libs/config/test/no_unicode_literals_pass.cpp b/libs/config/test/no_unicode_literals_pass.cpp
index a61f7ebe4f..3fd4547073 100644
--- a/libs/config/test/no_unicode_literals_pass.cpp
+++ b/libs/config/test/no_unicode_literals_pass.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_unicode_literals_pass.cpp 79537 2012-07-15 15:59:05Z marshall $
+// Revision $Id$
//
@@ -27,11 +27,11 @@
#ifndef BOOST_NO_CXX11_UNICODE_LITERALS
#include "boost_no_unicode_literals.ipp"
#else
-namespace boost_no_unicode_literals = empty_boost;
+namespace boost_no_cxx11_unicode_literals = empty_boost;
#endif
int main( int, char *[] )
{
- return boost_no_unicode_literals::test();
+ return boost_no_cxx11_unicode_literals::test();
}
diff --git a/libs/config/test/no_unified_init_fail.cpp b/libs/config/test/no_unified_init_fail.cpp
index cc92327b35..5535fe7d34 100644
--- a/libs/config/test/no_unified_init_fail.cpp
+++ b/libs/config/test/no_unified_init_fail.cpp
@@ -32,6 +32,6 @@
int main( int, char *[] )
{
- return boost_no_unified_initialization_syntax::test();
+ return boost_no_cxx11_unified_initialization_syntax::test();
}
diff --git a/libs/config/test/no_unified_init_pass.cpp b/libs/config/test/no_unified_init_pass.cpp
index facd0f3bda..f4cf57178b 100644
--- a/libs/config/test/no_unified_init_pass.cpp
+++ b/libs/config/test/no_unified_init_pass.cpp
@@ -27,11 +27,11 @@
#ifndef BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
#include "boost_no_unified_init.ipp"
#else
-namespace boost_no_unified_initialization_syntax = empty_boost;
+namespace boost_no_cxx11_unified_initialization_syntax = empty_boost;
#endif
int main( int, char *[] )
{
- return boost_no_unified_initialization_syntax::test();
+ return boost_no_cxx11_unified_initialization_syntax::test();
}
diff --git a/libs/config/test/no_variadic_macros_fail.cpp b/libs/config/test/no_variadic_macros_fail.cpp
index f92c14548b..d76c4f3628 100644
--- a/libs/config/test/no_variadic_macros_fail.cpp
+++ b/libs/config/test/no_variadic_macros_fail.cpp
@@ -32,6 +32,6 @@
int main( int, char *[] )
{
- return boost_no_variadic_macros::test();
+ return boost_no_cxx11_variadic_macros::test();
}
diff --git a/libs/config/test/no_variadic_macros_pass.cpp b/libs/config/test/no_variadic_macros_pass.cpp
index d1624eb848..291b6ea662 100644
--- a/libs/config/test/no_variadic_macros_pass.cpp
+++ b/libs/config/test/no_variadic_macros_pass.cpp
@@ -27,11 +27,11 @@
#ifndef BOOST_NO_CXX11_VARIADIC_MACROS
#include "boost_no_variadic_macros.ipp"
#else
-namespace boost_no_variadic_macros = empty_boost;
+namespace boost_no_cxx11_variadic_macros = empty_boost;
#endif
int main( int, char *[] )
{
- return boost_no_variadic_macros::test();
+ return boost_no_cxx11_variadic_macros::test();
}
diff --git a/libs/config/test/no_variadic_templates_fail.cpp b/libs/config/test/no_variadic_templates_fail.cpp
index 1b71177abb..05fc2c7ad1 100644
--- a/libs/config/test/no_variadic_templates_fail.cpp
+++ b/libs/config/test/no_variadic_templates_fail.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_variadic_templates_fail.cpp 79537 2012-07-15 15:59:05Z marshall $
+// Revision $Id$
//
@@ -32,6 +32,6 @@
int main( int, char *[] )
{
- return boost_no_variadic_templates::test();
+ return boost_no_cxx11_variadic_templates::test();
}
diff --git a/libs/config/test/no_variadic_templates_pass.cpp b/libs/config/test/no_variadic_templates_pass.cpp
index 91bb6cd5fe..2b95540eac 100644
--- a/libs/config/test/no_variadic_templates_pass.cpp
+++ b/libs/config/test/no_variadic_templates_pass.cpp
@@ -6,7 +6,7 @@
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for the most recent version.//
-// Revision $Id: no_variadic_templates_pass.cpp 79537 2012-07-15 15:59:05Z marshall $
+// Revision $Id$
//
@@ -27,11 +27,11 @@
#ifndef BOOST_NO_CXX11_VARIADIC_TEMPLATES
#include "boost_no_variadic_templates.ipp"
#else
-namespace boost_no_variadic_templates = empty_boost;
+namespace boost_no_cxx11_variadic_templates = empty_boost;
#endif
int main( int, char *[] )
{
- return boost_no_variadic_templates::test();
+ return boost_no_cxx11_variadic_templates::test();
}
diff --git a/libs/config/tools/generate.cpp b/libs/config/tools/generate.cpp
index c29f511210..8a8e7708cd 100644
--- a/libs/config/tools/generate.cpp
+++ b/libs/config/tools/generate.cpp
@@ -31,13 +31,15 @@ std::string copyright(
"// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\n"
"\n"
"// See http://www.boost.org/libs/config for the most recent version."
-"//\n// Revision $Id: generate.cpp 73153 2011-07-16 20:12:46Z eric_niebler $\n//\n");
+"//\n// Revision $Id$\n//\n");
std::stringstream config_test1;
std::stringstream config_test1a;
std::stringstream config_test2;
std::stringstream jamfile;
std::stringstream jamfile_v2;
+std::stringstream build_config_test;
+std::stringstream build_config_jamfile;
std::set<std::string> macro_list;
@@ -184,6 +186,47 @@ void write_test_file(const fs::path& file,
}
}
+void write_build_tests()
+{
+ fs::ofstream ofs(config_path / ".." / "checks" / "test_case.cpp");
+ time_t t = std::time(0);
+ ofs << "// This file was automatically generated on " << std::ctime(&t);
+ ofs << "// by libs/config/tools/generate.cpp\n" << copyright << std::endl;
+ ofs << build_config_test.str() << std::endl;
+ ofs << "int main( int, char *[] )\n{\n" << " return test::test();\n}\n\n";
+}
+
+void write_build_check_jamfile()
+{
+ fs::ofstream ofs(config_path / ".." / "checks" / "Jamfile.v2");
+ time_t t = std::time(0);
+ ofs << "#\n# *** DO NOT EDIT THIS FILE BY HAND ***\n"
+ "# This file was automatically generated on " << std::ctime(&t);
+ ofs << "# by libs/config/tools/generate.cpp\n"
+ "# Copyright John Maddock.\n"
+ "# Use, modification and distribution are subject to the \n"
+ "# Boost Software License, Version 1.0. (See accompanying file \n"
+ "# LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\n\n"
+ "import modules ;\nimport path ; \n\n"
+ "actions simple_run_action\n"
+ "{\n"
+ " $(>) > $(<)\n"
+ "}\n"
+ "\n"
+ "rule run-simple ( sources + : args * : input-files * : requirements * : target-name )\n"
+ "{\n"
+ " obj $(target-name)_obj : $(sources) : $(requirements) ;\n"
+ " explicit $(target-name)_obj ;\n"
+ " exe $(target-name)_exe : $(target-name)_obj : $(requirements) ;\n"
+ " explicit $(target-name)_exe ;\n"
+ " #testing.capture-output $(target-name)_output : $(target-name) : $(requirements) <name>$(target-name) ;\n"
+ " make $(target-name).output : $(target-name)_exe : @simple_run_action ;\n"
+ " explicit $(target-name).output ;\n"
+ "}\n\n"
+ ;
+ ofs << build_config_jamfile.str() << std::endl;
+}
+
void process_ipp_file(const fs::path& file, bool positive_test)
{
std::cout << "Info: Scanning file: " << file.string() << std::endl;
@@ -250,6 +293,17 @@ void process_ipp_file(const fs::path& file, bool positive_test)
"[ run ../" << positive_file.leaf().string() << " ]\n"
"[ compile-fail ../" << negative_file.leaf().string() << " ] ;\n";
+ // Generate data for the Build-checks test file:
+ build_config_test << "#ifdef TEST_" << macro_name << std::endl;
+ build_config_test << "# include \"../test/" << file.leaf().string() << "\"\n";
+ build_config_test << "namespace test = " << namespace_name << ";\n#endif\n";
+
+ // Generate data for the build-checks Jamfile:
+ static const boost::regex feature_regex("boost_(?:no|has)_(.*)");
+ std::string feature_name = boost::regex_replace(namespace_name, feature_regex, "\\1");
+ build_config_jamfile << "run-simple test_case.cpp : : : <define>TEST_" << macro_name << " : " << feature_name << " ;\n";
+ build_config_jamfile << "alias " << feature_name << " : " << feature_name << ".output ;\n";
+ build_config_jamfile << "explicit " << feature_name << " ;\n";
}
int cpp_main(int argc, char* argv[])
@@ -270,21 +324,31 @@ int cpp_main(int argc, char* argv[])
}
std::cout << "Info: Boost.Config test path set as: " << config_path.string() << std::endl;
- // enumerate *.ipp files:
+ // enumerate *.ipp files and store them in a map for now:
boost::regex ipp_mask("boost_(?:(has)|no).*\\.ipp");
boost::smatch ipp_match;
fs::directory_iterator i(config_path), j;
+ std::map<fs::path, bool> files_to_process;
while(i != j)
{
if(boost::regex_match(i->path().leaf().string(), ipp_match, ipp_mask))
{
- process_ipp_file(*i, ipp_match[1].matched);
+ files_to_process[*i] = ipp_match[1].matched;
}
++i;
}
+ // Enumerate the files and process them, by defering this until now
+ // the results are always alphabetized which reduces churn in the
+ // generated files.
+ for(std::map<fs::path, bool>::const_iterator pos = files_to_process.begin(); pos != files_to_process.end(); ++pos)
+ {
+ process_ipp_file(pos->first, pos->second);
+ }
write_config_test();
write_jamfile_v2();
write_config_info();
+ write_build_tests();
+ write_build_check_jamfile();
return 0;
}