116 Commits

Author SHA1 Message Date
jzmaddock
c3efdb4bb8 Add XCode 9.4.1 testing. (#463)
* Add XCode 9.4.1 testing.
Refs https://github.com/boostorg/config/issues/462.

* Disable nullptr and __int128 support on clang/XCode-9.1.

* Correct BOOST_HAS_INT128 undef option.

* Stop testing C++17 mode - it's not supported by the std lib.
2022-12-30 09:15:11 +00:00
jzmaddock
2703431699 Clang should use _GLIBCXX_RELEASE
To determine libstdc++ version.
Fixes https://github.com/boostorg/config/issues/455
2022-11-20 18:33:13 +00:00
Alexander Grund
3a8ecbb390 Fix -Wundef for _GLIBCXX_USE_DEPRECATED on libstdc++ >= 4.6 2022-11-12 13:32:07 +01:00
jzmaddock
5f089cc0aa GNU libstdc++3 _GTHREAD_USE_MUTEX_TIMEDLOCK is not used post gcc-6.
Fixes: https://github.com/boostorg/config/issues/399.
2022-11-06 18:45:30 +00:00
Andrey Semashev
ebb95cbf86 Add support for detecting libstdc++ 12 2022-08-31 10:13:16 +03:00
jzmaddock
26a8d38031 unary_function is deprecated from C++11 onwards.
See https://github.com/boostorg/container_hash/issues/22.
2022-05-12 12:32:08 +01:00
jzmaddock
89ff6355e1 Define BOOST_NO_CXX98_FUNCTION_BASE for gcc-12 in C++17 mode or later.
Fixes: https://github.com/boostorg/container_hash/issues/22.
2022-05-10 18:03:38 +01:00
jzmaddock
2fb424497c Add gcc-11 and 12, plus clang-11, 12, 13 and 14 2022-05-10 17:56:56 +01:00
Andrey Semashev
d39021ce28 Added detection of libstdc++ from gcc 11. 2022-01-21 00:39:29 +03:00
jzmaddock
088b79a0ca Merge branch 'develop'
Fixed Conflicts:
	checks/Jamfile.v2
	checks/std/cpp_aggregate_bases_17.cpp
	checks/std/cpp_aggregate_nsdmi_14.cpp
	checks/std/cpp_alias_templates_11.cpp
	checks/std/cpp_aligned_new_17.cpp
	checks/std/cpp_attributes_11.cpp
	checks/std/cpp_binary_literals_14.cpp
	checks/std/cpp_capture_star_this_17.cpp
	checks/std/cpp_char8_t_20.cpp
	checks/std/cpp_conditional_explicit_20.cpp
	checks/std/cpp_constexpr_11.cpp
	checks/std/cpp_constexpr_14.cpp
	checks/std/cpp_constexpr_17.cpp
	checks/std/cpp_decltype_11.cpp
	checks/std/cpp_decltype_auto_14.cpp
	checks/std/cpp_deduction_guides_17.cpp
	checks/std/cpp_delegating_constructors_11.cpp
	checks/std/cpp_enumerator_attributes_17.cpp
	checks/std/cpp_exceptions_03.cpp
	checks/std/cpp_explicit_conversion_11.cpp
	checks/std/cpp_fold_expressions_17.cpp
	checks/std/cpp_generic_lambdas_14.cpp
	checks/std/cpp_guaranteed_copy_elision_17.cpp
	checks/std/cpp_hex_float_17.cpp
	checks/std/cpp_if_constexpr_17.cpp
	checks/std/cpp_impl_destroying_delete_20.cpp
	checks/std/cpp_impl_three_way_comparison_20.cpp
	checks/std/cpp_inheriting_constructors_11.cpp
	checks/std/cpp_inheriting_constructors_17.cpp
	checks/std/cpp_init_captures_14.cpp
	checks/std/cpp_initializer_lists_11.cpp
	checks/std/cpp_inline_variables_17.cpp
	checks/std/cpp_lambdas_11.cpp
	checks/std/cpp_lib_addressof_constexpr_17.cpp
	checks/std/cpp_lib_allocator_traits_is_always_equal_17.cpp
	checks/std/cpp_lib_any_17.cpp
	checks/std/cpp_lib_apply_17.cpp
	checks/std/cpp_lib_array_constexpr_17.cpp
	checks/std/cpp_lib_as_const_17.cpp
	checks/std/cpp_lib_atomic_is_always_lock_free_17.cpp
	checks/std/cpp_lib_atomic_ref_20.cpp
	checks/std/cpp_lib_bind_front_20.cpp
	checks/std/cpp_lib_bit_cast_20.cpp
	checks/std/cpp_lib_bool_constant_17.cpp
	checks/std/cpp_lib_boyer_moore_searcher_17.cpp
	checks/std/cpp_lib_byte_17.cpp
	checks/std/cpp_lib_char8_t_20.cpp
	checks/std/cpp_lib_chrono_17.cpp
	checks/std/cpp_lib_chrono_udls_14.cpp
	checks/std/cpp_lib_clamp_17.cpp
	checks/std/cpp_lib_complex_udls_14.cpp
	checks/std/cpp_lib_concepts_20.cpp
	checks/std/cpp_lib_constexpr_misc_20.cpp
	checks/std/cpp_lib_constexpr_swap_algorithms_20.cpp
	checks/std/cpp_lib_destroying_delete_20.cpp
	checks/std/cpp_lib_enable_shared_from_this_17.cpp
	checks/std/cpp_lib_erase_if_20.cpp
	checks/std/cpp_lib_exchange_function_14.cpp
	checks/std/cpp_lib_execution_17.cpp
	checks/std/cpp_lib_filesystem_17.cpp
	checks/std/cpp_lib_gcd_lcm_17.cpp
	checks/std/cpp_lib_generic_associative_lookup_14.cpp
	checks/std/cpp_lib_generic_unordered_lookup_20.cpp
	checks/std/cpp_lib_hardware_interference_size_17.cpp
	checks/std/cpp_lib_has_unique_object_representations_17.cpp
	checks/std/cpp_lib_hypot_17.cpp
	checks/std/cpp_lib_incomplete_container_elements_17.cpp
	checks/std/cpp_lib_integer_sequence_14.cpp
	checks/std/cpp_lib_integral_constant_callable_14.cpp
	checks/std/cpp_lib_invoke_17.cpp
	checks/std/cpp_lib_is_aggregate_17.cpp
	checks/std/cpp_lib_is_constant_evaluated_20.cpp
	checks/std/cpp_lib_is_final_14.cpp
	checks/std/cpp_lib_is_invocable_17.cpp
	checks/std/cpp_lib_is_null_pointer_14.cpp
	checks/std/cpp_lib_is_swappable_17.cpp
	checks/std/cpp_lib_launder_17.cpp
	checks/std/cpp_lib_list_remove_return_type_20.cpp
	checks/std/cpp_lib_logical_traits_17.cpp
	checks/std/cpp_lib_make_from_tuple_17.cpp
	checks/std/cpp_lib_make_reverse_iterator_14.cpp
	checks/std/cpp_lib_make_unique_14.cpp
	checks/std/cpp_lib_map_try_emplace_17.cpp
	checks/std/cpp_lib_math_special_functions_17.cpp
	checks/std/cpp_lib_memory_resource_17.cpp
	checks/std/cpp_lib_node_extract_17.cpp
	checks/std/cpp_lib_nonmember_container_access_17.cpp
	checks/std/cpp_lib_not_fn_17.cpp
	checks/std/cpp_lib_null_iterators_14.cpp
	checks/std/cpp_lib_optional_17.cpp
	checks/std/cpp_lib_parallel_algorithm_17.cpp
	checks/std/cpp_lib_quoted_string_io_14.cpp
	checks/std/cpp_lib_ranges_20.cpp
	checks/std/cpp_lib_raw_memory_algorithms_17.cpp
	checks/std/cpp_lib_result_of_sfinae_14.cpp
	checks/std/cpp_lib_robust_nonmodifying_seq_ops_14.cpp
	checks/std/cpp_lib_sample_17.cpp
	checks/std/cpp_lib_scoped_lock_17.cpp
	checks/std/cpp_lib_shared_mutex_17.cpp
	checks/std/cpp_lib_shared_ptr_arrays_17.cpp
	checks/std/cpp_lib_shared_ptr_weak_type_17.cpp
	checks/std/cpp_lib_shared_timed_mutex_14.cpp
	checks/std/cpp_lib_string_udls_14.cpp
	checks/std/cpp_lib_string_view_17.cpp
	checks/std/cpp_lib_three_way_comparison_20.cpp
	checks/std/cpp_lib_to_chars_17.cpp
	checks/std/cpp_lib_transformation_trait_aliases_14.cpp
	checks/std/cpp_lib_transparent_operators_14.cpp
	checks/std/cpp_lib_transparent_operators_17.cpp
	checks/std/cpp_lib_tuple_element_t_14.cpp
	checks/std/cpp_lib_tuples_by_type_14.cpp
	checks/std/cpp_lib_type_trait_variable_templates_17.cpp
	checks/std/cpp_lib_uncaught_exceptions_17.cpp
	checks/std/cpp_lib_unordered_map_try_emplace_17.cpp
	checks/std/cpp_lib_variant_17.cpp
	checks/std/cpp_lib_void_t_17.cpp
	checks/std/cpp_namespace_attributes_17.cpp
	checks/std/cpp_noexcept_function_type_17.cpp
	checks/std/cpp_nontype_template_args_17.cpp
	checks/std/cpp_nontype_template_parameter_auto_17.cpp
	checks/std/cpp_nontype_template_parameter_class_20.cpp
	checks/std/cpp_nsdmi_11.cpp
	checks/std/cpp_range_based_for_11.cpp
	checks/std/cpp_range_based_for_17.cpp
	checks/std/cpp_raw_strings_11.cpp
	checks/std/cpp_ref_qualifiers_11.cpp
	checks/std/cpp_return_type_deduction_14.cpp
	checks/std/cpp_rtti_03.cpp
	checks/std/cpp_rvalue_references_11.cpp
	checks/std/cpp_sized_deallocation_14.cpp
	checks/std/cpp_static_assert_11.cpp
	checks/std/cpp_static_assert_17.cpp
	checks/std/cpp_structured_bindings_17.cpp
	checks/std/cpp_template_template_args_17.cpp
	checks/std/cpp_threadsafe_static_init_11.cpp
	checks/std/cpp_unicode_characters_11.cpp
	checks/std/cpp_unicode_literals_11.cpp
	checks/std/cpp_user_defined_literals_11.cpp
	checks/std/cpp_variable_templates_14.cpp
	checks/std/cpp_variadic_templates_11.cpp
	checks/std/cpp_variadic_using_17.cpp
	checks/test_case.cpp
	doc/html/index.html
	include/boost/config/assert_cxx03.hpp
	include/boost/config/assert_cxx11.hpp
	include/boost/config/assert_cxx14.hpp
	include/boost/config/assert_cxx17.hpp
	include/boost/config/detail/cxx_composite.hpp
	test/all/Jamfile.v2
	test/config_info.cpp
	test/config_test.cpp
	tools/generate.cpp
2021-07-03 10:14:16 +01:00
jzmaddock
45100b9c04 Tentative fix for issue 376.
Fixes: https://github.com/boostorg/config/issues/376.
2021-03-19 17:37:28 +00:00
jzmaddock
aed3dd0727 Correct gcc-10 boost_has_hash. 2021-03-18 19:18:45 +00:00
jzmaddock
583b0023eb Correct spelling of BOOST_HAS_HASH in undef! 2021-03-18 19:18:37 +00:00
jzmaddock
f91a09a30f hash_set/hash_map no longer function from gcc-10 onwards. 2021-03-18 19:18:33 +00:00
jzmaddock
499c0f965e Correct gcc-10 boost_has_hash. 2021-03-12 19:46:48 +00:00
jzmaddock
5e71c0dcad Correct spelling of BOOST_HAS_HASH in undef! 2021-03-12 19:33:04 +00:00
jzmaddock
9a06b9a487 hash_set/hash_map no longer function from gcc-10 onwards. 2021-03-12 19:27:19 +00:00
jzmaddock
b5b3482a58 libstdc++3 Disable more things that rely on concepts, if concepts aren't supported.
ie older clang on newer std lib.
2021-03-05 12:13:49 +00:00
jzmaddock
5f9b983798 Fix up libstdc++3 for older clang with a newer std lib. 2021-03-05 12:05:31 +00:00
jzmaddock
8bacf65145 Begin C++20 support. 2021-03-04 20:38:19 +00:00
Nikita Kniazev
18d34e3123 Remove BOOST_NO_CXX11_HDR_ATOMIC for Clang < 3.7
This restriction is either too pessimistic or completely wrong.

Closes #367
2021-03-03 04:51:34 +03:00
jzmaddock
b4a0ebc265 Update libstdcpp3.hpp to use has_include to check for has_set/hash_map presence.
Correct doc typo.
Update tests to use BOOST_HASH_SET_HEADER.
Fixes https://github.com/boostorg/config/issues/349.
2020-12-18 10:53:01 +00:00
jzmaddock
a9bc134610 Merge pull request #340 from boostorg/cxx17_headers
Macros for c++17 headers
2020-10-12 18:09:14 +01:00
Victor Westerhuis
3b62357c43 Do not use C++98 binders when _GLIBCXX_USE_DEPRECATED=0
They are not available from libstdc++ in that case.
2020-09-14 14:49:40 +02:00
jzmaddock
2276736ced Another try to configure <execution> correctly for libstdc++. 2020-07-29 19:12:24 +01:00
jzmaddock
d0f983f942 Header <execution> may not be available if it depends on Intel's TBB. 2020-07-29 18:57:56 +01:00
jzmaddock
03e99668f6 Define BOOST_NO_CXX17_HDR_CHARCONV pre-gcc-10. 2020-07-28 19:07:19 +01:00
Andrey Semashev
48a22d91b3 Detect libstdc++ from gcc 10 by the presence of <compare> header. 2020-05-23 19:46:40 +03:00
jzmaddock
7292b5d6d1 Fix accidental removal of BOOST_NO_CXX11_HDR_EXCEPTION define 2019-10-28 19:30:59 +00:00
jzmaddock
c035825792 Update libstdc++ library version detection: fixes https://github.com/boostorg/config/issues/302 2019-10-28 17:59:35 +00:00
jzmaddock
7bc82dbefd Add BOOST_NO_CXX11_EXCECPTION.
Replaces: https://github.com/boostorg/config/pull/285
Fixes https://github.com/boostorg/config/issues/284
See also: https://github.com/boostorg/exception/issues/10
2019-08-23 12:45:33 +01:00
jzmaddock
d112744885 Add BOOST_NO_CXX17_HDR_VARIANT.
See https://github.com/boostorg/config/issues/264
2019-04-01 19:08:54 +01:00
jzmaddock
b420491e88 Add BOOST_NO_CXX17_HDR_STRING_VIEW. 2018-08-16 11:25:16 +01:00
jzmaddock
5364a2e8a7 Add new macro BOOST_NO_CXX17_HDR_OPTIONAL.
Fixes: https://github.com/boostorg/config/issues/236.
2018-08-04 19:21:21 +01:00
jzmaddock
3764d61f25 BOOST_NO_CXX17_STD_INVOKE: Update test case to check we have std::invoke_result.
MSVC has no std::invoke in C++14 mode.
GCC has no std::invoke_result prior to 7.1.
2018-04-03 19:08:57 +01:00
Brian Kuhl
918c5fc486 Update vxworks.hpp for VxWorks 7 2017-09-02 06:21:57 -04:00
Andrey Semashev
34f320c4c9 Added BOOST_NO_CXX17_ITERATOR_TRAITS macro.
The macro indicates that the standard library does not implement SFINAE-friendly
std::iterator_traits (LWG issue 2408, [iterator.traits]/2).
2017-07-12 20:37:47 +03:00
jzmaddock
ecd1c79fd0 Merge pull request #134 from glenfe/develop
Add BOOST_NO_CXX11_POINTER_TRAITS library defect detection
2017-05-20 11:30:15 +01:00
John Maddock
cd396b619a Clang 3.x can't parse <chrono> from gcc-4.6 and earlier. 2017-05-19 19:18:40 +01:00
Glen Fernandes
219c351cb4 Add BOOST_NO_CXX11_POINTER_TRAITS 2017-05-19 13:29:52 -04:00
jzmaddock
40f4e6ed2f Disable <chrono> for older clang versions. 2017-05-19 18:11:29 +01:00
John Maddock
6d7592091c When using clang + libstdC++ not all C++11 features are necessarily available 2017-05-19 13:38:02 +01:00
jzmaddock
7a78d997d0 Fixes for various clang versions: clang-5 didn't like the comparison used for testing nl_type.h, other clang versions look for ::gets even though libstdc++ doesn't define it 2017-02-26 13:01:11 +00:00
Jonathan Wakely
e21b1729cb Fix name of the library 2017-01-17 23:21:37 +00:00
jzmaddock
25be5543ae libstdc++ has no std::exchange unless in C++14 mode. 2016-12-15 10:35:00 +00:00
Oliver Kowalke
13f5d9c88a defect macro for C++14 feature std::exchange() 2016-12-12 19:41:30 +01:00
Oliver Kowalke
68b7cc8759 defect macro for C++17 feature std::apply() 2016-12-11 12:25:53 +01:00
Oliver Kowalke
b20d7a811e use of <experimental/memory_resource> for clang detection
use <experimental/memory_resource> instead of <experimental/filesystem> to check for libstdc++ 6.1
2016-10-20 13:52:28 +02:00
Oliver Kowalke
350cfd5d82 use <experimental/filesystem> to test for version 6.1 (clang) 2016-10-20 08:59:51 +02:00
Oliver Kowalke
b0b52d6c75 defect macro for C++17 feature std::invoke() 2016-10-14 20:49:48 +02:00