mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-11-30 23:35:00 +08:00
libstdc++: Do not declare strtok for C++26 freestanding (P2937R0)
This was recently approved for C++26. We should define the __cpp_lib_freestanding_cstring macro in <string.h> as well as <cstring>, but we do not currently install our own <string.h> for most targets. libstdc++-v3/ChangeLog: * include/bits/version.def (freestanding_cstring): Add. * include/bits/version.h: Regenerate. * include/c_compatibility/string.h (strtok): Do not declare for C++26 freestanding. * include/c_global/cstring (strtok): Likewise. * testsuite/21_strings/headers/cstring/version.cc: New test.
This commit is contained in:
parent
43626143c9
commit
7adb7c6ea4
@ -1366,6 +1366,15 @@ ftms = {
|
||||
};
|
||||
};
|
||||
|
||||
ftms = {
|
||||
name = freestanding_cstring;
|
||||
values = {
|
||||
v = 202311;
|
||||
// This is a C++26 feature, but we support it in C++23.
|
||||
cxxmin = 23;
|
||||
};
|
||||
};
|
||||
|
||||
ftms = {
|
||||
name = freestanding_expected;
|
||||
values = {
|
||||
|
@ -1653,6 +1653,17 @@
|
||||
#undef __glibcxx_want_freestanding_array
|
||||
|
||||
// from version.def line 1370
|
||||
#if !defined(__cpp_lib_freestanding_cstring)
|
||||
# if (__cplusplus >= 202100L)
|
||||
# define __glibcxx_freestanding_cstring 202311L
|
||||
# if defined(__glibcxx_want_all) || defined(__glibcxx_want_freestanding_cstring)
|
||||
# define __cpp_lib_freestanding_cstring 202311L
|
||||
# endif
|
||||
# endif
|
||||
#endif /* !defined(__cpp_lib_freestanding_cstring) && defined(__glibcxx_want_freestanding_cstring) */
|
||||
#undef __glibcxx_want_freestanding_cstring
|
||||
|
||||
// from version.def line 1379
|
||||
#if !defined(__cpp_lib_freestanding_expected)
|
||||
# if (__cplusplus >= 202100L) && (__cpp_lib_expected)
|
||||
# define __glibcxx_freestanding_expected 202311L
|
||||
@ -1663,7 +1674,7 @@
|
||||
#endif /* !defined(__cpp_lib_freestanding_expected) && defined(__glibcxx_want_freestanding_expected) */
|
||||
#undef __glibcxx_want_freestanding_expected
|
||||
|
||||
// from version.def line 1380
|
||||
// from version.def line 1389
|
||||
#if !defined(__cpp_lib_freestanding_optional)
|
||||
# if (__cplusplus >= 202100L)
|
||||
# define __glibcxx_freestanding_optional 202311L
|
||||
@ -1674,7 +1685,7 @@
|
||||
#endif /* !defined(__cpp_lib_freestanding_optional) && defined(__glibcxx_want_freestanding_optional) */
|
||||
#undef __glibcxx_want_freestanding_optional
|
||||
|
||||
// from version.def line 1389
|
||||
// from version.def line 1398
|
||||
#if !defined(__cpp_lib_freestanding_string_view)
|
||||
# if (__cplusplus >= 202100L)
|
||||
# define __glibcxx_freestanding_string_view 202311L
|
||||
@ -1685,7 +1696,7 @@
|
||||
#endif /* !defined(__cpp_lib_freestanding_string_view) && defined(__glibcxx_want_freestanding_string_view) */
|
||||
#undef __glibcxx_want_freestanding_string_view
|
||||
|
||||
// from version.def line 1398
|
||||
// from version.def line 1407
|
||||
#if !defined(__cpp_lib_freestanding_variant)
|
||||
# if (__cplusplus >= 202100L)
|
||||
# define __glibcxx_freestanding_variant 202311L
|
||||
@ -1696,7 +1707,7 @@
|
||||
#endif /* !defined(__cpp_lib_freestanding_variant) && defined(__glibcxx_want_freestanding_variant) */
|
||||
#undef __glibcxx_want_freestanding_variant
|
||||
|
||||
// from version.def line 1407
|
||||
// from version.def line 1416
|
||||
#if !defined(__cpp_lib_invoke_r)
|
||||
# if (__cplusplus >= 202100L)
|
||||
# define __glibcxx_invoke_r 202106L
|
||||
@ -1707,7 +1718,7 @@
|
||||
#endif /* !defined(__cpp_lib_invoke_r) && defined(__glibcxx_want_invoke_r) */
|
||||
#undef __glibcxx_want_invoke_r
|
||||
|
||||
// from version.def line 1415
|
||||
// from version.def line 1424
|
||||
#if !defined(__cpp_lib_is_scoped_enum)
|
||||
# if (__cplusplus >= 202100L)
|
||||
# define __glibcxx_is_scoped_enum 202011L
|
||||
@ -1718,7 +1729,7 @@
|
||||
#endif /* !defined(__cpp_lib_is_scoped_enum) && defined(__glibcxx_want_is_scoped_enum) */
|
||||
#undef __glibcxx_want_is_scoped_enum
|
||||
|
||||
// from version.def line 1423
|
||||
// from version.def line 1432
|
||||
#if !defined(__cpp_lib_reference_from_temporary)
|
||||
# if (__cplusplus >= 202100L) && (__has_builtin(__reference_constructs_from_temporary) && __has_builtin(__reference_converts_from_temporary))
|
||||
# define __glibcxx_reference_from_temporary 202202L
|
||||
@ -1729,7 +1740,7 @@
|
||||
#endif /* !defined(__cpp_lib_reference_from_temporary) && defined(__glibcxx_want_reference_from_temporary) */
|
||||
#undef __glibcxx_want_reference_from_temporary
|
||||
|
||||
// from version.def line 1434
|
||||
// from version.def line 1443
|
||||
#if !defined(__cpp_lib_to_underlying)
|
||||
# if (__cplusplus >= 202100L)
|
||||
# define __glibcxx_to_underlying 202102L
|
||||
@ -1740,7 +1751,7 @@
|
||||
#endif /* !defined(__cpp_lib_to_underlying) && defined(__glibcxx_want_to_underlying) */
|
||||
#undef __glibcxx_want_to_underlying
|
||||
|
||||
// from version.def line 1442
|
||||
// from version.def line 1451
|
||||
#if !defined(__cpp_lib_unreachable)
|
||||
# if (__cplusplus >= 202100L)
|
||||
# define __glibcxx_unreachable 202202L
|
||||
@ -1751,7 +1762,7 @@
|
||||
#endif /* !defined(__cpp_lib_unreachable) && defined(__glibcxx_want_unreachable) */
|
||||
#undef __glibcxx_want_unreachable
|
||||
|
||||
// from version.def line 1450
|
||||
// from version.def line 1459
|
||||
#if !defined(__cpp_lib_ranges_zip)
|
||||
# if (__cplusplus >= 202100L)
|
||||
# define __glibcxx_ranges_zip 202110L
|
||||
@ -1762,7 +1773,7 @@
|
||||
#endif /* !defined(__cpp_lib_ranges_zip) && defined(__glibcxx_want_ranges_zip) */
|
||||
#undef __glibcxx_want_ranges_zip
|
||||
|
||||
// from version.def line 1458
|
||||
// from version.def line 1467
|
||||
#if !defined(__cpp_lib_ranges_chunk)
|
||||
# if (__cplusplus >= 202100L)
|
||||
# define __glibcxx_ranges_chunk 202202L
|
||||
@ -1773,7 +1784,7 @@
|
||||
#endif /* !defined(__cpp_lib_ranges_chunk) && defined(__glibcxx_want_ranges_chunk) */
|
||||
#undef __glibcxx_want_ranges_chunk
|
||||
|
||||
// from version.def line 1466
|
||||
// from version.def line 1475
|
||||
#if !defined(__cpp_lib_ranges_slide)
|
||||
# if (__cplusplus >= 202100L)
|
||||
# define __glibcxx_ranges_slide 202202L
|
||||
@ -1784,7 +1795,7 @@
|
||||
#endif /* !defined(__cpp_lib_ranges_slide) && defined(__glibcxx_want_ranges_slide) */
|
||||
#undef __glibcxx_want_ranges_slide
|
||||
|
||||
// from version.def line 1474
|
||||
// from version.def line 1483
|
||||
#if !defined(__cpp_lib_ranges_chunk_by)
|
||||
# if (__cplusplus >= 202100L)
|
||||
# define __glibcxx_ranges_chunk_by 202202L
|
||||
@ -1795,7 +1806,7 @@
|
||||
#endif /* !defined(__cpp_lib_ranges_chunk_by) && defined(__glibcxx_want_ranges_chunk_by) */
|
||||
#undef __glibcxx_want_ranges_chunk_by
|
||||
|
||||
// from version.def line 1482
|
||||
// from version.def line 1491
|
||||
#if !defined(__cpp_lib_ranges_join_with)
|
||||
# if (__cplusplus >= 202100L)
|
||||
# define __glibcxx_ranges_join_with 202202L
|
||||
@ -1806,7 +1817,7 @@
|
||||
#endif /* !defined(__cpp_lib_ranges_join_with) && defined(__glibcxx_want_ranges_join_with) */
|
||||
#undef __glibcxx_want_ranges_join_with
|
||||
|
||||
// from version.def line 1490
|
||||
// from version.def line 1499
|
||||
#if !defined(__cpp_lib_ranges_repeat)
|
||||
# if (__cplusplus >= 202100L)
|
||||
# define __glibcxx_ranges_repeat 202207L
|
||||
@ -1817,7 +1828,7 @@
|
||||
#endif /* !defined(__cpp_lib_ranges_repeat) && defined(__glibcxx_want_ranges_repeat) */
|
||||
#undef __glibcxx_want_ranges_repeat
|
||||
|
||||
// from version.def line 1498
|
||||
// from version.def line 1507
|
||||
#if !defined(__cpp_lib_ranges_stride)
|
||||
# if (__cplusplus >= 202100L)
|
||||
# define __glibcxx_ranges_stride 202207L
|
||||
@ -1828,7 +1839,7 @@
|
||||
#endif /* !defined(__cpp_lib_ranges_stride) && defined(__glibcxx_want_ranges_stride) */
|
||||
#undef __glibcxx_want_ranges_stride
|
||||
|
||||
// from version.def line 1506
|
||||
// from version.def line 1515
|
||||
#if !defined(__cpp_lib_ranges_cartesian_product)
|
||||
# if (__cplusplus >= 202100L)
|
||||
# define __glibcxx_ranges_cartesian_product 202207L
|
||||
@ -1839,7 +1850,7 @@
|
||||
#endif /* !defined(__cpp_lib_ranges_cartesian_product) && defined(__glibcxx_want_ranges_cartesian_product) */
|
||||
#undef __glibcxx_want_ranges_cartesian_product
|
||||
|
||||
// from version.def line 1514
|
||||
// from version.def line 1523
|
||||
#if !defined(__cpp_lib_ranges_as_rvalue)
|
||||
# if (__cplusplus >= 202100L)
|
||||
# define __glibcxx_ranges_as_rvalue 202207L
|
||||
@ -1850,7 +1861,7 @@
|
||||
#endif /* !defined(__cpp_lib_ranges_as_rvalue) && defined(__glibcxx_want_ranges_as_rvalue) */
|
||||
#undef __glibcxx_want_ranges_as_rvalue
|
||||
|
||||
// from version.def line 1522
|
||||
// from version.def line 1531
|
||||
#if !defined(__cpp_lib_ranges_as_const)
|
||||
# if (__cplusplus >= 202100L)
|
||||
# define __glibcxx_ranges_as_const 202207L
|
||||
@ -1861,7 +1872,7 @@
|
||||
#endif /* !defined(__cpp_lib_ranges_as_const) && defined(__glibcxx_want_ranges_as_const) */
|
||||
#undef __glibcxx_want_ranges_as_const
|
||||
|
||||
// from version.def line 1530
|
||||
// from version.def line 1539
|
||||
#if !defined(__cpp_lib_ranges_enumerate)
|
||||
# if (__cplusplus >= 202100L)
|
||||
# define __glibcxx_ranges_enumerate 202302L
|
||||
@ -1872,7 +1883,7 @@
|
||||
#endif /* !defined(__cpp_lib_ranges_enumerate) && defined(__glibcxx_want_ranges_enumerate) */
|
||||
#undef __glibcxx_want_ranges_enumerate
|
||||
|
||||
// from version.def line 1538
|
||||
// from version.def line 1547
|
||||
#if !defined(__cpp_lib_ranges_fold)
|
||||
# if (__cplusplus >= 202100L)
|
||||
# define __glibcxx_ranges_fold 202207L
|
||||
@ -1883,7 +1894,7 @@
|
||||
#endif /* !defined(__cpp_lib_ranges_fold) && defined(__glibcxx_want_ranges_fold) */
|
||||
#undef __glibcxx_want_ranges_fold
|
||||
|
||||
// from version.def line 1546
|
||||
// from version.def line 1555
|
||||
#if !defined(__cpp_lib_ranges_contains)
|
||||
# if (__cplusplus >= 202100L)
|
||||
# define __glibcxx_ranges_contains 202207L
|
||||
@ -1894,7 +1905,7 @@
|
||||
#endif /* !defined(__cpp_lib_ranges_contains) && defined(__glibcxx_want_ranges_contains) */
|
||||
#undef __glibcxx_want_ranges_contains
|
||||
|
||||
// from version.def line 1554
|
||||
// from version.def line 1563
|
||||
#if !defined(__cpp_lib_ranges_iota)
|
||||
# if (__cplusplus >= 202100L)
|
||||
# define __glibcxx_ranges_iota 202202L
|
||||
@ -1905,7 +1916,7 @@
|
||||
#endif /* !defined(__cpp_lib_ranges_iota) && defined(__glibcxx_want_ranges_iota) */
|
||||
#undef __glibcxx_want_ranges_iota
|
||||
|
||||
// from version.def line 1562
|
||||
// from version.def line 1571
|
||||
#if !defined(__cpp_lib_ranges_find_last)
|
||||
# if (__cplusplus >= 202100L)
|
||||
# define __glibcxx_ranges_find_last 202207L
|
||||
@ -1916,7 +1927,7 @@
|
||||
#endif /* !defined(__cpp_lib_ranges_find_last) && defined(__glibcxx_want_ranges_find_last) */
|
||||
#undef __glibcxx_want_ranges_find_last
|
||||
|
||||
// from version.def line 1570
|
||||
// from version.def line 1579
|
||||
#if !defined(__cpp_lib_constexpr_bitset)
|
||||
# if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED && (__cpp_constexpr_dynamic_alloc)
|
||||
# define __glibcxx_constexpr_bitset 202202L
|
||||
@ -1927,7 +1938,7 @@
|
||||
#endif /* !defined(__cpp_lib_constexpr_bitset) && defined(__glibcxx_want_constexpr_bitset) */
|
||||
#undef __glibcxx_want_constexpr_bitset
|
||||
|
||||
// from version.def line 1580
|
||||
// from version.def line 1589
|
||||
#if !defined(__cpp_lib_stdatomic_h)
|
||||
# if (__cplusplus >= 202100L)
|
||||
# define __glibcxx_stdatomic_h 202011L
|
||||
@ -1938,7 +1949,7 @@
|
||||
#endif /* !defined(__cpp_lib_stdatomic_h) && defined(__glibcxx_want_stdatomic_h) */
|
||||
#undef __glibcxx_want_stdatomic_h
|
||||
|
||||
// from version.def line 1588
|
||||
// from version.def line 1597
|
||||
#if !defined(__cpp_lib_adaptor_iterator_pair_constructor)
|
||||
# if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED
|
||||
# define __glibcxx_adaptor_iterator_pair_constructor 202106L
|
||||
@ -1949,7 +1960,7 @@
|
||||
#endif /* !defined(__cpp_lib_adaptor_iterator_pair_constructor) && defined(__glibcxx_want_adaptor_iterator_pair_constructor) */
|
||||
#undef __glibcxx_want_adaptor_iterator_pair_constructor
|
||||
|
||||
// from version.def line 1597
|
||||
// from version.def line 1606
|
||||
#if !defined(__cpp_lib_formatters)
|
||||
# if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED
|
||||
# define __glibcxx_formatters 202302L
|
||||
@ -1960,7 +1971,7 @@
|
||||
#endif /* !defined(__cpp_lib_formatters) && defined(__glibcxx_want_formatters) */
|
||||
#undef __glibcxx_want_formatters
|
||||
|
||||
// from version.def line 1606
|
||||
// from version.def line 1615
|
||||
#if !defined(__cpp_lib_forward_like)
|
||||
# if (__cplusplus >= 202100L)
|
||||
# define __glibcxx_forward_like 202207L
|
||||
@ -1971,7 +1982,7 @@
|
||||
#endif /* !defined(__cpp_lib_forward_like) && defined(__glibcxx_want_forward_like) */
|
||||
#undef __glibcxx_want_forward_like
|
||||
|
||||
// from version.def line 1614
|
||||
// from version.def line 1623
|
||||
#if !defined(__cpp_lib_ios_noreplace)
|
||||
# if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED
|
||||
# define __glibcxx_ios_noreplace 202207L
|
||||
@ -1982,7 +1993,7 @@
|
||||
#endif /* !defined(__cpp_lib_ios_noreplace) && defined(__glibcxx_want_ios_noreplace) */
|
||||
#undef __glibcxx_want_ios_noreplace
|
||||
|
||||
// from version.def line 1623
|
||||
// from version.def line 1632
|
||||
#if !defined(__cpp_lib_move_only_function)
|
||||
# if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED
|
||||
# define __glibcxx_move_only_function 202110L
|
||||
@ -1993,7 +2004,7 @@
|
||||
#endif /* !defined(__cpp_lib_move_only_function) && defined(__glibcxx_want_move_only_function) */
|
||||
#undef __glibcxx_want_move_only_function
|
||||
|
||||
// from version.def line 1632
|
||||
// from version.def line 1641
|
||||
#if !defined(__cpp_lib_out_ptr)
|
||||
# if (__cplusplus >= 202100L)
|
||||
# define __glibcxx_out_ptr 202311L
|
||||
@ -2004,7 +2015,7 @@
|
||||
#endif /* !defined(__cpp_lib_out_ptr) && defined(__glibcxx_want_out_ptr) */
|
||||
#undef __glibcxx_want_out_ptr
|
||||
|
||||
// from version.def line 1640
|
||||
// from version.def line 1649
|
||||
#if !defined(__cpp_lib_spanstream)
|
||||
# if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED && (__glibcxx_span)
|
||||
# define __glibcxx_spanstream 202106L
|
||||
@ -2015,7 +2026,7 @@
|
||||
#endif /* !defined(__cpp_lib_spanstream) && defined(__glibcxx_want_spanstream) */
|
||||
#undef __glibcxx_want_spanstream
|
||||
|
||||
// from version.def line 1650
|
||||
// from version.def line 1659
|
||||
#if !defined(__cpp_lib_stacktrace)
|
||||
# if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED && (_GLIBCXX_HAVE_STACKTRACE)
|
||||
# define __glibcxx_stacktrace 202011L
|
||||
@ -2026,7 +2037,7 @@
|
||||
#endif /* !defined(__cpp_lib_stacktrace) && defined(__glibcxx_want_stacktrace) */
|
||||
#undef __glibcxx_want_stacktrace
|
||||
|
||||
// from version.def line 1660
|
||||
// from version.def line 1669
|
||||
#if !defined(__cpp_lib_string_contains)
|
||||
# if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED
|
||||
# define __glibcxx_string_contains 202011L
|
||||
@ -2037,7 +2048,7 @@
|
||||
#endif /* !defined(__cpp_lib_string_contains) && defined(__glibcxx_want_string_contains) */
|
||||
#undef __glibcxx_want_string_contains
|
||||
|
||||
// from version.def line 1669
|
||||
// from version.def line 1678
|
||||
#if !defined(__cpp_lib_string_resize_and_overwrite)
|
||||
# if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED
|
||||
# define __glibcxx_string_resize_and_overwrite 202110L
|
||||
@ -2048,7 +2059,7 @@
|
||||
#endif /* !defined(__cpp_lib_string_resize_and_overwrite) && defined(__glibcxx_want_string_resize_and_overwrite) */
|
||||
#undef __glibcxx_want_string_resize_and_overwrite
|
||||
|
||||
// from version.def line 1678
|
||||
// from version.def line 1687
|
||||
#if !defined(__cpp_lib_fstream_native_handle)
|
||||
# if (__cplusplus > 202302L) && _GLIBCXX_HOSTED
|
||||
# define __glibcxx_fstream_native_handle 202306L
|
||||
@ -2059,7 +2070,7 @@
|
||||
#endif /* !defined(__cpp_lib_fstream_native_handle) && defined(__glibcxx_want_fstream_native_handle) */
|
||||
#undef __glibcxx_want_fstream_native_handle
|
||||
|
||||
// from version.def line 1687
|
||||
// from version.def line 1696
|
||||
#if !defined(__cpp_lib_ratio)
|
||||
# if (__cplusplus > 202302L)
|
||||
# define __glibcxx_ratio 202306L
|
||||
@ -2070,7 +2081,7 @@
|
||||
#endif /* !defined(__cpp_lib_ratio) && defined(__glibcxx_want_ratio) */
|
||||
#undef __glibcxx_want_ratio
|
||||
|
||||
// from version.def line 1695
|
||||
// from version.def line 1704
|
||||
#if !defined(__cpp_lib_saturation_arithmetic)
|
||||
# if (__cplusplus > 202302L)
|
||||
# define __glibcxx_saturation_arithmetic 202311L
|
||||
@ -2081,7 +2092,7 @@
|
||||
#endif /* !defined(__cpp_lib_saturation_arithmetic) && defined(__glibcxx_want_saturation_arithmetic) */
|
||||
#undef __glibcxx_want_saturation_arithmetic
|
||||
|
||||
// from version.def line 1703
|
||||
// from version.def line 1712
|
||||
#if !defined(__cpp_lib_to_string)
|
||||
# if (__cplusplus > 202302L) && _GLIBCXX_HOSTED && (__glibcxx_to_chars)
|
||||
# define __glibcxx_to_string 202306L
|
||||
|
@ -50,7 +50,9 @@ using std::strpbrk;
|
||||
using std::strrchr;
|
||||
using std::strspn;
|
||||
using std::strstr;
|
||||
#if _GLIBCXX_HOSTED || __cplusplus <= 202302L
|
||||
using std::strtok;
|
||||
#endif
|
||||
using std::memset;
|
||||
using std::strerror;
|
||||
using std::strlen;
|
||||
|
@ -38,7 +38,8 @@
|
||||
|
||||
#pragma GCC system_header
|
||||
|
||||
#include <bits/c++config.h>
|
||||
#define __glibcxx_want_freestanding_cstring
|
||||
#include <bits/version.h>
|
||||
#include <string.h>
|
||||
|
||||
#ifndef _GLIBCXX_CSTRING
|
||||
@ -90,7 +91,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||
using ::strncmp;
|
||||
using ::strncpy;
|
||||
using ::strspn;
|
||||
#if _GLIBCXX_HOSTED || __cplusplus <= 202302L
|
||||
using ::strtok;
|
||||
#endif
|
||||
using ::strxfrm;
|
||||
using ::strchr;
|
||||
using ::strpbrk;
|
||||
|
19
libstdc++-v3/testsuite/21_strings/headers/cstring/version.cc
Normal file
19
libstdc++-v3/testsuite/21_strings/headers/cstring/version.cc
Normal file
@ -0,0 +1,19 @@
|
||||
// { dg-do compile { target c++26 } }
|
||||
// { dg-add-options no_pch }
|
||||
|
||||
#include <cstring>
|
||||
|
||||
#ifndef __cpp_lib_freestanding_cstring
|
||||
# error "Feature test macro for freestanding <cstring> is missing in <cstring>"
|
||||
#elif __cpp_lib_freestanding_cstring < 202311L
|
||||
# error "Feature test macro for freestanding <cstring> has wrong value in <cstring>"
|
||||
#endif
|
||||
|
||||
#undef __cpp_lib_freestanding_cstring
|
||||
#include <version>
|
||||
|
||||
#ifndef __cpp_lib_freestanding_cstring
|
||||
# error "Feature test macro for freestanding <cstring> is missing in <version>"
|
||||
#elif __cpp_lib_freestanding_cstring < 202311L
|
||||
# error "Feature test macro for freestanding <cstring> has wrong value in <version>"
|
||||
#endif
|
Loading…
Reference in New Issue
Block a user