User:T. Canens

On StackOverflow.


 * Note that iterator_traits is intended for C++17 iterators only

CWG motions

 * Issues and NB comments


 * (ABI isolation for member functions)
 * (Modules Dependency Discovery)
 * (Implicit creation of objects for low-level object manipulation)
 * (Converting from T* to bool should be considered narrowing (re: US 212))
 * (Disallow changing concept values)
 * (Core Issue 2436: US064 Copy semantics of coroutine parameters)
 * (Disambiguating Nested-Requirements)
 * (US084: Disallow "export import foo" outside of module interface)
 * (Fixing CTAD for aggregates)
 * (Proposed resolution for 2019 comment CA 112)
 * (US069: Merging of multiple definitions for unnamed unscoped enumerations)
 * (Translation-unit-local entities)
 * (Resolve lambda init-capture pack grammar (CWG2378))
 * (Defaulted comparison specification cleanups)
 * (Consistent defaulted comparisons)
 * (Reserving Attribute Namespaces for Future Use)
 * (Fixing inconsistencies between constexpr and consteval functions)

LWG motions

 * Issues


 * ✅ (Missing Mandates for the standard library)
 * (Mandating the Standard Library: Clause 20 - Utilities library)
 * (Fixing US 313)
 * (Wording for GB301, US296, US292, US291, and US283)
 * (Rename leap to leap_second)
 * (Rename link to time_zone_link)
 * ✅ ('Models' subsumes 'satisfies' (Wording for US298 and US300))
 * ✅ (Improving the Return Value of Erase-Like Algorithms II: Free erase/erase if)
 * (Make 'implicit expression variations' more explicit (Wording for US185))
 * (elements_view needs its own sentinel)
 * (width: clarifying units of width and precision in std::format)
 * ✅ (On the names of low-level bit manipulation functions)
 * (Fixed-size span construction from dynamic range)
 * (Wording for boolean-testable)
 * (Issues with range access CPOs)
 * (Safe integral comparisons)
 * (Deprecating volatile: library)
 * ✅ (Rename "_default_init" Functions, Rev1)
 * (Rangify New Algorithms)
 * (Alternative wording for GB315 and GB316)
 * (Avoid template bloat for safe_ranges in combination with "subrange-y" view adaptors)
 * ✅ (Remove tuple-like protocol support from fixed-extent span)
 * (Consistency for size functions: Add ranges::ssize)
 * (Rebase the Library Fundamentals v3 TS on C++20)

CWG motions

 * Issues and NB comments ( and ), all DRs, and )


 * (US105 Check satisfaction of constraints for non-templates when forming pointer to function)
 * (Fixing the wording of parenthesized aggregate-initialization)
 * (Dynamic Initialization Order of Non-Local Variables in Modules)
 * (Allow defaulting comparisons by value)
 * (Inconsistencies with non-type template parameters)
 * (Resolution to US086)
 * (Drafting for CA096: Declaration matching for non-dependent requires-clauses)

LWG motions

 * Issues


 * ✅ (Make  freestanding)
 * ✅ (Refinement Proposal for P0919 Heterogeneous lookup for unordered containers)
 * ✅ (span should have size_type, not index_type)
 * ✅ (Blanket Wording for Specifying “Hidden Friends”)
 * (ranges compare algorithm are over-constrained)
 * ✅ (Rename condition_variable_any interruptible wait methods)
 * (Harmonizing the definitions of total order for pointers)
 * (Constraining Readable Types)
 * (Concept traits should be named after concepts)
 * (Move-only views)
 * (Range constructor for std::string_view)
 * (Range constructor for std::span)
 * (Ranges adaptors for non-copyable iterators)
 * ( is too subtle)
 * (Add max to latch and barrier)
 * (NB Comment Changes Reviewed by SG1)
 * (Missing feature-test macros 2017-2019)
 * (Fixing Atomic Initialization)
 * ✅ (Remove std::weak_equality and std::strong_equality)
 * (Extended locale-specific presentation specifiers for std::format)
 * (constexpr for algorithms)
 * (Mandating the Standard Library: Clause 25 - Algorithms library)
 * (Mandating the Standard Library: Clause 26 - Numerics library)
 * (Mandating the Standard Library: Clause 27 - Time library)
 * (Mandating the Standard Library: Clause 28 - Localization library)
 * (Mandating the Standard Library: Clause 29 - Input/Output library)
 * (Mandating the Standard Library: Clause 30 - Regular Expression library)
 * (Mandating the Standard Library: Clause 31 - Atomics library)
 * (Mandating the Standard Library: Clause 32 - Thread support library)

