(Previous meta-issue: #2872)
At the November 2022 meeting, the following LWG issues were resolved in the C++ Working Paper.
❔ Not yet analyzed
❌ Not applicable
If an issue requires no action from implementers, we mark it as N/A. Categories:
- Pure wording clarifications with nothing to implement (these can be changes to non-normative text like examples and informative notes, or wording cleanups to normative text that don't impact observable behavior)
- Something that increases the restrictions placed on users, but implementers aren't expected to enforce those restrictions
- Fixes for obviously broken wording, where implementers would have done the right thing anyways
😸 Already implemented
Sometimes we cite LWG issues in product code comments as we're implementing their proposed resolutions. When the resolutions are officially accepted, we should remove the citations (as the default assumption is that we're implementing what the Standard says). If something is especially subtle, we can convert the citation to mention the relevant Standard section. Sometimes we should add test coverage - e.g. when the Standard begins requiring something that we were already doing, but weren't explicitly testing for.
- Already implemented, comments need to be removed and messages need to cite the Standard
- Implemented without comments
🩹 Patches an unimplemented feature
We should record this LWG issue in the GitHub issue tracking the feature. That way, we'll remember to verify it, but it doesn't represent net new work.
🐞 Not yet implemented
(Previous meta-issue: #2872)
At the November 2022 meeting, the following LWG issues were resolved in the C++ Working Paper.
❔ Not yet analyzed
❌ Not applicable
If an issue requires no action from implementers, we mark it as N/A. Categories:
istream_iteratorcopy constructor trivial is an ABI breakcont-key-typeandcont-mapped-typeshould be removedfilesystem::weakly_canonicalbindplaceholders is underspecifiedconstand non-constvariablesadvanceableprepend_rangeandappend_rangecan't be amortized constant timetake_viewconstructorforward_listmodifiers😸 Already implemented
Sometimes we cite LWG issues in product code comments as we're implementing their proposed resolutions. When the resolutions are officially accepted, we should remove the citations (as the default assumption is that we're implementing what the Standard says). If something is especially subtle, we can convert the citation to mention the relevant Standard section. Sometimes we should add test coverage - e.g. when the Standard begins requiring something that we were already doing, but weren't explicitly testing for.
join_viewfails to support ranges of ranges with non-default_initializableiteratorsstd::atomic_waitand its friends lacknoexceptreference_wrapper::operator()should propagatenoexceptview_interface::cbeginis underconstrainedjthread::operator=(jthread&&)postconditions are unimplementable under self-assignmentfposequality comparison unspecifiedformatter<T>::formatshould beconst-qualifiedranges::uninitialized_copy_n,ranges::uninitialized_move_n, andranges::destroy_nshould usestd::moveexpectedsynopsis contains declarations that do not match the detailed descriptiontuple-for-eachcan call user-definedoperator,std::forward_like<void>(x)?ranges::rotate_copyshould usestd::moveconst_sentinelshould be constrainedconst_sentinel_tis missing<math.h>declare::lerp?std.compatshould not provide::byteand its friends__cpp_lib_constexpr_algorithmsshould also be defined in<utility>std::futureandstd::shared_futurehave unimplementable postconditionsmovable-boxas member should use default-initialization instead of copy-initialization🩹 Patches an unimplemented feature
We should record this LWG issue in the GitHub issue tracking the feature. That way, we'll remember to verify it, but it doesn't represent net new work.
<flat_map>#2910:flat_mapandflat_multimapshould impose sequence container requirements<flat_set>#2912:flat_set<flat_set>should include<compare>[utilities],[ranges], And[iterators]#2914:__cpp_lib_formatzip#2252:views::zip_transformstill requiresFto becopy_constructiblewhen empty packviews::cartesian_product#2923:cartesian_product_view::iterator'sparent_is never validcartesian_product_view::iterator::operator-should pass by referencecartesian_product_view::iterator::distance-fromignores the size of last underlying range<generator>: Synchronous Coroutine Generator For Ranges #2936:generator::iterator::operator==should pass by referenceyield_value]🐞 Not yet implemented
operator<<should be less templatized (filed LWG-3515 [stacktrace.basic.nonmem]:operator<<should be less templatized #3217)std::pointer_traitsshould be SFINAE-friendlyinout_ptr- inconsistentrelease()in destructor (filed LWG-3594inout_ptr- inconsistentrelease()in destructor #3218)make_error_codeandmake_error_conditionare customization points (filed LWG-3629make_error_codeandmake_error_conditionare customization points #3216)std::ranges::view_interface::sizereturns a signed type (filed LWG-3646std::ranges::view_interface::sizereturns a signed type #3219)pairspecially handled in uses-allocator construction? (filed LWG-3677 Is a cv-qualifiedpairspecially handled in uses-allocator construction? #3220)common_view::endshould improverandom_access_rangecase (filed LWG-3717common_view::endshould improverandom_access_rangecase #3221)move_iteratormissingdisable_sized_sentinel_forspecialization (filed LWG-3736move_iteratormissingdisable_sized_sentinel_forspecialization #3222)take_view::sentinelshould provideoperator-(filed LWG-3737take_view::sentinelshould provideoperator-#3223)ranges::to'sreservemay be ill-formed (filed LWG-3743ranges::to'sreservemay be ill-formed #3224)optional's spaceship withUwith a type derived fromoptionalcauses infinite constraint meta-recursion (filed LWG-3746optional's spaceship withUwith a type derived fromoptionalcauses infinite constraint meta-recursion #3225)vector<bool>missing exception specifications (filed LWG-3778vector<bool>missing exception specifications #3226)ranges::tois over-constrained on the destination type being a range (filed LWG-3785ranges::tois over-constrained on the destination type being a range #3227)iterator_category(filed LWG-3798 Rvalue reference anditerator_category#3228)is_aggregate(filed LWG-3823 Unnecessary precondition foris_aggregate#3229)