aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3/include/bits/version.def
diff options
context:
space:
mode:
Diffstat (limited to 'libstdc++-v3/include/bits/version.def')
-rw-r--r--libstdc++-v3/include/bits/version.def355
1 files changed, 328 insertions, 27 deletions
diff --git a/libstdc++-v3/include/bits/version.def b/libstdc++-v3/include/bits/version.def
index 1468c04..5c010a4 100644
--- a/libstdc++-v3/include/bits/version.def
+++ b/libstdc++-v3/include/bits/version.def
@@ -30,6 +30,7 @@ AutoGen Definitions version.tpl;
// ftms = {
// name = FTM NAME;
// [stdname = FTM STANDARD MACRO NAME;]
+// [no_stdname = true;]
// values = {
// v = VALUE FOR FTM IF MATCHING;
// [extra_cond = STRING;]
@@ -56,7 +57,8 @@ AutoGen Definitions version.tpl;
// stdname configures the name of the *standard* macro emitted, i.e. it
// replaces only the __cpp_lib_ macro in the emitted definition. Defaults to
-// __cpp_lib_${name}
+// __cpp_lib_${name}. If no_stdname exists (with any value), the stdname
+// define is not emitted.
// N.B This list needs to be in topological sort order, as later entries in
// this list can and do use the earlier entries.
@@ -392,6 +394,14 @@ ftms = {
};
ftms = {
+ name = constant_wrapper;
+ values = {
+ v = 202506;
+ cxxmin = 26;
+ };
+};
+
+ftms = {
name = has_unique_object_representations;
values = {
v = 201606;
@@ -462,6 +472,10 @@ ftms = {
ftms = {
name = not_fn;
values = {
+ v = 202306;
+ cxxmin = 26;
+ };
+ values = {
v = 201603;
cxxmin = 17;
};
@@ -580,6 +594,12 @@ ftms = {
ftms = {
name = chrono;
values = {
+ v = 202306;
+ cxxmin = 26;
+ hosted = yes;
+ cxx11abi = yes;
+ };
+ values = {
v = 201907;
cxxmin = 20;
hosted = yes;
@@ -593,6 +613,21 @@ ftms = {
};
ftms = {
+ // Unofficial macro for chrono features supported for old string ABI.
+ name = chrono_cxx20;
+ values = {
+ v = 202306;
+ cxxmin = 26;
+ no_stdname = yes;
+ };
+ values = {
+ v = 201800;
+ cxxmin = 20;
+ no_stdname = yes;
+ };
+};
+
+ftms = {
name = execution;
values = {
v = 201902; // FIXME: should be 201603L
@@ -647,7 +682,7 @@ ftms = {
};
values = {
v = 1;
- /* For when there's no gthread. */
+ // For when there is no gthread.
cxxmin = 17;
hosted = yes;
gthread = no;
@@ -677,8 +712,6 @@ ftms = {
values = {
v = 201703;
cxxmin = 17;
- hosted = yes;
- gthread = yes;
};
};
@@ -733,6 +766,14 @@ ftms = {
};
ftms = {
+ name = is_sufficiently_aligned;
+ values = {
+ v = 202411;
+ cxxmin = 26;
+ };
+};
+
+ftms = {
name = atomic_flag_test;
values = {
v = 201907;
@@ -760,6 +801,10 @@ ftms = {
ftms = {
name = atomic_ref;
values = {
+ v = 202411;
+ cxxmin = 26;
+ };
+ values = {
v = 201806;
cxxmin = 20;
};
@@ -777,6 +822,10 @@ ftms = {
ftms = {
name = bind_front;
values = {
+ v = 202306;
+ cxxmin = 26;
+ };
+ values = {
v = 201907;
cxxmin = 20;
};
@@ -785,6 +834,10 @@ ftms = {
ftms = {
name = bind_back;
values = {
+ v = 202306;
+ cxxmin = 26;
+ };
+ values = {
v = 202202;
cxxmin = 23;
extra_cond = "__cpp_explicit_this_parameter";
@@ -826,8 +879,12 @@ ftms = {
ftms = {
name = concepts;
+ // 201806 P0898R3 Standard Library Concepts
+ // 201907 P1754R1 Rename concepts to standard_case for C++20
+ // 202002 P1964R2 Wording for boolean-testable
+ // 202207 P2404R3 Move-only types for equality_comparable_with, etc.
values = {
- v = 202002;
+ v = 202207;
cxxmin = 20;
extra_cond = "__cpp_concepts >= 201907L";
};
@@ -836,12 +893,17 @@ ftms = {
// Moved down here (after concepts) by topological sort.
ftms = {
name = optional;
- values = {
+ values = { // optional<T&>
+ v = 202506;
+ cxxmin = 26;
+ extra_cond = "__glibcxx_concepts";
+ };
+ values = { // monadic operations
v = 202110;
cxxmin = 23;
extra_cond = "__glibcxx_concepts";
};
- values = {
+ values = { // full constexpr support
v = 202106;
cxxmin = 20;
};
@@ -852,6 +914,14 @@ ftms = {
};
ftms = {
+ name = optional_range_support;
+ values = {
+ v = 202406;
+ cxxmin = 26;
+ };
+};
+
+ftms = {
name = destroying_delete;
values = {
v = 201806;
@@ -957,6 +1027,7 @@ ftms = {
ftms = {
name = make_obj_using_allocator;
+ no_stdname = true;
values = {
// Not specified by C++20, used internally
v = 201811;
@@ -997,6 +1068,47 @@ ftms = {
};
ftms = {
+ name = mdspan;
+ values = {
+ v = 202406;
+ cxxmin = 26;
+ };
+ values = {
+ v = 202207;
+ cxxmin = 23;
+ };
+};
+
+ftms = {
+ name = aligned_accessor;
+ values = {
+ v = 202411;
+ cxxmin = 26;
+ extra_cond = "__glibcxx_assume_aligned "
+ "&& __glibcxx_is_sufficiently_aligned";
+ };
+};
+
+// Purely internal macro padded layouts.
+ftms = {
+ name = padded_layouts;
+ no_stdname = true; // internal
+ values = {
+ v = 202403;
+ cxxmin = 26;
+ };
+};
+
+ftms = {
+ name = submdspan;
+ values = {
+ v = 202411;
+ cxxmin = 26;
+ extra_cond = "__glibcxx_constant_wrapper >= 202506L";
+ };
+};
+
+ftms = {
name = ssize;
values = {
v = 201902;
@@ -1074,6 +1186,10 @@ ftms = {
ftms = {
name = shift;
values = {
+ v = 202202;
+ cxxmin = 23;
+ };
+ values = {
v = 201806;
cxxmin = 20;
};
@@ -1271,7 +1387,12 @@ ftms = {
ftms = {
name = constrained_equality;
values = {
- v = 202411; // FIXME: 202403 for P2944R3, ??? for P3379R0
+ v = 202411;
+ cxxmin = 23;
+ extra_cond = "__glibcxx_three_way_comparison";
+ };
+ values = {
+ v = 202403;
cxxmin = 20;
extra_cond = "__glibcxx_three_way_comparison";
};
@@ -1348,7 +1469,7 @@ ftms = {
v = 201907;
cxxmin = 20;
hosted = yes;
- extra_cond = "__glibcxx_atomic_wait || _GLIBCXX_HAVE_POSIX_SEMAPHORE";
+ extra_cond = "__glibcxx_atomic_wait";
};
};
@@ -1404,18 +1525,17 @@ ftms = {
};
};
-// ftms = {
- // name = format_ranges;
+ftms = {
+ name = format_ranges;
// 202207 P2286R8 Formatting Ranges
// 202207 P2585R1 Improving default container formatting
// LWG3750 Too many papers bump __cpp_lib_format
- // TODO: #define __cpp_lib_format_ranges 202207L
- // values = {
- // v = 202207;
- // cxxmin = 23;
- // hosted = yes;
- // };
-// };
+ values = {
+ v = 202207;
+ cxxmin = 23;
+ hosted = yes;
+ };
+};
ftms = {
name = freestanding_algorithm;
@@ -1508,14 +1628,14 @@ ftms = {
};
};
-//ftms = {
-// name = containers_ranges;
-// values = {
-// v = 202202;
-// cxxmin = 23;
-// hosted = yes;
-// };
-//};
+ftms = {
+ name = containers_ranges;
+ values = {
+ v = 202202;
+ cxxmin = 23;
+ hosted = yes;
+ };
+};
ftms = {
name = ranges_to_container;
@@ -1647,6 +1767,22 @@ ftms = {
};
ftms = {
+ name = ranges_starts_ends_with;
+ values = {
+ v = 202106;
+ cxxmin = 23;
+ };
+};
+
+ftms = {
+ name = ranges_indices;
+ values = {
+ v = 202506;
+ cxxmin = 26;
+ };
+};
+
+ftms = {
name = constexpr_bitset;
values = {
v = 202202;
@@ -1690,6 +1826,22 @@ ftms = {
};
ftms = {
+ name = common_reference;
+ values = {
+ v = 202302;
+ cxxmin = 20; // We treat P2655R3 as a DR against C++20.
+ };
+};
+
+ftms = {
+ name = common_reference_wrapper;
+ values = {
+ v = 202302;
+ cxxmin = 20; // We treat P2655R3 as a DR against C++20.
+ };
+};
+
+ftms = {
name = formatters;
values = {
v = 202302;
@@ -1734,6 +1886,23 @@ ftms = {
};
ftms = {
+ name = copyable_function;
+ values = {
+ v = 202306;
+ cxxmin = 26;
+ hosted = yes;
+ };
+};
+
+ftms = {
+ name = function_ref;
+ values = {
+ v = 202306;
+ cxxmin = 26;
+ };
+};
+
+ftms = {
name = out_ptr;
values = {
v = 202311;
@@ -1744,7 +1913,7 @@ ftms = {
ftms = {
name = print;
values = {
- v = 202211;
+ v = 202406;
cxxmin = 23;
hosted = yes;
};
@@ -1771,6 +1940,14 @@ ftms = {
};
ftms = {
+ name = start_lifetime_as;
+ values = {
+ v = 202207;
+ cxxmin = 23;
+ };
+};
+
+ftms = {
name = string_contains;
values = {
v = 202011;
@@ -1789,6 +1966,14 @@ ftms = {
};
ftms = {
+ name = string_subview;
+ values = {
+ v = 202506;
+ cxxmin = 26;
+ };
+};
+
+ftms = {
name = to_underlying;
values = {
v = 202102;
@@ -1818,6 +2003,15 @@ ftms = {
};
ftms = {
+ name = observable_checkpoint;
+ values = {
+ v = 202506;
+ cxxmin = 26;
+ extra_cond = "__has_builtin(__builtin_observable_checkpoint)";
+ };
+};
+
+ftms = {
name = algorithm_default_value_type;
values = {
v = 202403;
@@ -1835,6 +2029,14 @@ ftms = {
};
ftms = {
+ name = debugging;
+ values = {
+ v = 202403;
+ cxxmin = 26;
+ };
+};
+
+ftms = {
name = fstream_native_handle;
values = {
v = 202306;
@@ -1938,6 +2140,105 @@ ftms = {
};
};
+ftms = {
+ name = inplace_vector;
+ values = {
+ v = 202406;
+ cxxmin = 26;
+ };
+};
+
+ftms = {
+ name = indirect;
+ values = {
+ v = 202502;
+ cxxmin = 26;
+ hosted = yes;
+ };
+};
+
+ftms = {
+ name = polymorphic;
+ values = {
+ v = 202502;
+ cxxmin = 26;
+ hosted = yes;
+ };
+};
+
+ftms = {
+ name = smart_ptr_owner_equality;
+ values = {
+ v = 202306;
+ cxxmin = 26;
+ hosted = yes;
+ };
+};
+
+ftms = {
+ name = sstream_from_string_view;
+ values = {
+ v = 202306;
+ cxxmin = 26;
+ hosted = yes;
+ };
+};
+
+ftms = {
+ name = type_order;
+ values = {
+ v = 202506;
+ cxxmin = 26;
+ extra_cond = "__has_builtin(__builtin_type_order) "
+ "&& __cpp_lib_three_way_comparison >= 201907L";
+ };
+};
+
+ftms = {
+ name = exception_ptr_cast;
+ values = {
+ v = 202506;
+ cxxmin = 26;
+ };
+};
+
+ftms = {
+ name = bitset; // ...construct from string_view
+ values = {
+ v = 202306;
+ cxxmin = 26;
+ };
+};
+
+ftms = {
+ name = constexpr_exceptions;
+ // TODO Remove when PR121114 is resolved
+ no_stdname = true;
+ values = {
+ v = 1; // TODO 202411;
+ cxxmin = 26;
+ extra_cond = "__cpp_constexpr_exceptions >= 202411L";
+ };
+};
+
+ftms = {
+ name = philox_engine;
+ values = {
+ v = 202406;
+ cxxmin = 26;
+ extra_cond = "__SIZEOF_INT128__";
+ };
+};
+
+ftms = {
+ name = is_implicit_lifetime;
+ values = {
+ v = 202302;
+ cxxmin = 23;
+ extra_cond = "__has_builtin(__builtin_is_implicit_lifetime)";
+ };
+};
+
// Standard test specifications.
stds[97] = ">= 199711L";
stds[03] = ">= 199711L";