CWG motions

 * Issues (P1510R0, all DRs)


 * (Deprecate uses of the comma operator in subscripting expressions)
 * (Permitting trivial default initialization in constexpr contexts)
 * (Interaction of memory_order_consume with release sequences)
 * (Conditionally Trivial Special Member Functions)
 * (When do you actually use <=>?)
 * ( nodiscard("should have a reason") )
 * (Using Enum)
 * (Spaceship needs a tune-up)
 * (Using unconstrained template template parameters with constrained templates)
 * (Wording for class template argument deduction for aggregates)
 * (Enabling constexpr Intrinsics By Permitting Unevaluated inline-assembly in constexpr Functions)
 * (Mitigating minor modules maladies); DR for the changes therein for default arguments and classes having typedef names for linkage purposes.
 * (Relaxing redefinition restrictions for re-exportation robustness)
 * (Permit conversions to arrays of unknown bound)
 * ✅ (Remove Contracts from C++20)
 * (Adding the constinit keyword)
 * ✅ (On the non-uniform semantics of return-type-requirements)
 * (Deprecating volatile)
 * ( for constructors) (DR)
 * (Wording for Class Template Argument Deduction for Alias Templates)
 * (Merged wording for P0527R1 and P1155R3) (DR)
 * (Recognizing Header Unit Imports Requires Full Preprocessing)
 * (More constexpr containers)

LWG Motions

 * Issues -


 * (Exposing a narrow contract for ceil2)
 * (Bit operations)
 * ('constexpr' feature macro concerns)
 * (Text Formatting)
 * (Integration of chrono with text formatting)
 * (Printf corner cases in std::format)
 * (Math Constants)
 * (The C++20 Synchronization Library)
 * (Add wait/notify to atomic_ref)
 * (Add wait/notify to atomic)
 * (Miscellaneous minor fixes for chrono)
 * (Rename concepts to standard_case for C++20, while we still can)
 * I demand beers.
 * (The Mothership has Landed)
 * (to_array from LFTS with updates)
 * (Efficient Access to basic_stringbuf ’s Buffer)
 * (char8_t backward compatibility remediation)
 * (Standard library header units for C++20) (only if P1811R0 passes)
 * (Relocate Endian’s Specification)
 * ✅ (Remove dedicated precalculated hash lookup interface)
 * ✅ (Output std::chrono::days with 'd' suffix)
 * ✅ (bind_front should not unwrap reference_wrapper)
 * (Constexpr INVOKE)
 * (Movability of Single-pass Iterators)
 * (Input Range Adaptors)
 * (basic_istream_view::iterator should not be copyable)
 * (Iterator Difference Type and Integer Overflow)
 * (Making std::vector constexpr)
 * (Making std::string constexpr)
 * (Stop Token and Joining Thread, Rev 10)
 * (Helpful pointers for ContiguousIterator)
 * (Views and Size Types)
 * (Layout-compatibility and Pointer-interconvertibility Traits)
 * (Adopt source_location for C++20)

CWG motions

 * Issues (P1358R0 & P1359R0, all DRs)


 * (Contra CWG DR1778) (DR)
 * (Extending structured bindings to be more like variable declarations) and (Reference capture of structured bindings)
 * ✅ (Make char16_t/char32_t string literals be UTF-16/32)
 * ✅ (Address wording issues related to ISO 10646)
 * ✅ (Contract postconditions and return type deduction)
 * ✅ (Allow initializing aggregates from a parenthesized list of values)
 * ✅ (Array size deduction in new-expressions) (DR)
 * (Merging Modules)
 * (Merge Coroutines TS into C++20 working draft)
 * (Merge Coroutines TS into C++20 working draft)

Reflection TS

 * (Reflection TS NB comment resolutions: summary and rationale)

