Skip to content

Commit 9124aa5

Browse files
authored
Merge 2019-11 LWG Motion 19
P1902R1 Missing feature-test macros 2017-2019
2 parents 190577a + e6428e5 commit 9124aa5

File tree

3 files changed

+53
-10
lines changed

3 files changed

+53
-10
lines changed

papers/nxxxx.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,8 +77,30 @@ the exposition-only concept *`forwarding-range`*,
7777
which was removed by this paper.
7878
These uses have been replaced with `safe_range`.
7979

80+
### LWG motion 19
81+
82+
Did not add the macro `__cpp_lib_atomic_ref`.
83+
This macro already existed with the specified value.
84+
85+
Did not change the value of the `__cpp_lib_chrono` macro.
86+
The requested new value of this macro (`201803L`)
87+
is actually lower than the current value
88+
(`201907L`, not `201611L` as listed in [P1902R1](http://wg21.link/p1902r1)).
89+
The chair of SG10 has confirmed that the request to change this macro's value
90+
is an error. The pre-existing, higher value is retained.
91+
92+
Did not change the value of the `__cpp_lib_ranges` macro.
93+
The requested new value of this macro (`201907L`)
94+
is lower than the value `201911L` introduced by
95+
[P1716R3](http://wg21.link/po1716r3) (LWG motion 6).
96+
8097
## Feature test macros
8198

99+
The following feature test macro changes were made
100+
after consultation with SG10,
101+
in addition to the feature test macro changes
102+
requested by motions:
103+
82104
The feature test macro `__cpp_nontype_template_parameter_class` has been removed
83105
to indicate that the feature added by [P0732R2](http://wg21.link/p0732r2)
84106
is no longer present in the same form.

source/preprocessor.tex

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1643,25 +1643,29 @@
16431643
\defnxname{cpp_binary_literals} & \tcode{201304L} \\ \rowsep
16441644
\defnxname{cpp_capture_star_this} & \tcode{201603L} \\ \rowsep
16451645
\defnxname{cpp_char8_t} & \tcode{201811L} \\ \rowsep
1646+
\defnxname{cpp_concepts} & \tcode{201907L} \\ \rowsep
16461647
\defnxname{cpp_conditional_explicit} & \tcode{201806L} \\ \rowsep
16471648
\defnxname{cpp_constexpr} & \tcode{201907L} \\ \rowsep
16481649
\defnxname{cpp_constexpr_dynamic_alloc} & \tcode{201907L} \\ \rowsep
1650+
\defnxname{cpp_constexpr_in_decltype} & \tcode{201711L} \\ \rowsep
1651+
\defnxname{cpp_consteval} & \tcode{201811L} \\ \rowsep
16491652
\defnxname{cpp_constinit} & \tcode{201907L} \\ \rowsep
16501653
\defnxname{cpp_coroutines} & \tcode{201902L} \\ \rowsep
16511654
\defnxname{cpp_decltype} & \tcode{200707L} \\ \rowsep
16521655
\defnxname{cpp_decltype_auto} & \tcode{201304L} \\ \rowsep
16531656
\defnxname{cpp_deduction_guides} & \tcode{201907L} \\ \rowsep
16541657
\defnxname{cpp_delegating_constructors} & \tcode{200604L} \\ \rowsep
1658+
\defnxname{cpp_designated_initializers} & \tcode{201707L} \\ \rowsep
16551659
\defnxname{cpp_enumerator_attributes} & \tcode{201411L} \\ \rowsep
16561660
\defnxname{cpp_fold_expressions} & \tcode{201603L} \\ \rowsep
1657-
\defnxname{cpp_generic_lambdas} & \tcode{201304L} \\ \rowsep
1661+
\defnxname{cpp_generic_lambdas} & \tcode{201707L} \\ \rowsep
16581662
\defnxname{cpp_guaranteed_copy_elision} & \tcode{201606L} \\ \rowsep
16591663
\defnxname{cpp_hex_float} & \tcode{201603L} \\ \rowsep
16601664
\defnxname{cpp_if_constexpr} & \tcode{201606L} \\ \rowsep
16611665
\defnxname{cpp_impl_destroying_delete} & \tcode{201806L} \\ \rowsep
16621666
\defnxname{cpp_impl_three_way_comparison} & \tcode{201907L} \\ \rowsep
16631667
\defnxname{cpp_inheriting_constructors} & \tcode{201511L} \\ \rowsep
1664-
\defnxname{cpp_init_captures} & \tcode{201304L} \\ \rowsep
1668+
\defnxname{cpp_init_captures} & \tcode{201803L} \\ \rowsep
16651669
\defnxname{cpp_initializer_lists} & \tcode{200806L} \\ \rowsep
16661670
\defnxname{cpp_inline_variables} & \tcode{201606L} \\ \rowsep
16671671
\defnxname{cpp_lambdas} & \tcode{200907L} \\ \rowsep

source/support.tex

Lines changed: 25 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -554,12 +554,15 @@
554554
// \libheader{map}, \libheader{set}, \libheader{unordered_map}, \libheader{unordered_set}
555555
#define @\defnlibxname{cpp_lib_any}@ 201606L // also in \libheader{any}
556556
#define @\defnlibxname{cpp_lib_apply}@ 201603L // also in \libheader{tuple}
557-
#define @\defnlibxname{cpp_lib_array_constexpr}@ 201803L // also in \libheader{iterator}, \libheader{array}
557+
#define @\defnlibxname{cpp_lib_array_constexpr}@ 201811L // also in \libheader{iterator}, \libheader{array}
558558
#define @\defnlibxname{cpp_lib_as_const}@ 201510L // also in \libheader{utility}
559+
#define @\defnlibxname{cpp_lib_assume_aligned}@ 201811L // also in \libheader{memory}
559560
#define @\defnlibxname{cpp_lib_atomic_flag_test}@ 201907L // also in \libheader{atomic}
561+
#define @\defnlibxname{cpp_lib_atomic_float}@ 201711L // also in \libheader{atomic}
560562
#define @\defnlibxname{cpp_lib_atomic_is_always_lock_free}@ 201603L // also in \libheader{atomic}
561563
#define @\defnlibxname{cpp_lib_atomic_lock_free_type_aliases}@ 201907L // also in \libheader{atomic}
562564
#define @\defnlibxname{cpp_lib_atomic_ref}@ 201806L // also in \libheader{atomic}
565+
#define @\defnlibxname{cpp_lib_atomic_shared_ptr}@ 201711L // also in \libheader{memory}
563566
#define @\defnlibxname{cpp_lib_atomic_wait}@ 201907L // also in \libheader{atomic}
564567
#define @\defnlibxname{cpp_lib_barrier}@ 201907L // also in \libheader{barrier}
565568
#define @\defnlibxname{cpp_lib_bit_cast}@ 201806L // also in \libheader{bit}
@@ -575,13 +578,16 @@
575578
#define @\defnlibxname{cpp_lib_chrono_udls}@ 201304L // also in \libheader{chrono}
576579
#define @\defnlibxname{cpp_lib_clamp}@ 201603L // also in \libheader{algorithm}
577580
#define @\defnlibxname{cpp_lib_complex_udls}@ 201309L // also in \libheader{complex}
578-
#define @\defnlibxname{cpp_lib_concepts}@ 201806L // also in \libheader{concepts}
579-
#define @\defnlibxname{cpp_lib_constexpr}@ 201811L
580-
// also in any C++ library header from \tref{headers.cpp} or any C++ header for C library facilities from \tref{headers.cpp.c}
581+
#define @\defnlibxname{cpp_lib_concepts}@ 201907L // also in \libheader{concepts}
581582
#define @\defnlibxname{cpp_lib_constexpr_algorithms}@ 201806L // also in \libheader{algorithm}
582583
#define @\defnlibxname{cpp_lib_constexpr_dynamic_alloc}@ 201907L // also in \libheader{memory}
583-
#define @\defnlibxname{cpp_lib_constexpr_invoke}@ 201907L // also in \libheader{functional}
584+
#define @\defnlibxname{cpp_lib_constexpr_functional}@ 201907L // also in \libheader{functional}
585+
#define @\defnlibxname{cpp_lib_constexpr_iterator}@ 201811L // also in \libheader{iterator}
586+
#define @\defnlibxname{cpp_lib_constexpr_memory}@ 201811L // also in \libheader{memory}
584587
#define @\defnlibxname{cpp_lib_constexpr_string}@ 201907L // also in \libheader{string}
588+
#define @\defnlibxname{cpp_lib_constexpr_string_view}@ 201811L // also in \libheader{string_view}
589+
#define @\defnlibxname{cpp_lib_constexpr_tuple}@ 201811L // also in \libheader{tuple}
590+
#define @\defnlibxname{cpp_lib_constexpr_utility}@ 201811L // also in \libheader{utility}
585591
#define @\defnlibxname{cpp_lib_constexpr_vector}@ 201907L // also in \libheader{vector}
586592
#define @\defnlibxname{cpp_lib_destroying_delete}@ 201806L // also in \libheader{new}
587593
#define @\defnlibxname{cpp_lib_enable_shared_from_this}@ 201603L // also in \libheader{memory}
@@ -602,6 +608,7 @@
602608
#define @\defnlibxname{cpp_lib_hypot}@ 201603L // also in \libheader{cmath}
603609
#define @\defnlibxname{cpp_lib_incomplete_container_elements}@ 201505L
604610
// also in \libheader{forward_list}, \libheader{list}, \libheader{vector}
611+
#define @\defnlibxname{cpp_lib_int_pow2}@ 201806L // also in \libheader{bit}
605612
#define @\defnlibxname{cpp_lib_integer_sequence}@ 201304L // also in \libheader{utility}
606613
#define @\defnlibxname{cpp_lib_integral_constant_callable}@ 201304L // also in \libheader{type_traits}
607614
#define @\defnlibxname{cpp_lib_interpolate}@ 201902L // also in \libheader{cmath}, \libheader{numeric}
@@ -632,37 +639,47 @@
632639
// also in \libheader{array}, \libheader{deque}, \libheader{forward_list}, \libheader{iterator}, \libheader{list}, \libheader{map}, \libheader{regex}, \libheader{set}, \libheader{string},
633640
// \libheader{unordered_map}, \libheader{unordered_set}, \libheader{vector}
634641
#define @\defnlibxname{cpp_lib_not_fn}@ 201603L // also in \libheader{functional}
642+
#define @\defnlibxname{cpp_lib_nothrow_convertible}@ 201806L // also in \libheader{type_traits}
635643
#define @\defnlibxname{cpp_lib_null_iterators}@ 201304L // also in \libheader{iterator}
636644
#define @\defnlibxname{cpp_lib_optional}@ 201606L // also in \libheader{optional}
637645
#define @\defnlibxname{cpp_lib_parallel_algorithm}@ 201603L // also in \libheader{algorithm}, \libheader{numeric}
646+
#define @\defnlibxname{cpp_lib_polymorphic_allocator}@ 201902L // also in \libheader{memory}
638647
#define @\defnlibxname{cpp_lib_quoted_string_io}@ 201304L // also in \libheader{iomanip}
639648
#define @\defnlibxname{cpp_lib_ranges}@ 201911L
640649
// also in \libheader{algorithm}, \libheader{functional}, \libheader{iterator}, \libheader{memory}, \libheader{ranges}
641650
#define @\defnlibxname{cpp_lib_raw_memory_algorithms}@ 201606L // also in \libheader{memory}
651+
#define @\defnlibxname{cpp_lib_remove_cvref}@ 201711L // also in \libheader{type_traits}
642652
#define @\defnlibxname{cpp_lib_result_of_sfinae}@ 201210L // also in \libheader{functional}, \libheader{type_traits}
643653
#define @\defnlibxname{cpp_lib_robust_nonmodifying_seq_ops}@ 201304L // also in \libheader{algorithm}
644654
#define @\defnlibxname{cpp_lib_sample}@ 201603L // also in \libheader{algorithm}
645655
#define @\defnlibxname{cpp_lib_scoped_lock}@ 201703L // also in \libheader{mutex}
646656
#define @\defnlibxname{cpp_lib_semaphore}@ 201907L // also in \libheader{semaphore}
647657
#define @\defnlibxname{cpp_lib_shared_mutex}@ 201505L // also in \libheader{shared_mutex}
648-
#define @\defnlibxname{cpp_lib_shared_ptr_arrays}@ 201611L // also in \libheader{memory}
658+
#define @\defnlibxname{cpp_lib_shared_ptr_arrays}@ 201707L // also in \libheader{memory}
649659
#define @\defnlibxname{cpp_lib_shared_ptr_weak_type}@ 201606L // also in \libheader{memory}
650660
#define @\defnlibxname{cpp_lib_shared_timed_mutex}@ 201402L // also in \libheader{shared_mutex}
661+
#define @\defnlibxname{cpp_lib_shift}@ 201806L // also in \libheader{algorithm}
662+
#define @\defnlibxname{cpp_lib_smart_ptr_default_init}@ 201811L // also in \libheader{memory}
651663
#define @\defnlibxname{cpp_lib_source_location}@ 201907L // also in \libheader{source_location}
652-
#define @\defnlibxname{cpp_lib_spaceship}@ 201907L // also in \libheader{compare}
653664
#define @\defnlibxname{cpp_lib_span}@ 201902L // also in \libheader{span}
665+
#define @\defnlibxname{cpp_lib_ssize}@ 201902L // also in \libheader{iterator}
666+
#define @\defnlibxname{cpp_lib_starts_ends_with}@ 201711L // also in \libheader{string}, \libheader{string_view}
654667
#define @\defnlibxname{cpp_lib_string_udls}@ 201304L // also in \libheader{string}
655668
#define @\defnlibxname{cpp_lib_string_view}@ 201803L // also in \libheader{string}, \libheader{string_view}
656-
#define @\defnlibxname{cpp_lib_three_way_comparison}@ 201711L // also in \libheader{compare}
669+
#define @\defnlibxname{cpp_lib_syncbuf}@ 201803L // also in \libheader{syncstream}
670+
#define @\defnlibxname{cpp_lib_three_way_comparison}@ 201907L // also in \libheader{compare}
671+
#define @\defnlibxname{cpp_lib_to_address}@ 201711L // also in \libheader{memory}
657672
#define @\defnlibxname{cpp_lib_to_array}@ 201907L // also in \libheader{array}
658673
#define @\defnlibxname{cpp_lib_to_chars}@ 201611L // also in \libheader{charconv}
659674
#define @\defnlibxname{cpp_lib_transformation_trait_aliases}@ 201304L // also in \libheader{type_traits}
660675
#define @\defnlibxname{cpp_lib_transparent_operators}@ 201510L // also in \libheader{memory}, \libheader{functional}
661676
#define @\defnlibxname{cpp_lib_tuple_element_t}@ 201402L // also in \libheader{tuple}
662677
#define @\defnlibxname{cpp_lib_tuples_by_type}@ 201304L // also in \libheader{utility}, \libheader{tuple}
678+
#define @\defnlibxname{cpp_lib_type_identity}@ 201806L // also in \libheader{type_traits}
663679
#define @\defnlibxname{cpp_lib_type_trait_variable_templates}@ 201510L // also in \libheader{type_traits}
664680
#define @\defnlibxname{cpp_lib_uncaught_exceptions}@ 201411L // also in \libheader{exception}
665681
#define @\defnlibxname{cpp_lib_unordered_map_try_emplace}@ 201411L // also in \libheader{unordered_map}
682+
#define @\defnlibxname{cpp_lib_unwrap_ref}@ 201811L // also in \libheader{type_traits}
666683
#define @\defnlibxname{cpp_lib_variant}@ 201606L // also in \libheader{variant}
667684
#define @\defnlibxname{cpp_lib_void_t}@ 201411L // also in \libheader{type_traits}
668685
\end{codeblock}

0 commit comments

Comments
 (0)