
C++Builder 13 introduces enhanced capabilities for developers using the Modern Win64 C++ compiler (Bcc64x). This release enables C++ developers to work with the ISO C++23 language and libraries through the Clang v20 compiler, part of the LLVM v20 toolchain. The updated Bcc64x compiler defaults to C++23, but developers can also target C++20 or C++17 if needed. Additionally, the release supports multiple shared runtime libraries (e.g., libc++.dll) with version-specific filenames (e.g., libc++-370.dll), preventing runtime conflicts when working with different versions of C++Builder on the same machine.
ISO C++ language and libraries feature test console application
The ISO C++ standard defines a set of preprocessor macros corresponding to C++ language and library features introduced in C++11 or later. You can use these macros to create tests in your programs for the presence (or absence) of C++ language and library features. You can find additional information on the following sites:
- SD-FeatureTest: Feature-Test Macros and Policies https://isocpp.org/std/standing-documents/sd-6-sg10-feature-test-recommendations
- C++ Feature testing https://en.cppreference.com/w/cpp/feature_test.html
- Check and dump C++ feature test defines https://github.com/makelinux/examples/blob/main/cpp/features.cpp
C++ Feature Test Console Application Output
Using C++Builder 13, I created a console application project derived from the featureTest.cpp code I found on cppreference.com. The following is the C++Builder 13 Feature Test console application output (run on 09/13/2025)
Note: you can download a copy of my C++Builder language and library feature test console application project code in a zip file
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 |
C++ GENERAL __cplusplus 202302 __cpp_exceptions 199711 __cpp_rtti 199711 __clang__ 1 __clang_major__ 20 __clang_minor__ 1 __clang_patchlevel__ 7 C++11 CORE __cpp_alias_templates 200704 __cpp_attributes 200809 __cpp_constexpr 202211 __cpp_decltype 200707 __cpp_delegating_constructors 200604 __cpp_inheriting_constructors 201511 __cpp_initializer_lists 200806 __cpp_lambdas 200907 __cpp_nsdmi 200809 __cpp_range_based_for 202211 __cpp_raw_strings 200710 __cpp_ref_qualifiers 200710 __cpp_rvalue_references 200610 __cpp_static_assert 202306 __cpp_threadsafe_static_init 200806 __cpp_unicode_characters 200704 __cpp_unicode_literals 200710 __cpp_user_defined_literals 200809 __cpp_variadic_templates 200704 C++14 CORE __cpp_aggregate_nsdmi 201304 __cpp_binary_literals 201304 __cpp_constexpr 202211 __cpp_decltype_auto 201304 __cpp_generic_lambdas 201707 __cpp_init_captures 201803 __cpp_return_type_deduction 201304 __cpp_sized_deallocation ------ __cpp_variable_templates 201304 C++14 LIB __cpp_lib_chrono_udls 201304 __cpp_lib_complex_udls 201309 __cpp_lib_exchange_function 201304 __cpp_lib_generic_associative_lookup 201304 __cpp_lib_integer_sequence 201304 __cpp_lib_integral_constant_callable 201304 __cpp_lib_is_final 201402 __cpp_lib_is_null_pointer 201309 __cpp_lib_make_reverse_iterator 201402 __cpp_lib_make_unique 201304 __cpp_lib_null_iterators 201304 __cpp_lib_quoted_string_io 201304 __cpp_lib_result_of_sfinae 201210 __cpp_lib_robust_nonmodifying_seq_ops 201304 __cpp_lib_shared_timed_mutex 201402 __cpp_lib_string_udls 201304 __cpp_lib_transformation_trait_aliases 201304 __cpp_lib_transparent_operators 201510 __cpp_lib_tuple_element_t 201402 __cpp_lib_tuples_by_type 201304 C++17 CORE __cpp_aggregate_bases 201603 __cpp_aligned_new 201606 __cpp_capture_star_this 201603 __cpp_constexpr 202211 __cpp_deduction_guides 201703 __cpp_enumerator_attributes 201411 __cpp_fold_expressions 201603 __cpp_guaranteed_copy_elision 201606 __cpp_hex_float 201603 __cpp_if_constexpr 201606 __cpp_inheriting_constructors 201511 __cpp_inline_variables 201606 __cpp_namespace_attributes 201411 __cpp_noexcept_function_type 201510 __cpp_nontype_template_args 201411 __cpp_nontype_template_parameter_auto 201606 __cpp_range_based_for 202211 __cpp_static_assert 202306 __cpp_structured_bindings 202403 __cpp_template_template_args 201611 __cpp_variadic_using 201611 C++17 LIB __cpp_lib_addressof_constexpr 201603 __cpp_lib_allocator_traits_is_always_equal 201411 __cpp_lib_any 201606 __cpp_lib_apply 201603 __cpp_lib_array_constexpr 201811 __cpp_lib_as_const 201510 __cpp_lib_atomic_is_always_lock_free 201603 __cpp_lib_bool_constant 201505 __cpp_lib_boyer_moore_searcher 201603 __cpp_lib_byte 201603 __cpp_lib_chrono 201611 __cpp_lib_clamp 201603 __cpp_lib_enable_shared_from_this 201603 __cpp_lib_execution ------ __cpp_lib_filesystem 201703 __cpp_lib_gcd_lcm 201606 __cpp_lib_hardware_interference_size 201703 __cpp_lib_has_unique_object_representations 201606 __cpp_lib_hypot 201603 __cpp_lib_incomplete_container_elements 201505 __cpp_lib_invoke 201411 __cpp_lib_is_aggregate 201703 __cpp_lib_is_invocable 201703 __cpp_lib_is_swappable 201603 __cpp_lib_launder 201606 __cpp_lib_logical_traits 201510 __cpp_lib_make_from_tuple 201606 __cpp_lib_map_try_emplace 201411 __cpp_lib_math_special_functions ------ __cpp_lib_memory_resource 201603 __cpp_lib_node_extract 201606 __cpp_lib_nonmember_container_access 201411 __cpp_lib_not_fn 201603 __cpp_lib_optional 202110 __cpp_lib_parallel_algorithm ------ __cpp_lib_raw_memory_algorithms 201606 __cpp_lib_sample 201603 __cpp_lib_scoped_lock 201703 __cpp_lib_shared_mutex 201505 __cpp_lib_shared_ptr_arrays 201707 __cpp_lib_shared_ptr_weak_type 201606 __cpp_lib_string_view 201803 __cpp_lib_to_chars ------ __cpp_lib_transparent_operators 201510 __cpp_lib_type_trait_variable_templates 201510 __cpp_lib_uncaught_exceptions 201411 __cpp_lib_unordered_map_try_emplace 201411 __cpp_lib_variant 202106 __cpp_lib_void_t 201411 C++20 CORE __cpp_aggregate_paren_init 201902 __cpp_char8_t 202207 __cpp_concepts 202002 __cpp_conditional_explicit 201806 __cpp_consteval 202211 __cpp_constexpr 202211 __cpp_constexpr_dynamic_alloc 201907 __cpp_constexpr_in_decltype 201711 __cpp_constinit 201907 __cpp_deduction_guides 201703 __cpp_designated_initializers 201707 __cpp_generic_lambdas 201707 __cpp_impl_coroutine 201902 __cpp_impl_destroying_delete 201806 __cpp_impl_three_way_comparison 201907 __cpp_init_captures 201803 __cpp_modules ------ __cpp_nontype_template_args 201411 __cpp_using_enum 201907 C++20 LIB __cpp_lib_array_constexpr 201811 __cpp_lib_assume_aligned 201811 __cpp_lib_atomic_flag_test 201907 __cpp_lib_atomic_float 201711 __cpp_lib_atomic_lock_free_type_aliases 201907 __cpp_lib_atomic_ref 201806 __cpp_lib_atomic_shared_ptr ------ __cpp_lib_atomic_value_initialization 201911 __cpp_lib_atomic_wait 201907 __cpp_lib_barrier 201907 __cpp_lib_bind_front 201907 __cpp_lib_bit_cast 201806 __cpp_lib_bitops 201907 __cpp_lib_bounded_array_traits 201902 __cpp_lib_char8_t 201907 __cpp_lib_chrono 201611 __cpp_lib_concepts 202002 __cpp_lib_constexpr_algorithms 201806 __cpp_lib_constexpr_complex 201711 __cpp_lib_constexpr_dynamic_alloc 201907 __cpp_lib_constexpr_functional 201907 __cpp_lib_constexpr_iterator 201811 __cpp_lib_constexpr_memory 202202 __cpp_lib_constexpr_numeric 201911 __cpp_lib_constexpr_string 201907 __cpp_lib_constexpr_string_view 201811 __cpp_lib_constexpr_tuple 201811 __cpp_lib_constexpr_utility 201811 __cpp_lib_constexpr_vector 201907 __cpp_lib_coroutine 201902 __cpp_lib_destroying_delete 201806 __cpp_lib_endian 201907 __cpp_lib_erase_if 202002 __cpp_lib_execution ------ __cpp_lib_format 202110 __cpp_lib_generic_unordered_lookup 201811 __cpp_lib_int_pow2 202002 __cpp_lib_integer_comparison_functions 202002 __cpp_lib_interpolate 201902 __cpp_lib_is_constant_evaluated 201811 __cpp_lib_is_layout_compatible ------ __cpp_lib_is_nothrow_convertible 201806 __cpp_lib_is_pointer_interconvertible ------ __cpp_lib_jthread 201911 __cpp_lib_latch 201907 __cpp_lib_list_remove_return_type 201806 __cpp_lib_math_constants 201907 __cpp_lib_polymorphic_allocator 201902 __cpp_lib_ranges 202406 __cpp_lib_remove_cvref 201711 __cpp_lib_semaphore 201907 __cpp_lib_shared_ptr_arrays 201707 __cpp_lib_shift 201806 __cpp_lib_smart_ptr_for_overwrite 202002 __cpp_lib_source_location 201907 __cpp_lib_span 202002 __cpp_lib_ssize 201902 __cpp_lib_starts_ends_with 201711 __cpp_lib_string_view 201803 __cpp_lib_syncbuf ------ __cpp_lib_three_way_comparison 201907 __cpp_lib_to_address 201711 __cpp_lib_to_array 201907 __cpp_lib_type_identity 201806 __cpp_lib_unwrap_ref 201811 C++23 CORE __cpp_char8_t 202207 __cpp_consteval 202211 __cpp_constexpr 202211 __cpp_explicit_this_parameter 202110 __cpp_if_consteval 202106 __cpp_implicit_move 202207 __cpp_multidimensional_subscript 202211 __cpp_named_character_escapes 202207 __cpp_range_based_for 202211 __cpp_static_call_operator 202207 __cpp_size_t_suffix 202011 C++23 LIB __cpp_lib_adaptor_iterator_pair_constructor 202106 __cpp_lib_algorithm_iterator_requirements ------ __cpp_lib_allocate_at_least 202302 __cpp_lib_associative_heterogeneous_erasure ------ __cpp_lib_barrier 201907 __cpp_lib_bind_back 202202 __cpp_lib_byteswap 202110 __cpp_lib_common_reference ------ __cpp_lib_common_reference_wrapper ------ __cpp_lib_concepts 202002 __cpp_lib_constexpr_bitset 202207 __cpp_lib_constexpr_charconv 202207 __cpp_lib_constexpr_cmath ------ __cpp_lib_constexpr_memory 202202 __cpp_lib_constexpr_typeinfo 202106 __cpp_lib_containers_ranges 202202 __cpp_lib_expected 202211 __cpp_lib_flat_map 202207 __cpp_lib_flat_set ------ __cpp_lib_format 202110 __cpp_lib_format_ranges 202207 __cpp_lib_formatters ------ __cpp_lib_forward_like 202207 __cpp_lib_generator ------ __cpp_lib_invoke_r 202106 __cpp_lib_ios_noreplace 202207 __cpp_lib_is_implicit_lifetime 202302 __cpp_lib_is_scoped_enum 202011 __cpp_lib_mdspan 202207 __cpp_lib_modules 202207 __cpp_lib_move_iterator_concept 202207 __cpp_lib_move_only_function ------ __cpp_lib_optional 202110 __cpp_lib_optional_range_support ------ __cpp_lib_out_ptr 202106 __cpp_lib_print 202207 __cpp_lib_ranges 202406 __cpp_lib_ranges_as_const ------ __cpp_lib_ranges_as_rvalue 202207 __cpp_lib_ranges_cartesian_product ------ __cpp_lib_ranges_chunk ------ __cpp_lib_ranges_chunk_by 202202 __cpp_lib_ranges_contains 202207 __cpp_lib_ranges_enumerate ------ __cpp_lib_ranges_find_last 202207 __cpp_lib_ranges_fold ------ __cpp_lib_ranges_iota ------ __cpp_lib_ranges_join_with ------ __cpp_lib_ranges_repeat 202207 __cpp_lib_ranges_slide ------ __cpp_lib_ranges_starts_ends_with 202106 __cpp_lib_ranges_stride ------ __cpp_lib_ranges_to_container 202202 __cpp_lib_ranges_zip ------ __cpp_lib_reference_from_temporary ------ __cpp_lib_shift 201806 __cpp_lib_spanstream ------ __cpp_lib_stacktrace ------ __cpp_lib_start_lifetime_as ------ __cpp_lib_stdatomic_h 202011 __cpp_lib_string_contains 202011 __cpp_lib_string_resize_and_overwrite 202110 __cpp_lib_to_underlying 202102 __cpp_lib_tuple_like ------ __cpp_lib_unreachable 202202 __cpp_lib_variant 202106 ATTRIBUTES carries_dependency 200809 deprecated 201309 fallthrough 201603 likely 201803 maybe_unused 201603 nodiscard 201907 noreturn 200809 no_unique_address 201803 unlikely 201803 |
Design. Code. Compile. Deploy.
Start Free Trial Upgrade Today
Free Delphi Community Edition Free C++Builder Community Edition
There are still a few blanks for C++14 core and C++17 lib. Are they going to be added or will they be omitted?
I will research the blank items you mentioned in the list for C++14 compiler and C++17 libraries to see if this is a problem with my C++ feature flags code, ID value or something else. Thanks for the comment 😀