LWG Motions

 * (Mandating the Standard Library: Clause 21 - Containers library)
 * (Ranges Design Cleanup)


 * Issues (P1457R0)


 * ✅ (polymorphic_allocator<> as a vocabulary type)
 * ✅ (Making std::underlying_type SFINAE-friendly)
 * ✅ (I Stream, You Stream, We All Stream for istream_iterator)
 * ✅ (Mandating the Standard Library: Clause 16 - Language support library)
 * ✅ (Mandating the Standard Library: Clause 18 - Diagnostics library)
 * ✅ (Mandating the Standard Library: Clause 20 - Strings library)
 * ✅ (Mandating the Standard Library: Clause 22 - Iterators library)
 * ✅ (Make create_directory Intuitive) (DR)
 * ✅ (Well-behaved interpolation for numbers and pointers)
 * ✅ (Target Vectorization Policies from Parallelism V2 TS to C++20)
 * ✅ (Signed ssize functions, unsigned size functions )
 * ✅ (Usability Enhancements for std::span)
 * New LWG issue: is wrong (adds cv); also need to use size_t.
 * ✅ (Precalculated hash values in lookup)
 * ✅ (Traits for [Un]bounded Arrays)

LFTSv3

 * (Generic Scope Guard and RAII Wrapper for the Standard Library)

