Reference ISO/IEC IS 14882:2020(E)
This document is the Index by Section for the Library Active Issues List, Library Defect Reports and Accepted Issues, and Library Closed Issues List.
(view only non-Ready open issues)
Revised 2023-06-09 at 14:25:43 UTC
(view only non-Ready open issues)
Issue | Status | Section | Title | Proposed Resolution | Priority | Duplicates |
2392(i) | New | 3.36 [defns.ntcts] | "character type" is used but not defined | No | 3 | |
3513(i) | New | 3.43 [defns.prog.def.type] | Fix definition of program-defined based on its uses | Yes | 3 |
(view only non-Ready open issues)
Issue | Status | Section | Title | Proposed Resolution | Priority | Duplicates |
3669(i) | New | 4.1.2 [intro.abstract] | std::filesystem operations should be observable behaviour | No | 3 |
(view only non-Ready open issues)
Issue | Status | Section | Title | Proposed Resolution | Priority | Duplicates |
2506(i) | SG1 | 6.9.2 [intro.multithread] | Underspecification of atomics | No | 3 |
(view only non-Ready open issues)
Issue | Status | Section | Title | Proposed Resolution | Priority | Duplicates |
3105(i) | New | 16 [library] | T1 is convertible to T2 | No | 3 | |
2949(i) | New | 16 [library] | Unclear complexity requirements: space vs. time | No | 4 | |
3538(i) | New | 16.2 [library.c] | §[library.c] C library functions are not addressable | No | 2 | |
2136(i) | Open | 16.3.2 [structure] | Postconditions vs. exceptions | No | 3 | |
3556(i) | New | 16.3.2.3 [structure.requirements] | Specification of when semantic constraints are imposed by use of concepts is unclear | No | 3 | |
3193(i) | New | 16.3.2.4 [structure.specifications] | Mandates: and Expects: elements are not defined for types | Yes | 3 | |
3401(i) | New | 16.3.2.4 [structure.specifications] | Is "as if by" equivalent to "equivalent to"? | No | 3 | |
3092(i) | Open | 16.3.3.3.3 [bitmask.types] | Unclear semantics of enum class bitmask types | Yes | 3 | |
3620(i) | New | 16.3.3.3.4.1 [character.seq.general] | What are execution character sets and execution wide-character sets (after P2314R4)? | No | 3 | |
3690(i) | New | 16.4.2.2 [contents] | std::make_from_tuple etc. should find all tuple-like std::get overloads | Yes | 3 | |
3240(i) | New | 16.4.3.2 [using.headers] | Headers declare more than entities | No | 3 | |
3640(i) | New | 16.4.4 [utility.requirements] | Clarify which exceptions are propagated | Yes | 3 | |
2146(i) | Open | 16.4.4.2 [utility.arg.requirements] | Are reference types Copy/Move-Constructible/Assignable or Destructible? | No | 3 | |
2152(i) | LEWG | 16.4.4.3 [swappable.requirements] | Instances of standard container types are not swappable | Yes | 3 | |
3267(i) | New | 16.4.4.6 [allocator.requirements] | Rebound allocators and is_always_equal | Yes | 4 | |
3044(i) | New | 16.4.4.6 [allocator.requirements] | Strange specification of max_size() for an allocator | Yes | 3 | |
3157(i) | New | 16.4.4.6 [allocator.requirements] | Allocator destroy and fancy pointer operations must be non-throwing | Yes | 3 | |
2461(i) | New | 16.4.4.6 [allocator.requirements] | Interaction between allocators and container exception safety guarantees | No | 3 | |
3682(i) | New | 16.4.4.6.1 [allocator.requirements.general] | A Cpp17Allocator type can't silently ignore an unsupported alignment | No | 3 | |
3926(i) | New | 16.4.5.2.1 [namespace.std] | Which namespace std is the mentioned one? | Yes | 4 | |
3928(i) | New | 16.4.5.2.2 [namespace.posix] | Non-top-level namespace posix shouldn't be reserved | Yes | 3 | |
3550(i) | New | 16.4.5.3 [reserved.names] | Names reserved by C for standard library not reserved by C++ | No | 3 | |
3920(i) | New | 16.4.5.3.4 [extern.names] | Bad footnotes claiming external linkage for entities defined as macros | No | 3 | |
3142(i) | New | 16.4.5.8 [res.on.functions] | std::foo<incomplete> should be ill-formed NDR | Yes | 3 | |
3511(i) | New | 16.4.5.9 [res.on.arguments] | Clarify global permission to move | Yes | 3 | |
3429(i) | New | 16.4.5.11 [res.on.requirements] | "models" should subsume like "satisfies" | Yes | 3 | |
2695(i) | New | 16.4.6.5 [member.functions] | "As if" unclear in [member.functions] | No | 3 | |
2414(i) | Open | 16.4.6.9 [reentrancy] | Member function reentrancy should be implementation-defined | Yes | 3 | |
3854(i) | New | 16.4.6.13 [res.on.exception.handling] | §[res.on.exception.handling]/3 should not be applied to all standard library types | No | 3 | |
3229(i) | New | 16.4.6.13 [res.on.exception.handling] | §[res.on.exception.handling]#3 cannot apply to types with implicitly declared destructors | Yes | 3 |
(view only non-Ready open issues)
Issue | Status | Section | Title | Proposed Resolution | Priority | Duplicates |
3217(i) | New | 17.3.1 [support.limits.general] | <memory> and <execution> should define __cpp_lib_parallel_algorithm | Yes | 3 | |
3931(i) | New | 17.3.2 [version.syn] | Too many paper bump __cpp_lib_ranges | Yes | 3 | |
2248(i) | New | 17.3.5 [numeric.limits] | numeric_limits::is_iec559 misnamed | No | 4 | |
2730(i) | Open | 17.3.5 [numeric.limits] | numeric_limits primary template definition | No | 3 | |
3923(i) | New | 17.3.5.1 [numeric.limits.general] | The specification of numeric_limits doesn't clearly distinguish between implementation requirements and user requirements | Yes | 3 | |
3922(i) | New | 17.3.5.1 [numeric.limits.general] | It's unclear whether numeric_limits can be specialized by users | Yes | 3 | |
3370(i) | New | 17.4.1 [cstdint.syn] | §[cstdint.syn]p2 and §[headers]p5 are not sufficiently clear | No | 3 | |
2815(i) | New | 17.5 [support.start.term] | quick_exit can deadlock | Yes | 3 | |
3084(i) | New | 17.5 [support.start.term] | Termination in C++ is unclear | No | 3 | |
3086(i) | New | 17.6.3.2 [new.delete.single] | Possible problem in §[new.delete.single] | Yes | 3 | |
2737(i) | New | 17.6.3.2 [new.delete.single] | Consider relaxing object size restrictions for single-object allocation functions | No | 3 | |
2303(i) | New | 17.6.3.4 [new.delete.placement] | Explicit instantiation of std::vector<UserType> broken? | No | 3 | |
2508(i) | New | 17.6.3.5 [new.delete.dataraces] | §[new.delete.dataraces] wording needs to be updated | No | 3 | |
3624(i) | New | 17.7 [support.rtti] | Inconsistency of <typeinfo>, <initializer_list>, and <compare> in the standard library | Yes | 3 | |
2398(i) | Open | 17.7.3 [type.info] | type_info's destructor shouldn't be required to be virtual | Yes | 3 | |
2088(i) | Open | 17.9.5 [exception.terminate] | std::terminate problem | No | 3 | |
2453(i) | New | 17.10 [support.initlist] | §[iterator.range] and now [iterator.container] aren't available via <initializer_list> | No | 3 | |
2493(i) | New | 17.10 [support.initlist] | initializer_list supports incomplete classes | No | 4 | |
3584(i) | New | 17.11.3 [cmp.common] | Clarify common comparison category conversions | Yes | 3 | |
3587(i) | New | 17.11.4 [cmp.concept] | std::three_way_comparable_with<T, U, void> can be satisfied but can't be modeled | No | 3 | |
3932(i) | New | 17.11.6 [cmp.alg] | Expression-equivalence is sometimes unimplementable when passing prvalue expressions to comparison CPOs | No | 3 | |
3491(i) | New | 17.11.6 [cmp.alg] | What is a "decayed type"? | No | 3 | |
3653(i) | New | 17.12.2 [coroutine.syn] | <coroutine> is freestanding, but uses std::hash which is not | No | 3 | |
3883(i) | New | 17.14.7 [support.c.headers.other] | §[support.c.headers.other] Ambiguity in the requirements for includes | Yes | 4 | |
3799(i) | New | 17.14.7 [support.c.headers.other] | Should <math.h> provide 3-argument ::hypot overloads? | No | 3 | |
3484(i) | New | 17.14.7 [support.c.headers.other] | Should <stddef.h> declare ::nullptr_t? | Yes | 3 |
(view only non-Ready open issues)
Issue | Status | Section | Title | Proposed Resolution | Priority | Duplicates |
3895(i) | New | 18.3 [concepts.syn] | Various relation concepts are missing default values of the second template parameters | Yes | 3 | |
3608(i) | New | 18.4.4 [concept.convertible] | convertible_to and temporary-bound references | No | 3 | |
3459(i) | New | 18.4.4 [concept.convertible] | Why doesn't std::convertible_to have semantic requirement when To is reference-to-function type? | No | 3 |
(view only non-Ready open issues)
Issue | Status | Section | Title | Proposed Resolution | Priority | Duplicates |
2413(i) | New | 19.3 [assertions] | assert macro is overconstrained | No | 4 | |
3011(i) | Open | 19.3 [assertions] | Requirements for assert(E) inconsistent with C | No | 2 | |
3019(i) | New | 19.5.3.4 [syserr.errcat.derived] | Presentation of "program defined classes derived from error_category" [syserr.errcat.derived] unclear and contains mistakes | No | 3 | |
3053(i) | New | 19.5.4.1 [syserr.errcode.overview] | Prohibit error_code construction from rvalues of error_category | Yes | 3 | |
3162(i) | New | 19.5.8.2 [syserr.syserr.members] | system_error::system_error(error_code ec) not explicit | Yes | 3 | |
3625(i) | New | 19.6.2 [stacktrace.syn] | Should <stacktrace> provide range access function templates? | Yes | 3 | |
3507(i) | Open | 19.6.3.4 [stacktrace.entry.query] | P0881R7 ("stacktrace") does not define "actual file name", "actual line number" | No | 2 | |
3626(i) | New | 19.6.4.1 [stacktrace.basic.overview] | Is std::basic_stacktrace required to use contiguous storage? | Yes | 3 |
(view only non-Ready open issues)
Issue | Status | Section | Title | Proposed Resolution | Priority | Duplicates |
3454(i) | LEWG | 20.2.3 [pointer.traits] | pointer_traits::pointer_to should be constexpr | Yes | ||
2421(i) | New | 20.2.5 [ptr.align] | Non-specification of handling zero size in std::align [ptr.align] | No | 3 | |
3192(i) | New | 20.2.8.2 [allocator.uses.construction] | §[allocator.uses.construction] functions misbehave for const types | Yes | 3 | |
3665(i) | New | 20.2.9.2 [allocator.traits.types] | Is std::allocator_traits<Alloc>::rebind_alloc SFINAE-friendly? | No | 3 | |
3916(i) | New | 20.2.10 [default.allocator] | allocator, polymorphic_allocator, and containers should forbid cv-qualified types | No | 3 | |
3917(i) | New | 20.2.10 [default.allocator] | Validity of allocator<void> and possibly polymorphic_allocator<void> should be clarified | Yes | 3 | |
3684(i) | New | 20.2.10.2 [allocator.members] | std::allocator<T>::allocate_at_least in constant evaluation | Yes | 3 | |
3159(i) | New | 20.3.1.3 [unique.ptr.single] | §[unique.ptr.single] requirements on deleter may be too strict | No | 3 | |
2262(i) | Open | 20.3.1.3 [unique.ptr.single] | Requirement for unique_ptr<T>::get_deleter()(p) to be able to destroy the unique_ptr | Yes | 3 | |
3911(i) | New | 20.3.1.3.5 [unique.ptr.single.observers] | unique_ptr 's operator* is missing a mandate |
Yes | 3 | |
2594(i) | New | 20.3.2.2 [util.smartptr.shared] | Contradicting definition of empty shared_ptr on shared_ptr(nullptr, d) | Yes | 3 | |
2906(i) | New | 20.3.2.2.2 [util.smartptr.shared.const] | There is no ability to supply an allocator for the control block when constructing a shared_ptr from a unique_ptr | No | 3 | |
2751(i) | New | 20.3.2.2.3 [util.smartptr.shared.dest] | shared_ptr deleter not specified to observe expired weak_ptr instances | No | 4 | |
3210(i) | New | 20.3.2.2.7 [util.smartptr.shared.create] | allocate_shared is inconsistent about removing const from the pointer passed to allocator construct and destroy | Yes | 3 | |
3216(i) | New | 20.3.2.2.7 [util.smartptr.shared.create] | Rebinding the allocator before calling construct/destroy in allocate_shared | Yes | 3 | |
3897(i) | New | 20.3.4.3 [inout.ptr.t] | inout_ptr will not update raw pointer to 0 | Yes | 2 | |
3681(i) | New | 20.4.1 [mem.res.syn] | Further considerations on LWG 3679 | No | 4 | |
3637(i) | New | 20.4.2 [mem.res.class] | pmr::memory_resource::do_allocate needs clarification | No | 3 | |
3634(i) | New | 20.4.4 [mem.res.global] | When are static-duration memory_resource objects destroyed? | No | 3 | |
2848(i) | New | 20.4.5.2 [mem.res.pool.options] | Pass-through threshold for pool allocator | No | 3 |
(view only non-Ready open issues)
Issue | Status | Section | Title | Proposed Resolution | Priority | Duplicates |
2290(i) | Open | 21 [meta] | Top-level "SFINAE"-based constraints should get a separate definition in Clause 17 | Yes | 3 | |
2452(i) | Core | 21 [meta] | is_constructible, etc. and default arguments | No | 3 | |
2845(i) | New | 21.3.2 [meta.rqmts] | enable_if, result_of, common_type and aligned_storage do not meet the definition of TransformationTrait | No | 3 | |
3099(i) | New | 21.3.3 [meta.type.synop] | is_assignable<Incomplete&, Incomplete&> | Yes | 2 | |
2939(i) | New | 21.3.3 [meta.type.synop] | Some type-completeness constraints of traits are overspecified | No | 2 | |
2922(i) | LEWG | 21.3.3 [meta.type.synop] | The *_constant<> templates do not make use of template<auto> | No | ||
2827(i) | New | 21.3.5.4 [meta.unary.prop] | is_trivially_constructible and non-trivial destructors | No | 3 | |
3929(i) | New | 21.3.5.4 [meta.unary.prop] | Preconditions for type traits should be Mandates | Yes | 3 | |
3697(i) | New | 21.3.5.4 [meta.unary.prop] | Preconditions of reference_constructs_from_temporary/reference_converts_from_temporary seem wrong | Yes | 3 | |
2496(i) | New | 21.3.5.4 [meta.unary.prop] | Certain hard-to-avoid errors not in the immediate context are not allowed to be triggered by the evaluation of type traits | No | 3 | |
2116(i) | Open | 21.3.5.4 [meta.unary.prop] | is_nothrow_constructible and destructors | No | 3 | |
2358(i) | Open | 21.3.5.4 [meta.unary.prop] | Apparently-bogus definition of is_empty type trait | Yes | 3 | |
2077(i) | Open | 21.3.5.4 [meta.unary.prop] | Further incomplete constraints for type traits | No | 3 | |
3486(i) | LEWG | 21.3.5.4 [meta.unary.prop] | is_constructible<T[], T...> may be misleading in C++20 | No | ||
3400(i) | New | 21.3.7 [meta.rel] | Does is_nothrow_convertible consider destruction of the destination type? | No | 3 | |
3174(i) | New | 21.3.7 [meta.rel] | Precondition on is_convertible is too strong | Yes | 3 | |
3205(i) | New | 21.3.8.7 [meta.trans.other] | decay_t in the new common_type fallback should be remove_cvref_t | Yes | 3 |
(view only non-Ready open issues)
Issue | Status | Section | Title | Proposed Resolution | Priority | Duplicates |
2153(i) | LEWG | 22.2.2 [utility.swap] | Narrowing of the non-member swap contract | No | 2 | |
3902(i) | New | 22.2.6 [declval] | Return type of std::declval<cv void> should be (cv-unqualified) void | Yes | 4 | |
2599(i) | New | 22.2.6 [declval] | Library incomplete type permission phrase is unclear | No | 3 | |
3342(i) | New | 22.3.2 [pairs.pair] | Library wording uses "initializes x with y", which is underspecified | No | 3 | |
2289(i) | Open | 22.3.2 [pairs.pair] | constexpr guarantees of defaulted functions still insufficient | No | 3 | |
2766(i) | New | 22.3.3 [pairs.spec] | Swapping non-swappable types | Yes | 3 | |
3166(i) | New | 22.3.4 [pair.astuple] | No such descriptive element as Value: | No | 3 | |
3378(i) | New | 22.4.2 [tuple.syn] | tuple_size_v/tuple_element_t should be available when tuple_size/tuple_element are | Yes | 3 | |
3583(i) | New | 22.4.4.1 [tuple.cnstr] | Clarify if/when short circuiting applies to conditions in Constraints: elements | No | 3 | |
2528(i) | New | 22.4.4.1 [tuple.cnstr] | Order of std::tuple construction unspecified | No | 3 | |
2933(i) | New | 22.4.5 [tuple.creation] | PR for LWG 2773 could be clearer | Yes | 3 | |
3882(i) | New | 22.4.9 [tuple.rel] | tuple relational operators have confused friendships | Yes | 3 | |
3728(i) | New | 22.4.9 [tuple.rel] | Can't make neither head nor tail of the description of operator<=>(tuple, tuple) | Yes | 4 | |
2472(i) | New | 22.4.9 [tuple.rel] | Heterogeneous comparisons in the standard library can result in ambiguities | No | 3 | |
532(i) | LEWG | 22.4.9 [tuple.rel] | Tuple comparison | Yes | 348 | |
2990(i) | Open | 22.5.3 [optional.optional] | optional::value_type is not always a value type | Yes | 3 | |
3886(i) | New | 22.5.3.1 [optional.optional.general] | Monad mo' problems | Yes | 3 | |
2811(i) | New | 22.5.3.2 [optional.ctor] | "Selected constructor" wording is incorrect for optional/variant/any | Yes | 3 | |
2746(i) | New | 22.5.3.4 [optional.assign] | Inconsistency between requirements for emplace between optional and variant | Yes | 3 | |
3424(i) | New | 22.5.3.6 [optional.observe] | optional::value_or should never return a cv-qualified type | Yes | 3 | |
2829(i) | Open | 22.5.3.6 [optional.observe] | LWG 2740 leaves behind vacuous words | No | 2 | |
3613(i) | New | 22.5.4 [optional.nullopt] | Specify that nullopt_t is copyable | Yes | 3 | |
3627(i) | New | 22.5.9 [optional.specalg] | Inconsistent specifications for std::make_optional overloads | Yes | 3 | |
2881(i) | New | 22.6.3 [variant.variant] | Adopt section III of P0308R0 | No | 3 | |
3215(i) | New | 22.6.3.2 [variant.ctor] | variant default constructor has vague constexpr requirements | No | 2 | |
2833(i) | Open | 22.6.3.2 [variant.ctor] | Library needs to specify what it means when it declares a function constexpr | Yes | 2 | |
2991(i) | LEWG | 22.6.3.2 [variant.ctor] | variant copy constructor missing noexcept(see below) | Yes | ||
3069(i) | New | 22.6.3.4 [variant.assign] | Move assigning variant's subobject corrupts data | Yes | 3 | |
3416(i) | New | 22.7.4 [any.class] | The Throws: specification of std::any does not mention allocation | No | 3 | |
3423(i) | New | 22.7.5 [any.nonmembers] | std::any_cast should never return a cv-qualified type | Yes | 3 | |
3305(i) | Open | 22.7.5 [any.nonmembers] | any_cast<void> | Yes | 2 | |
3688(i) | New | 22.8.4 [expected.bad] | Exception specifications of copy/move member functions of std::bad_expected_access | No | 2 | |
3891(i) | New | 22.8.6.1 [expected.object.general] | LWG 3870 breaks std::expected<cv T, E> | Yes | 2 | |
2348(i) | Open | 22.9.2 [template.bitset] | charT('1') is not the wide equivalent of '1' | Yes | 3 | |
3805(i) | New | 22.10 [function.objects] | Expression evaluating to a call wrapper is a prvalue, not an object | No | 4 | |
3046(i) | New | 22.10.6 [refwrap] | Do not require reference_wrapper to support non-referenceable function types | Yes | 3 | |
2491(i) | New | 22.10.8 [comparisons] | std::less<T*> in constant expression | Yes | 3 | |
2547(i) | New | 22.10.8 [comparisons] | Container requirements (and other library text) should say "strict total order", not just "total order" | No | 3 | |
3493(i) | New | 22.10.17.3.2 [func.wrap.func.con] | The constructor of std::function taking an F is missing a constraint | Yes | 3 | |
3680(i) | New | 22.10.17.4.3 [func.wrap.move.ctor] | Constructor of move_only_function with empty ref-qualifier is over-constrained | Yes | 2 | |
3642(i) | New | 22.10.17.4.3 [func.wrap.move.ctor] | move_only_function assignment operators seem to be defined suboptimal | Yes | 3 | |
3512(i) | New | 22.10.19 [unord.hash] | Incorrect exception safety guarantee for unordered containers | No | 3 | |
3456(i) | New | 22.13.3 [charconv.from.chars] | Pattern used by std::from_chars is underspecified | Yes | 3 | |
3081(i) | Open | 22.13.3 [charconv.from.chars] | Floating point from_chars API does not distinguish between overflow and underflow | Yes | 2 | |
3082(i) | Open | 22.13.3 [charconv.from.chars] | from_chars specification regarding floating point rounding is inconsistent | Yes | 2 | |
3651(i) | New | 22.14 [format] | Unspecified lifetime guarantees for the format string | No | 3 | |
3641(i) | New | 22.14.1 [format.syn] | Add operator== to format_to_n_result | Yes | 3 | |
3939(i) | New | 22.14.2.2 [format.string.std] | §[format.string.std] char is not formatted as a character when charT is wchar_t | No | 3 | |
3644(i) | New | 22.14.2.2 [format.string.std] | std::format does not define "integer presentation type" | Yes | 2 | |
3586(i) | New | 22.14.2.2 [format.string.std] | Formatting character alignment inconsistencies | Yes | 2 | |
3776(i) | LEWG | 22.14.6.1 [formatter.requirements] | Avoid parsing format-spec if it is not present or empty | Yes | 3 | |
3943(i) | New | 22.14.6.2 [format.formattable] | Clarify lifetime requirements of BasicFormatter and Formatter | Yes | 3 | |
3706(i) | New | 22.14.6.3 [format.formatter.spec] | How does std::format work with character arrays of unknown bound? | No | 3 | |
3944(i) | SG16 | 22.14.6.3 [format.formatter.spec] | Formatters converting sequences of char to sequences of wchar_t | No | 3 | |
3892(i) | New | 22.14.7.2 [format.range.formatter] | Incorrect formatting of nested ranges and tuples | Yes | 2 |
(view only non-Ready open issues)
Issue | Status | Section | Title | Proposed Resolution | Priority | Duplicates |
2513(i) | New | 23.1 [strings.general] | Missing requirements for basic_string::value_type | No | 4 | |
3694(i) | New | 23.2.2 [char.traits.require] | Should traits_type::length be customizable? | No | 4 | |
3942(i) | New | 23.2.4 [char.traits.specializations] | Inconsistent use of const char_type& in standard specializations of std::char_traits | Yes | 3 | |
2959(i) | New | 23.2.4.4 [char.traits.specializations.char16.t] | char_traits<char16_t>::eof is a valid UTF-16 code unit | No | 3 | |
2883(i) | LEWG | 23.3 [string.view] | The standard library should provide string_view parameters instead or in addition for functions defined with char const * or string const & as parameter types. | No | ||
3457(i) | New | 23.3.3 [string.view.template] | *this is not invalidated | Yes | 3 | |
3339(i) | New | 23.4.3 [basic.string] | Move-constructed empty-container capacity | No | 3 | |
3451(i) | New | 23.4.3 [basic.string] | Inconsistently explicit deduction guides | Yes | 3 | |
3663(i) | New | 23.4.3.3 [string.cons] | basic_string(const T&, const Alloc&) turns moves into copies | Yes | 3 | |
3662(i) | New | 23.4.3.7.2 [string.append] | basic_string::append/assign(NTBS, pos, n) suboptimal | Yes | 3 | |
3837(i) | New | 23.4.4.5 [string.erasure] | std::erase_if overloads for non-associative containers should move (and not copy) their predicate object | Yes | 3 | |
2237(i) | New | 23.5 [c.strings] | <cuchar> macros | No | 4 | |
2238(i) | Open | 23.5 [c.strings] | Problematic iterator-pair constructor of containers | No | 3 |
(view only non-Ready open issues)
Issue | Status | Section | Title | Proposed Resolution | Priority | Duplicates |
2307(i) | LEWG | 24 [containers] | Should the Standard Library use explicit only when necessary? | No | 2 | |
2885(i) | LEWG | 24 [containers] | The relational operators of optional and variant completely reflect the semantics of the element types — this is inconsistent with other types in the library | No | ||
2884(i) | LEWG | 24 [containers] | Relational operators for containers should sfinae; if the underlying type is not comparable, neither should the container be | No | ||
3059(i) | New | 24.2 [container.requirements] | Wrong requirements for map-like associative container assignment? | No | 3 | |
2269(i) | New | 24.2.2.1 [container.requirements.general] | Container iterators and argument-dependent lookup | No | 4 | |
2321(i) | Open | 24.2.2.1 [container.requirements.general] | Moving containers should (usually) be required to preserve iterators | Yes | 3 | |
1521(i) | Open | 24.2.2.1 [container.requirements.general] | Requirements on internal pointer representations in containers | Yes | 3 | |
3431(i) | New | 24.2.2.4 [container.opt.reqmts] | <=> for containers should require three_way_comparable<T> instead of <=> | Yes | 2 | |
3297(i) | New | 24.2.4 [sequence.reqmts] | Useless sequence container requirement | Yes | 3 | |
2705(i) | New | 24.2.4 [sequence.reqmts] | Questionable precondition on Sequence containers a.assign(n, t) | Yes | 3 | |
2206(i) | Open | 24.2.4 [sequence.reqmts] | Inaccuracy in initializer_list constructor requirements | Yes | 3 | |
3438(i) | New | 24.2.5.1 [container.node.overview] | §[container.node.overview] missing multiset/map cases | No | 3 | |
3227(i) | New | 24.2.7 [associative.reqmts] | Ambiguity issue for extract in ordered and unordered associative containers | Yes | 3 | |
2362(i) | New | 24.2.7 [associative.reqmts] | unique, associative emplace() should not move/copy the mapped_type constructor arguments when no insertion happens | No | 3 | |
2844(i) | Open | 24.2.7 [associative.reqmts] | Stability of a_uniq.insert(i, j) | No | 3 | |
2227(i) | Open | 24.2.7 [associative.reqmts] | Stateful comparison objects in associative containers | No | 3 | |
2215(i) | Open | 24.2.7 [associative.reqmts] | (unordered) associative container functors should be CopyConstructible | Yes | 3 | |
3691(i) | New | 24.2.7.1 [associative.reqmts.general] | Replacement of keys in associative containers | Yes | 3 | |
3577(i) | New | 24.2.7.1 [associative.reqmts.general] | Merging an (unordered) associative container with itself | No | 3 | |
3578(i) | New | 24.2.7.1 [associative.reqmts.general] | Iterator SCARYness in the context of associative container merging | No | 3 | |
1175(i) | Open | 24.2.8 [unord.req] | unordered complexity | Yes | 3 | |
2198(i) | Open | 24.2.8 [unord.req] | max_load_factor(z) makes no strong guarantees, but bans useful behavior | Yes | 3 | |
2189(i) | Open | 24.2.8.2 [unord.req.except] | Throwing swap breaks unordered containers' state | No | 3 | |
617(i) | Open | 24.3.7 [array] | std::array is a sequence that doesn't satisfy the sequence requirements? | No | 3 | |
3219(i) | New | 24.3.7.1 [array.overview] | std::array overview container requirements are incorrect | Yes | 3 | |
2823(i) | Open | 24.3.7.1 [array.overview] | std::array initialization is still not permissive enough | Yes | 3 | |
3488(i) | Open | 24.3.7.4 [array.special] | Is array<const int, 0> swappable or not? | Yes | 3 | |
2157(i) | Open | 24.3.7.5 [array.zero] | How does std::array<T,0> initialization work when T is not default-constructible? | Yes | 3 | |
3308(i) | New | 24.3.8.4 [deque.modifiers] | vector and deque iterator erase invalidates elements even when no change occurs | Yes | 3 | |
3758(i) | New | 24.3.11.3 [vector.capacity] | Element-relocating operations of std::vector and std::deque should conditionally require Cpp17CopyInsertable in their preconditions | No | 3 | |
2158(i) | Open | 24.3.11.3 [vector.capacity] | Conditional copy/move in std::vector | Yes | 3 | |
1102(i) | Open | 24.3.11.3 [vector.capacity] | std::vector's reallocation policy still unclear | Yes | 3 | |
3638(i) | New | 24.3.12 [vector.bool] | vector<bool>::swap(reference, reference) is useless | Yes | 3 | |
1422(i) | Open | 24.3.12 [vector.bool] | vector<bool> iterators are not random access | No | 3 | |
3531(i) | New | 24.4.4.1 [map.overview] | LWG 3025 broke previous valid code | Yes | 3 | |
2713(i) | New | 24.5 [unord] | More missing allocator-extended constructors for unordered containers | Yes | 3 | |
3189(i) | New | 24.6.7 [priority.queue] | Missing requirement for std::priority_queue | No | 3 | |
3161(i) | Open | 24.6.8 [stack] | Container adapters mandate use of emplace_back but don't require it | Yes | 3 | |
3802(i) | New | 24.6.9 [flat.map] | flat_foo allocator-extended constructors lack move semantics | No | 2 | |
3804(i) | New | 24.6.9 [flat.map] | flat_foo missing some allocator-extended deduction guides | No | 2 | |
3813(i) | New | 24.7.2.2.1 [span.overview] | std::span<volatile T, E> is made ill-formed by P2278R4 when T is a normal class type | No | 2 | |
3203(i) | New | 24.7.2.2.1 [span.overview] | span element access invalidation | Yes | 2 | |
3861(i) | New | 24.7.3.4.7 [mdspan.layout.stride] | mdspan layout_stride::mapping default constructor problem | No | 1 |
(view only non-Ready open issues)
Issue | Status | Section | Title | Proposed Resolution | Priority | Duplicates |
1213(i) | Open | 25.3 [iterator.requirements] | Meaning of valid and singular iterator underspecified | No | 4 | |
3838(i) | New | 25.3.2.1 [incrementable.traits] | The last specialization of incrementable_traits is under-constrained | Yes | 3 | |
3615(i) | New | 25.3.2.1 [incrementable.traits] | The last specialization of incrementable_traits has wrong operand types | Yes | 3 | |
3287(i) | New | 25.3.2.3 [iterator.traits] | Exposition-only cpp17-input-iterator concept is needlessly complex | Yes | 3 | |
3890(i) | New | 25.3.4.4 [iterator.concept.winc] | ABI issue for integer-class types | Yes | 3 | |
3716(i) | New | 25.3.4.11 [iterator.concept.forward] | §[iterator.concept.forward][forward.iterators] Two different definitions of multi-pass guarantee | No | 3 | |
2962(i) | Open | 25.3.5.3 [input.iterators] | Iterators of Containers of move-only types do not model InputIterator | Yes | 2 | |
484(i) | Open | 25.3.5.3 [input.iterators] | Convertible to T | No | 2 | |
2035(i) | Open | 25.3.5.4 [output.iterators] | Output iterator requirements are broken | Yes | 3 | |
2038(i) | Open | 25.3.5.4 [output.iterators] | Missing definition for incrementable iterator | No | 3 | |
3197(i) | New | 25.4.3 [iterator.operations] | std::prev should not require BidirectionalIterator | Yes | 3 | |
3439(i) | New | 25.4.3 [iterator.operations] | "Distance" template parameter is underspecified | No | 3 | |
3344(i) | New | 25.4.3 [iterator.operations] | advance(i, most-negative) and prev(i, most-negative) | Yes | 3 | |
2931(i) | Open | 25.4.3 [iterator.operations] | Missed optimization opportunity with single-argument std::next | No | 3 | |
2858(i) | New | 25.5.1 [reverse.iterators] | LWG 2472: actually an incompatibility with C++03 | Yes | 4 | |
3623(i) | New | 25.5.1.1 [reverse.iterators.general] | Uses of std::reverse_iterator with containers should not require manually including <iterator> | Yes | 3 | |
2595(i) | New | 25.5.1.2 [reverse.iterator] | reverse_iterator::operator[]'s return type revisited | Yes | 3 | |
3602(i) | New | 25.5.1.4 [reverse.iter.cons] | reverse_iterator's converting assignment is overconstrained | Yes | 3 | |
3725(i) | New | 25.5.1.6 [reverse.iter.elem] | reverse_iterator::operator-> should not use prev for non-pointer iterators | Yes | 3 | |
3863(i) | New | 25.5.3.2 [const.iterators.alias] | Is input_iterator guaranteed to have iter_const_reference_t? | No | 2 | |
3749(i) | New | 25.5.5 [iterators.common] | common_iterator should handle integer-class difference types | Yes | 2 | |
3783(i) | New | 25.5.5.1 [common.iterator] | views::common may not be a range adaptor object | Yes | 3 | |
3748(i) | New | 25.5.5.6 [common.iter.cmp] | common_iterator and counted_iterator' operator- are missing cast to return type | Yes | 3 | |
2366(i) | New | 25.6.4 [istreambuf.iterator] | istreambuf_iterator end-of-stream equality | Yes | 3 | |
3107(i) | New | 25.6.4 [istreambuf.iterator] | istreambuf_iterator has public exposition-only member | Yes | 4 | |
3188(i) | New | 25.6.4 [istreambuf.iterator] | istreambuf_iterator::pointer should not be unspecified | Yes | 3 | |
3108(i) | New | 25.6.4.2 [istreambuf.iterator.proxy] | istreambuf_iterator::proxy::operator* should be const | Yes | 3 | |
3537(i) | New | 25.7 [iterator.range] | §[iterator.range] Missing noexcept for std::rbegin/rend for arrays and initializer_list | No | 3 |
(view only non-Ready open issues)
Issue | Status | Section | Title | Proposed Resolution | Priority | Duplicates |
3729(i) | New | 26.2 [ranges.syn] | std::tuple_element_t<std::ranges::subrange<I, S, K>> should remove top-level cv-qualifiers | Yes | 4 | |
3913(i) | SG9 | 26.2 [ranges.syn] | ranges::const_iterator_t<range R> fails to accept arrays of unknown bound |
Yes | 3 | |
3896(i) | New | 26.4.5 [range.refinements] | The definition of viewable_range is not quite right | Yes | 4 | |
3845(i) | New | 26.5.7.2 [range.utility.conv.to] | ranges::to's from_range_t tag branch has the wrong constraint | Yes | 4 | |
3722(i) | New | 26.5.7.2 [range.utility.conv.to] | ranges::to reserves the wrong size | Yes | 4 | |
3907(i) | New | 26.6 [range.factories] | Can iterator types of range adaptors and range factories be SCARY? | No | 3 | |
3614(i) | New | 26.6.4.2 [range.iota.view] | iota_view::size and the most negative signed integer values | Yes | 3 | |
3846(i) | New | 26.6.4.3 [range.iota.iterator] | iota_view::iterator::operator- is overconstrained | Yes | 3 | |
3609(i) | New | 26.6.4.4 [range.iota.sentinel] | std::ranges::iota_view<int, long> has non-subtractable iterator and sentinel types | Yes | 3 | |
3763(i) | New | 26.6.5.3 [range.repeat.iterator] | Should range adaptor iterators only provide iterator_category when its difference_type is not an integer-class type? | Yes | 3 | |
3679(i) | LEWG | 26.6.6 [range.istream] | Is <ranges> sufficient for istream_view? | No | 3 | |
3489(i) | New | 26.6.6.3 [range.istream.iterator] | Improve istream_view wording | Yes | 3 | |
3829(i) | New | 26.7.7.2 [range.as.rvalue.view] | as_rvalue_view::end should improve non-common case | Yes | 3 | |
3730(i) | New | 26.7.12.2 [range.drop.view] | std::ranges::drop_view may have different size type from its underlying view | Yes | 3 | |
3666(i) | New | 26.7.14 [range.join] | join_view's difference type is too small | No | 2 | |
3873(i) | New | 26.7.15.2 [range.join.with.view] | join_with_view's const begin is underconstrained | No | 3 | |
3852(i) | New | 26.7.15.3 [range.join.with.iterator] | join_with_view::iterator's iter_move and iter_swap should be conditionally noexcept | Yes | 3 | |
3855(i) | New | 26.7.16.2 [range.lazy.split.view] | tiny-range is not quite right | Yes | 4 | |
3685(i) | New | 26.7.16.2 [range.lazy.split.view] | In lazy_split_view, CTAD doesn't work when given an input_range input and a tiny-range pattern | Yes | 3 | |
3599(i) | New | 26.7.16.2 [range.lazy.split.view] | The const overload of lazy_split_view::begin should be constrained by const Pattern | Yes | 3 | |
3686(i) | New | 26.7.16.3 [range.lazy.split.outer] | In lazy_split_view, comparing a default-constructed outer-iterator or inner-iterator with std::default_sentinel results in null pointer dereference | Yes | 3 | |
3830(i) | New | 26.7.20.2 [range.reverse.view] | reverse_view should not cache when ranges::next has constant time complexity | Yes | 3 | |
3797(i) | New | 26.7.22.2 [range.elements.view] | elements_view insufficiently constrained | Yes | 2 | |
3832(i) | New | 26.7.22.3 [range.elements.iterator] | Missing change for element_view::iterator in LWG 3798 | Yes | 3 | |
3919(i) | New | 26.7.23 [range.enumerate] | enumerate_view may invoke UB for sized common non-forward underlying ranges | Yes | 3 | |
3864(i) | New | 26.7.24 [range.zip] | zip over range of reference to an abstract type | No | 4 | |
3731(i) | New | 26.7.24.2 [range.zip.view] | zip_view and adjacent_view are underconstrained | Yes | 3 | |
3777(i) | Open | 26.7.32.2 [range.cartesian.view] | Common cartesian_product_view produces an invalid range if the first range is input and one of the ranges is empty | Yes | 2 | |
3899(i) | New | 26.8.5 [coro.generator.promise] | co_yielding elements of an lvalue generator is unnecessarily inefficient | Yes | 3 | |
3900(i) | New | 26.8.5 [coro.generator.promise] | The allocator_arg_t overloads of generator::promise_type::operator new should not be constrained | Yes | 3 |
(view only non-Ready open issues)
Issue | Status | Section | Title | Proposed Resolution | Priority | Duplicates |
2963(i) | New | 27 [algorithms] | Algorithms with underspecified iterator requirements | No | 3 | |
1238(i) | Open | 27 [algorithms] | Defining algorithms taking iterator for range | No | 3 | |
2173(i) | Open | 27 [algorithms] | The meaning of operator + in the description of the algorithms |
Yes | 4 | |
3049(i) | Open | 27.2 [algorithms.requirements] | Missing wording allowing algorithms to use copies of function objects as substitutes for their parameters | Yes | 3 | |
3793(i) | New | 27.6.5 [alg.foreach] | Requirements for some algorithms' Size template parameters are unclear | No | 3 | |
3089(i) | New | 27.7.1 [alg.copy] | copy_n should require non-overlapping ranges | Yes | 3 | |
2471(i) | Open | 27.7.1 [alg.copy] | copy_n's number of InputIterator increments unspecified | No | 3 | |
3868(i) | LEWG | 27.7.5 [alg.replace] | Constrained algorithms should not require output_iterator | Yes | 4 | |
2985(i) | LEWG | 27.7.10 [alg.reverse] | std::reverse should be permitted to be vectorized | Yes | ||
2267(i) | New | 27.8.2.4 [partial.sort.copy] | partial_sort_copy underspecified for ranges of two different types | No | 3 | |
2973(i) | LEWG | 27.8.6 [alg.merge] | inplace_merge exact comparison count complexity prohibits useful real-world optimizations | Yes | ||
3534(i) | LEWG | 27.8.7.4 [set.intersection] | ranges::set_intersection and ranges::set_difference algorithm requirements are too strict | Yes | 3 | |
3029(i) | Open | 27.8.8.3 [pop.heap] | pop_heap over-constrains input | Yes | 3 | |
3487(i) | New | 27.10 [numeric.ops] | Missing precondition on input and output aliasing of [numeric.ops] | No | 3 | |
3060(i) | New | 27.10.8 [exclusive.scan] | XXX_scan algorithms are specified to work with move-only T, but are specified to make N copies of T into the destination range | No | 2 | |
3463(i) | New | 27.10.11 [transform.inclusive.scan] | Incorrect requirements for transform_inclusive_scan without initial value | Yes | 3 | |
3628(i) | New | 27.11 [specialized.algorithms] | "Effects: Equivalent to:" and uninitialized memory algorithms | No | 3 | |
3063(i) | New | 27.11 [specialized.algorithms] | Parallel algorithms in <memory> are underspecified | No | 3 | |
3064(i) | New | 27.11 [specialized.algorithms] | How do uninitialized memory algorithms obtain pointer without undefined behavior? | No | 3 | |
3647(i) | New | 27.11.2 [special.mem.concepts] | nothrow-input-iterator constraints should not mention copying | Yes | 3 | |
3918(i) | LEWG | 27.11.6 [uninitialized.move] | std::uninitialized_move/_n and guaranteed copy elision | Yes | 3 | |
3888(i) | New | 27.11.8 [specialized.construct] | Most ranges uninitialized memory algorithms are underconstrained | Yes | 3 | |
3436(i) | New | 27.11.8 [specialized.construct] | std::construct_at should support arrays | Yes | 2 | |
3889(i) | New | 27.11.9 [specialized.destroy] | std::(ranges::)destroy_at should destroy array elements in the decreasing index order | Yes | 3 |
(view only non-Ready open issues)
Issue | Status | Section | Title | Proposed Resolution | Priority | Duplicates |
3933(i) | New | 28.4.3 [complex] | P1467R9 accidentally changed the signatures of certain constructors of std::complex | Yes | 4 | |
3934(i) | New | 28.4.3 [complex] | std::complex<T>::operator=(const T&) has no specification | Yes | 3 | |
2714(i) | New | 28.4.6 [complex.ops] | complex stream extraction underspecified | Yes | 3 | |
2846(i) | New | 28.4.9 [cmplx.over] | Undefined phrase "effectively cast" | Yes | 3 | |
3809(i) | New | 28.5.4.4 [rand.eng.sub] | Is std::subtract_with_carry_engine<uint16_t> supposed to work? | Yes | 3 | |
3402(i) | New | 28.5.9.3.4 [rand.dist.bern.negbin] | Wording for negative_binomial_distribution is unclear as a consequence of LWG 2406 resolution | No | 3 | |
2524(i) | Open | 28.5.9.4.2 [rand.dist.pois.exp] | generate_canonical can occasionally return 1.0 | No | 2 | |
2423(i) | New | 28.6.5 [template.slice.array] | Missing specification slice_array, gslice_array, mask_array, indirect_array copy constructor | Yes | 4 | |
2115(i) | Open | 28.6.8 [template.mask.array] | Undefined behaviour for valarray assignments with mask_array index? | No | 4 | |
3693(i) | New | 28.7 [c.math] | §[c.math] Can any of float/double/long double overloads be fused into template overloads? | No | 2 | |
2847(i) | New | 28.7.1 [cmath.syn] | sin(float) should call sinf(float) | No | 3 | |
2923(i) | New | 28.7.1 [cmath.syn] | noexcept is inconsistently applied across headers which import components of the C standard library | No | 4 | |
3093(i) | New | 28.7.2 [c.math.abs] | LWG 2294/2192 missed a std::abs overload | No | 3 | |
3172(i) | New | 28.7.3 [c.math.hypot3] | 3-arg std::hypot is underspecified compared to the 2-arg overload | Yes | 3 | |
3066(i) | New | 28.7.6 [sf.cmath] | "report a domain error" in [sf.cmath]/1 is underspecified | No | 3 |
(view only non-Ready open issues)
Issue | Status | Section | Title | Proposed Resolution | Priority | Duplicates |
2592(i) | New | 29.2 [time.syn] | Require that chrono::duration_casts from smaller durations to larger durations do not overflow | Yes | 4 | |
3090(i) | New | 29.5.2 [time.duration.cons] | What is §[time.duration.cons]p4's "no overflow is induced in the conversion" intended to mean? | Yes | 3 | |
3503(i) | New | 29.5.8 [time.duration.cast] | chrono::ceil has surprising requirement | No | 3 | |
2383(i) | Open | 29.5.9 [time.duration.literals] | Overflow cannot be ill-formed for chrono::duration integer literals | No | 3 | |
3678(i) | New | 29.11.5.1 [time.zone.overview] | Constructors of std::chrono::time_zone might be overly unspecified | No | 4 | |
3856(i) | New | 29.12 [time.format] | Unclear which conversion specifiers are valid for each chrono type | Yes | 3 | |
3921(i) | New | 29.12 [time.format] | Is std::chrono::duration<std::int64_t, std::ratio<INT64_MAX - 1, INT64_MAX>>{40} required to be correctly formatted? | No | 3 | |
3831(i) | New | 29.12 [time.format] | Two-digit formatting of negative year is ambiguous | Yes | 3 | |
3844(i) | Open | 29.12 [time.format] | Non-numeric formats for negative durations | Yes | 3 |
(view only non-Ready open issues)
Issue | Status | Section | Title | Proposed Resolution | Priority | Duplicates |
3353(i) | New | 30.3.1 [locale] | locale's copy assignment operator should return locale& | Yes | 3 | |
3767(i) | Open | 30.3.1.2.1 [locale.category] | codecvt<charN_t, char8_t, mbstate_t> incorrectly added to locale | Yes | 3 | |
3674(i) | New | 30.3.1.4 [locale.members] | Removal of requirement for locale names for construction of locales not explained | Yes | 2 | |
3337(i) | New | 30.4.2.5.3 [locale.codecvt.virtuals] | What is "is initialized" supposed to mean? | No | 3 | |
3689(i) | New | 30.4.3.2.3 [facet.num.get.virtuals] | num_get overflow determination unclear and incorrect | No | 3 | |
3214(i) | New | 30.4.3.2.3 [facet.num.get.virtuals] | §[facet.num.get.virtuals] doesn't say what it means for digit grouping to be consistent | No | 4 | |
2703(i) | New | 30.4.3.3.3 [facet.num.put.virtuals] | No provision for fill-padding when boolalpha is set | No | 3 | |
2702(i) | New | 30.4.3.3.3 [facet.num.put.virtuals] | num_put::do_put(..., bool) performs ill-formed do_put call | No | 3 | |
2117(i) | Open | 30.4.3.3.3 [facet.num.put.virtuals] | ios_base manipulators should have showgrouping/noshowgrouping | No | 3 | |
3275(i) | New | 30.4.6.2.3 [locale.time.get.virtuals] | Why does time_get::do_get require a valid pointer when none of the others do? | Yes | 3 | |
2512(i) | Open | 30.4.6.2.3 [locale.time.get.virtuals] | Y2K bites; what is an "unambiguous year identifier"? | No | 4 | |
2983(i) | New | 30.4.7.3.2 [locale.money.put.virtuals] | money_put::do_put underspecified | Yes | 3 | |
2691(i) | New | 30.4.7.4 [locale.moneypunct] | money_base::space and do_put: U+0020 versus fill | Yes | 3 |
(view only non-Ready open issues)
Issue | Status | Section | Title | Proposed Resolution | Priority | Duplicates |
423(i) | Open | 31 [input.output] | Effects of negative streamsize in iostreams | Yes | 3 | |
3696(i) | New | 31.2.2 [stream.types] | "Basic integral types" should not be used | No | 3 | |
3910(i) | New | 31.4.2 [iostream.objects.overview] | The effects of including <iostream> on initialization are not yet precisely specified |
Yes | 4 | |
3675(i) | New | 31.5.2.6 [ios.base.storage] | std::ios_base::iword/pword might be misspecified | Yes | 4 | |
2675(i) | New | 31.5.2.7 [ios.base.callback] | register_callback can fail | No | 3 | |
2214(i) | Open | 31.5.4.2 [basic.ios.cons] | Clarify basic_ios::init call restrictions | Yes | 4 | |
2504(i) | New | 31.6.3 [streambuf] | basic_streambuf is not an abstract class | No | 3 | |
3658(i) | New | 31.6.3.3.5 [streambuf.pub.put] | basic_streambuf::sputn is both overspecified and underspecified | Yes | 3 | |
2342(i) | New | 31.7.6.2 [ostream] | User conversion to wchar_t const* or to wchar_t not invoked for operator<< | Yes | 4 | |
2497(i) | New | 31.7.6.2.4 [ostream.sentry] | Use of uncaught_exception() | Yes | 3 | |
3501(i) | New | 31.7.6.5 [ostream.manip] | basic_syncbuf-related manipulators refer to some Allocator without defining it | Yes | 3 | |
3937(i) | New | 31.7.7 [std.manip] | I/O manipulators should be specified in terms of base classes | No | 3 | |
2984(i) | New | 31.7.8 [ext.manip] | put_money(99) is unnecessarily undefined | Yes | 3 | |
3309(i) | New | 31.8 [string.streams] | Is <ios> implicitly #included by <sstream>, <fstream> etc.? | No | 3 | |
3097(i) | New | 31.8.2.5 [stringbuf.virtuals] | basic_stringbuf seekoff effects trigger undefined behavior and have contradictory returns | No | 3 | |
2286(i) | Open | 31.8.2.5 [stringbuf.virtuals] | stringbuf::underflow() underspecified | Yes | 4 | |
3496(i) | New | 31.11.2.4 [syncstream.syncbuf.members] | What does "uniquely associated" mean for basic_syncbuf::emit()? | No | 3 | |
3497(i) | New | 31.11.2.4 [syncstream.syncbuf.members] | Postconditions for basic_syncbuf::emit() | No | 3 | |
3098(i) | New | 31.12.6.5.9 [fs.path.decompose] | Misleading example for filesystem::path::filename() | Yes | 3 | |
3699(i) | New | 31.12.6.5.11 [fs.path.gen] | lexically_relative on UNC drive paths (\\?\C:\...) results in a default-constructed value | No | 3 | |
3794(i) | New | 31.12.6.6 [fs.path.itr] | std::filesystem::path::iterator::reference should be allowed to be std::filesystem::path | Yes | 3 | |
2947(i) | New | 31.12.8.1 [fs.enum.path.format] | Clarify several filesystem terms | No | 3 | |
3078(i) | New | 31.12.10 [fs.class.directory.entry] | directory_entry, directory_iterator and recursive_directory_iterator perform needless path copies | No | 3 | |
3668(i) | New | 31.12.11.2 [fs.dir.itr.members] | [recursive_]directory_iterator constructors refer to undefined options | Yes | 3 | |
2708(i) | Open | 31.12.12.2 [fs.rec.dir.itr.members] | recursive_directory_iterator::recursion_pending() is incorrectly specified | Yes | 2 | |
3057(i) | Open | 31.12.13.4 [fs.op.copy] | Correct copy_options handling | Yes | 2 | |
3056(i) | New | 31.12.13.5 [fs.op.copy.file] | copy_file() copies which attributes? | Yes | 3 | |
3744(i) | New | 31.12.13.6 [fs.op.copy.symlink] | copy_symlink(junction, new_symlink)'s behavior is unclear | No | 3 |
(view only non-Ready open issues)
Issue | Status | Section | Title | Proposed Resolution | Priority | Duplicates |
2490(i) | New | 32 [re] | <regex> needs lots of noexcept | No | 3 | |
523(i) | Open | 32 [re] | regex case-insensitive character ranges are unimplementable as specified | No | 4 | |
3835(i) | New | 32.1 [re.general] | Requirements for CharT in the regex library | No | 4 | |
3606(i) | New | 32.2 [re.req] | Missing regex_traits::locale_type requirements | No | 3 | |
2431(i) | New | 32.2 [re.req] | Missing regular expression traits requirements | No | 3 | |
2331(i) | Open | 32.4.2 [re.synopt] | regex_constants::collate's effects are inaccurately summarized | Yes | 3 | |
3605(i) | New | 32.4.3 [re.matchflag] | regex_constants::match_prev_avail is underspecified | No | 3 | |
2338(i) | Open | 32.6 [re.traits] | §[re.traits]/7 expects of locale facets something not guaranteed by [locale.facet]/4 | Yes | 3 | |
3261(i) | New | 32.7 [re.regex] | regex components' noexcept annotations appear broken for POCMA or throwing BidirectionalIterator | No | 3 | |
3341(i) | New | 32.7.2 [re.regex.construct] | basic_regex range constructor: Missing requirements for iterator types | No | 3 | |
3630(i) | New | 32.7.2 [re.regex.construct] | Inconsistent basic_regex construction and assignment from iterator range |
No | 4 | |
3603(i) | New | 32.7.2 [re.regex.construct] | Matching of null characters by regular expressions is underspecified | No | 3 | |
3604(i) | New | 32.7.2 [re.regex.construct] | What is the effect of an invalid value of type syntax_option_type? | No | 3 | |
2137(i) | Open | 32.7.3 [re.regex.assign] | Misleadingly constrained post-condition in the presence of exceptions | Yes | 3 | |
3126(i) | New | 32.8 [re.submatch] | There's no std::sub_match::compare(string_view) overload | Yes | 3 | |
2216(i) | New | 32.10.4 [re.alg.replace] | regex_replace(basic_string) allocator handling | No | 3 | |
2220(i) | Open | 32.11.2.3 [re.tokiter.comp] | Under-specification of operator== for regex_token_iterator | Yes | 3 | |
2986(i) | New | 32.12 [re.grammar] | Handling of multi-character collating elements by the regex FSM is underspecified | No | 4 | |
2987(i) | New | 32.12 [re.grammar] | Relationship between traits_inst.lookup_collatename and the regex FSM is underspecified with regards to ClassAtomCollatingElement | No | 3 | |
2546(i) | New | 32.12 [re.grammar] | Implementability of locale-sensitive UnicodeEscapeSequence matching | No | 4 |
(view only non-Ready open issues)
Issue | Status | Section | Title | Proposed Resolution | Priority | Duplicates |
2819(i) | New | 33.2.5 [thread.req.lockable] | Unspecified Return type: elements | Yes | 3 | |
3499(i) | New | 33.2.5.4 [thread.req.lockable.timed] | Timed lockable and mutex requirements are imprecise about duration and time_point | No | 3 | |
3924(i) | New | 33.3.1 [thread.stoptoken.intro] | Stop token data race avoidance requirements unclear | Yes | 3 | |
1484(i) | LEWG | 33.4.3 [thread.thread.class] | Need a way to join a thread with a timeout | No | ||
3516(i) | New | 33.4.3.2 [thread.thread.id] | thread::id spaceship may be inconsistent with equality | Yes | 3 | |
3475(i) | New | 33.4.3.3 [thread.thread.constr] | std::thread's constructor needs to be able to report general memory allocation failures | Yes | 3 | |
3633(i) | New | 33.5 [atomics] | Atomics are copy constructible and copy assignable from volatile atomics | Yes | 3 | |
3220(i) | New | 33.5.2 [atomics.syn] | P0558 broke conforming C++14 uses of atomic shared_ptr | Yes | 3 | |
2236(i) | SG1 | 33.5.2 [atomics.syn] | kill_dependency unconditionally noexcept | No | ||
3268(i) | New | 33.5.4 [atomics.order] | memory_order::memory_order_foo broken in C++20 | Yes | 4 | |
2265(i) | Open | 33.5.4 [atomics.order] | 29.3p9 appears to rule out some acceptable executions | No | 4 | |
1459(i) | LEWG | 33.5.4 [atomics.order] | Overlapping evaluations are allowed | No | 1458 | |
3941(i) | SG1 | 33.5.4 [atomics.order] | §[atomics.order] inadvertently prohibits widespread implementation techniques | No | 3 | |
3263(i) | New | 33.5.6 [atomics.wait] | Atomic waiting function calls should only be unblocked once | Yes | 3 | |
3288(i) | New | 33.5.6 [atomics.wait] | atomic<T>::notify_one is unimplementable | Yes | 2 | |
3485(i) | SG1 | 33.5.7 [atomics.ref.generic] | atomic_ref safety should be based on operations that "potentially conflict" rather than lifetime | No | 3 | |
3508(i) | New | 33.5.7.1 [atomics.ref.generic.general] | atomic_ref<cv T> is not well-specified | No | 2 | |
3409(i) | New | 33.5.7.2 [atomics.ref.ops] | Too lax description of atomic_ref<T>::required_alignment | Yes | 3 | |
3417(i) | SG1 | 33.5.8.2 [atomics.types.operations] | Missing volatile atomic deprecations | Yes | 3 | |
3047(i) | New | 33.5.8.3 [atomics.types.int] | atomic compound assignment operators can cause undefined behavior when corresponding fetch_meow members don't | Yes | 3 | |
3906(i) | New | 33.5.8.5 [atomics.types.pointer] | "Undefined address" is undefined | No | 3 | |
3418(i) | New | 33.5.9 [atomics.nonmembers] | Deprecated free functions in <atomic> | Yes | 3 | |
1488(i) | LEWG | 33.6 [thread.mutex] | Improve interoperability between the C++0x and C1x threads APIs | No | ||
936(i) | LEWG | 33.6.4 [thread.mutex.requirements] | Mutex type overspecified | No | 961 | |
961(i) | LEWG | 33.6.4 [thread.mutex.requirements] | Various threading bugs #11 | No | 936 | |
1493(i) | LEWG | 33.6.4 [thread.mutex.requirements] | Add mutex, recursive_mutex, is_locked function | No | ||
3343(i) | New | 33.7.3 [thread.condition.nonmember] | Ordering of calls to unlock() and notify_all() in Effects element of notify_all_at_thread_exit() should be reversed | Yes | 3 | |
3504(i) | New | 33.7.4 [thread.condition.condvar] | condition_variable::wait_for is overspecified | No | 3 | |
3898(i) | New | 33.9.3.3 [thread.barrier.class] | Possibly unintended preconditions for completion functions of std::barrier | Yes | 3 | |
2530(i) | Open | 33.10.5 [futures.state] | Clarify observable side effects of releasing a shared state | No | 3 | |
3003(i) | Open | 33.10.6 [futures.promise] | <future> still has type-erased allocators in promise | Yes | 2 | |
2532(i) | Open | 33.10.6 [futures.promise] | Satisfying a promise at thread exit | Yes | 3 | |
2095(i) | LEWG | 33.10.6 [futures.promise] | promise and packaged_task missing constructors needed for uses-allocator construction | Yes | 4 | |
3582(i) | New | 33.10.9 [futures.async] | Unclear where std::async exceptions are handled | Yes | 3 | |
2202(i) | Deferred | 33.10.9 [futures.async] | Missing allocator support by async | No | 4 |
(view only non-Ready open issues)
Issue | Status | Section | Title | Proposed Resolution | Priority | Duplicates |
3109(i) | New | D.15.2 [depr.strstreambuf] | strstreambuf is copyable | No | 4 | |
3095(i) | New | D.15.2.4 [depr.strstreambuf.virtuals] | strstreambuf refers to nonexistent member of fpos, fpos::offset | Yes | 4 | |
2507(i) | New | D.26 [depr.locale.stdcvt] | codecvt_mode should be a bitmask type | No | 3 | |
2478(i) | New | D.27.2 [depr.conversions.string] | Unclear how wstring_convert uses cvtstate | No | 4 | |
2481(i) | New | D.27.2 [depr.conversions.string] | wstring_convert should be more precise regarding "byte-error string" etc. | No | 4 | |
2479(i) | New | D.27.3 [depr.conversions.buffer] | Unclear how wbuffer_convert uses cvtstate | No | 4 | |
2480(i) | New | D.27.3 [depr.conversions.buffer] | Error handling of wbuffer_convert unclear | No | 4 | |
3840(i) | Open | D.29 [depr.fs.path.factory] | filesystem::u8path should be undeprecated | Yes | 3 |
(view only non-Ready open issues)
Issue | Status | Section | Title | Proposed Resolution | Priority | Duplicates |
2533(i) | SG1 | 99 [concurr.ts::futures.unique.future] | [concurr.ts] Constrain threads where future::then can run a continuation | No |
(view only non-Ready open issues)
Issue | Status | Section | Title | Proposed Resolution | Priority | Duplicates |
3812(i) | New | 3.2.2.5 [fund.ts.v3::propagate_const.const_observers] | [fund.ts.v3] Incorrect constraint on propagate_const conversion function | Yes | 3 |
(view only non-Ready open issues)
Issue | Status | Section | Title | Proposed Resolution | Priority | Duplicates |
3167(i) | Open | 5.2 [fund.ts.v3::memory.observer.ptr] | [fund.ts.v3] Does observer_ptr support function types? | No | 3 |
(view only non-Ready open issues)
Issue | Status | Section | Title | Proposed Resolution | Priority | Duplicates |
3357(i) | Open | 99 [fund.ts.v3::rand.util.randint] | [fund.ts.v3] default_random_engine is overspecified for per-thread engine | Yes | 3 |
(view only non-Ready open issues)
Issue | Status | Section | Title | Proposed Resolution | Priority | Duplicates |
3124(i) | New | 13.7.5 [networking.ts::async.exec.ctx.globals] | [networking.ts] Unclear how execution_context is intended to store services | Yes | 3 |
(view only non-Ready open issues)
Issue | Status | Section | Title | Proposed Resolution | Priority | Duplicates |
3114(i) | LEWG | 16 [networking.ts::buffer] | [networking.ts] Permit efficient composition when using DynamicBuffer | Yes | ||
3021(i) | New | 16.2.2 [networking.ts::buffer.reqmts.constbuffersequence] | [networking.ts] Relax pointer equivalence requirement for ConstBufferSequence | Yes | 3 | |
3027(i) | New | 16.2.4 [networking.ts::buffer.reqmts.dynamicbuffer] | [networking.ts] DynamicBuffer prepare exception specification | Yes | 3 | |
3072(i) | New | 16.2.4 [networking.ts::buffer.reqmts.dynamicbuffer] | [networking.ts] DynamicBuffer object lifetimes underspecified | Yes | 3 |
(view only non-Ready open issues)
Issue | Status | Section | Title | Proposed Resolution | Priority | Duplicates |
3073(i) | New | 17 [networking.ts::buffer.stream] | [networking.ts] (async_)read and (async_)write don't support DynamicBuffer lvalues | Yes | 3 |
(view only non-Ready open issues)
Issue | Status | Section | Title | Proposed Resolution | Priority | Duplicates |
3444(i) | New | 19.1.2 [networking.ts::socket.streambuf.members] | [networking.ts] net::basic_socket_streambuf::connect(Args&&...) effects are wrong | No | 2 | |
3445(i) | LEWG | 19.2.1 [networking.ts::socket.iostream.cons] | [networking.ts] net::basic_socket_istream::connect should be constrained | Yes | 3 |