CWG motions

 * ✅ (Revising the C++ memory model)
 * ✅ (Weaken Release Sequences)
 * (Core Issue 2292: simple-template-id is ambiguous between class-name and type-name)
 * ✅ (Alternative Wording for P0907R4 Signed Integers are Two's Complement)
 * ✅ (char8_t: A type for UTF-8 characters and strings (Revision 6))
 * ✅ (Immediate functions)
 * except the part about "potentially constant evaluated"


 * (std::is_constant_evaluated)
 * (Yet another approach for constrained declarations)


 * Tentatively ready issues (P1350R0)


 * ✅ (Today's return-type-requirements Are Insufficient)
 * Reconciled with P1141R2 by using . Also didn't do the technical details about what it means to satisfy one since the meaning is pretty clear.


 * ✅ (Nested Inline Namespaces)
 * ✅ (Changing the active member of a union inside constexpr)
 * ✅ (Access control in contract conditions)
 * ✅ (Try-catch blocks in constexpr functions)
 * ✅ (Allowing, polymorphic  in Constant Expressions)
 * ✅ (Missing Feature Test Macros)

LWG motions

 * Redo LWG 3031 correctly (rewrite par pred2, par cmp and par cmp ord).
 * ✅ (Cleaning up Clause 20)
 * ✅ (unwrap_ref_decay and unwrap_reference)
 * Deferred until LWG cleans up the mess.


 * ✅ (Smart pointer creation with default initialization)


 * (Improving Completeness Requirements for Type Traits)
 * ✅ (Utility functions to implement uses-allocator construction)
 * (The One Ranges Proposal)
 * Note: going to pretend that the dediamondification in already happened so that I don't have to redo half the pages


 * ✅ (Heterogeneous lookup for unordered containers)
 * May want to add a note on the main container pages.


 * TS issues


 * Issues


 * ✅ (Editorial Guidance for merging P0019r8 and P0528r3).
 * Did this already when applying


 * ✅ (Fixing operator>>(basic_istream&, CharT*) (LWG 2499)).
 * ✅ (variant and optional should propagate copy/move triviality).
 * ✅ (visit: Explicit Return Type for visit).
 * ✅ ( zero, min, and max should be noexcept)
 * ✅ (Constexpr in std::pointer_traits)
 * ✅ (A sane variant converting constructor)
 * ✅ (std::function move constructor should be noexcept)
 * ✅ (Remove CommonReference requirement from StrictWeakOrdering (a.k.a Fixing Relations))
 * ✅ (LWG 3016 is Not a Defect)
 * Remove some specification redundancies


 * ✅ (Should Span be Regular?)
 * ✅ (Misc constexpr bits)
 * ✅ (reference_wrapper for incomplete types)
 * ✅ (std::assume_aligned)
 * ✅ (Make stateful allocator propagation more consistent for operator+(basic_string))
 * ✅ (Adopt Consistent Container Erasure from Library Fundamentals 2 for C++20)
 * ✅ (Simplified partial function application)


 * (Completing the Rebase of Library Fundamentals, Version 3, Working Draft)
 * We'll do something when we actually have new stuff in LFTS V3. LWG is rather busy with IS right now...

LEWG motion

 * "Standard Library Compatibility"

CWG motions (C++ IS)

 * Ready issues and tentatively ready issues  - DRs except 2359


 * ( wording clarifications)
 * cpp/preprocessor/replace doesn't cover at the level of detail for which the fixes would be applicable. We don't even have the word "placemarker" anywhere on the page...
 * (Checking for abstract class types) - DR
 * (Class Types in Non-Type Template Parameters)
 * ✅ (Support for contract based programming in C++)
 * Core uses, library uses "assertion-level" => asked LWG & author about intent
 * Implied full set of defaulted SMFs, probably not what we want => asked LWG & author about intent
 * Library wording fails to reserve and  because they are not technically attribute-tokens =>


 * (Integrating feature-test macros into the C++ WD (rev. 2))


 * ✅ (Deprecate implicit capture of  via )
 * ✅ (Update The Reference To The Unicode Standard)
 * ✅ (The Curious Case of Padding Bits, Featuring Atomic Compare-and-Exchange)
 * ✅ (Efficient sized delete for variable sized classes)
 * ✅ (Allowing Virtual Function Calls in Constant Expressions)
 * ✅ (Prohibit aggregates with user-declared constructors)
 * ✅ (Consistency improvements for  and other comparison operators)

LWG motions (Parallelism 2 TS)

 * (Finding the right set of traits for ).
 * (Resolutions to NB Comments on the Parallelism TS v2)
 * (Feedback on P0214).
 * (Concat and Split on objects).

LWG motions (Reflection TS)

 * (Function reflection)

LWG motions (Coroutines TS)

 * section "LWG requested edits on 2018-June-08"
 * issue #29

LWG motions (Networking TS)

 * 3071 only

LWG motions (C++ IS)

 * all except 3071
 * done except for 3062 (won't fix) and 2139


 * ✅ (Standard Library Specification in a Concepts and Contracts World)
 * ✅ (Checking for Existence of an Element in Associative Containers).
 * ✅ (The identity metafunction)
 * ✅ (Add shift to )
 * ✅ (Constexpr for swap and swap related functions) resolves 2800
 * ✅ (Implicit conversion traits and utility functions)
 * ✅ ( comparison operators for std)
 * ✅ (Improving the Return Value of Erase-Like Algorithms)
 * ✅ (Reviewing Deprecated Facilities of C++17 for C++20)
 * Didn't do the explicit defaulting thing.
 * ✅ (Eradicating unnecessarily explicit default constructors from the standard library)
 * ✅ (LWG 2511: guaranteed copy elision for piecewise construction)
 * ✅ (Bit-casting object representations)
 * ✅ (std Requirements).
 * ✅ (Integral power-of-2 operations)
 * ✅ (Atomic Ref)
 * ✅ (Standard Library Concepts)

JAX 2018 motions not yet applied

 * P0968R0 (Core Language Working Group "tentatively ready" Issues)


 * P0840R2 (Language support for empty objects)
 * Need to check CIL and maybe other stuff
 * P0780R2 (Allow pack expansion in lambda init-capture)
 * On hold pending possible change to the spelling of reference init-capture pack
 * P0551R3 (Thou Shalt Not Specialize std Function Templates!).
 * P0858R0 (Constexpr iterator requirements).
 * ...this misuses "pseudo-destructor".
 * Also, "constexpr functions"...
 * P0214R9 (Data-Parallel Vector Types & Operations)

Other stuff to do

 * Category:Pages with unreviewed CWG DR marker
 * Category:Pages with unreviewed LWG DR marker
 * Category:Pages with unreviewed noexcept template
 * /LWG issues not yet applied
 * issues found with Howard's Brobdingnagian baby
 * Add the "standard library exceptions are nothrow copyable" rule somewhere.
 * LWG stuff
 * [tab:containers.node.compat] - no row with two multimeows. Intentional (transitivity)?


 * /collated search feedback
 * cpp/language/except_spec is a mess.
 * container assign is missing requirements. Should check others too.

Misc links

 * Special:PrefixIndex/MediaWiki:
 * Special:Massdelete