Issue |
Status |
Section |
Title |
Proposed Resolution |
Priority |
Duplicates |
3036 |
New |
23.12.3 [mem.poly.allocator.class] |
polymorphic_allocator::destroy is extraneous |
Yes |
3 |
|
3037 |
New |
23.12.3 [mem.poly.allocator.class] |
polymorphic_allocator and incomplete types |
Yes |
|
|
3038 |
New |
23.12.3.2 [mem.poly.allocator.mem] |
polymorphic_allocator::allocate should not allow integer overflow to create vulnerabilities |
Yes |
2 |
|
3003 |
New |
33.6.6 [futures.promise] |
<future> still has type-erased allocators in promise |
Yes |
2 |
|
3028 |
New |
26.2.1 [container.requirements.general] |
Container requirements tables should distinguish const and non-const variables |
Yes |
3 |
|
2960 |
New |
99 [fund.ts.v2::meta] |
[fund.ts.v2] nonesuch is insufficiently useless |
Yes |
2 |
|
2836 |
New |
24.3.2 [basic.string] |
More string operations should be noexcept |
Yes |
2 |
|
2938 |
New |
24.4.2 [string.view.template] |
basic_string_view::const_iterator should be literal types |
Yes |
2 |
|
3019 |
New |
22.5.2.4 [syserr.errcat.derived] |
Presentation of "program defined classes derived from error_category" [syserr.errcat.derived] unclear and contains mistakes |
No |
3 |
|
3016 |
New |
23.6.3 [optional.optional] |
optional and over-aligned types |
Yes |
3 |
|
3018 |
New |
23.11.3 [util.smartptr.shared] |
shared_ptr of function type |
Yes |
3 |
|
3008 |
New |
23.11.3.6 [util.smartptr.shared.create] |
make_shared (sub)object destruction semantics are not specified |
Yes |
2 |
|
3023 |
New |
23.14.12 [func.memfn] |
Clarify unspecified call wrappers |
Yes |
3 |
|
3022 |
New |
23.15.6 [meta.rel] |
is_convertible<derived*, base*> may lead to ODR |
No |
2 |
|
3025 |
New |
26.4.4.1 [map.overview] |
Map-like container deduction guides should use pair<Key, T>, not pair<const Key, T> |
Yes |
2 |
|
3031 |
New |
28.7 [alg.sorting] |
Algorithms and predicates with non-const reference arguments |
No |
2 |
|
3032 |
New |
28.7.7 [alg.heap.operations] |
ValueSwappable requirement missing for push_heap and make_heap |
Yes |
3 |
|
3006 |
New |
30.8.2.1 [stringbuf.cons] |
Constructing a basic_stringbuf from a string — where does the allocator come from? |
No |
3 |
|
3015 |
New |
30.11.14.3 [fs.op.copy] |
copy_options::unspecified underspecified |
Yes |
3 |
|
2999 |
New |
33.2.6 [thread.decaycopy] |
§[thread.decaycopy] issue |
No |
3 |
|
3021 |
New |
99 [networking.ts::buffer.reqmts.constbuffersequence] |
[networking.ts] Relax pointer equivalence requirement for ConstBufferSequence |
Yes |
3 |
|
3027 |
New |
99 [networking.ts::buffer.reqmts.dynamicbuffer] |
[networking.ts] DynamicBuffer prepare exception specification |
Yes |
3 |
|
2751 |
New |
23.11.3.2 [util.smartptr.shared.dest] |
shared_ptr deleter not specified to observe expired weak_ptr instances |
No |
4 |
|
2713 |
New |
26.5 [unord] |
More missing allocator-extended constructors for unordered containers |
Yes |
3 |
|
2173 |
New |
99 [algorithms] |
The meaning of operator + in the description of the algorithms |
Yes |
4 |
|
2892 |
New |
20.5.5.6 [constexpr.functions] |
Relax the prohibition on libraries adding constexpr |
Yes |
1 |
|
2990 |
New |
23.6.3 [optional.optional] |
optional::value_type is not always a value type |
Yes |
3 |
|
2881 |
New |
23.7.3 [variant.variant] |
Adopt section III of P0308R0 |
No |
3 |
|
2970 |
New |
23.7.7 [variant.visit] |
Return type of std::visit misspecified |
No |
2 |
|
2906 |
New |
23.11.3.1 [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 |
|
2957 |
New |
23.14.11.3 [func.bind.bind] |
bind's specification doesn't apply the cv-qualification of the call wrapper to the callable object |
Yes |
3 |
|
2994 |
New |
24.2 [char.traits] |
Needless UB for basic_string and basic_string_view |
Yes |
3 |
|
2959 |
New |
24.2.3.2 [char.traits.specializations.char16_t] |
char_traits<char16_t>::eof is a valid UTF-16 code unit |
No |
3 |
|
2946 |
New |
24.3.2.2 [string.cons] |
LWG 2758's resolution missed further corrections |
Yes |
2 |
|
2703 |
New |
25.4.2.2.2 [facet.num.put.virtuals] |
No provision for fill-padding when boolalpha is set |
No |
3 |
|
2983 |
New |
25.4.6.2.2 [locale.money.put.virtuals] |
money_put::do_put underspecified |
Yes |
3 |
|
2997 |
New |
26.3.10.5 [list.ops] |
LWG 491 and the specification of {forward_,}list::unique |
Yes |
3 |
|
2962 |
New |
27.2.3 [input.iterators] |
Iterators of Containers of move-only types do not model InputIterator |
Yes |
2 |
|
2951 |
New |
27.4.1 [iterator.traits] |
iterator_traits should SFINAE for void* and function pointers |
Yes |
3 |
|
2923 |
New |
29.9.1 [cmath.syn] |
noexcept is inconsistently applied across headers which import components of the C standard library |
No |
4 |
|
2984 |
New |
30.7.7 [ext.manip] |
put_money(99) is unnecessarily undefined |
Yes |
3 |
|
2995 |
New |
30.8.2.1 [stringbuf.cons] |
basic_stringbuf default constructor forbids it from using SSO capacity |
Yes |
3 |
|
2989 |
New |
30.11.7.6.1 [fs.path.io] |
path's stream insertion operator lets you insert everything under the sun |
Yes |
2 |
|
2947 |
New |
30.11.9.1 [fs.enum.path.format] |
Clarify several filesystem terms |
No |
3 |
|
2986 |
New |
31.13 [re.grammar] |
Handling of multi-character collating elements by the regex FSM is underspecified |
No |
4 |
|
2987 |
New |
31.13 [re.grammar] |
Relationship between traits_inst.lookup_collatename and the regex FSM is underspecified with
regards to ClassAtomCollatingElement |
No |
3 |
|
2963 |
New |
99 [algorithms] |
Algorithms with underspecified iterator requirements |
No |
3 |
|
2949 |
New |
99 [library] |
Unclear complexity requirements: space vs. time |
No |
4 |
|
2933 |
New |
23.5.3.4 [tuple.creation] |
PR for LWG 2773 could be clearer |
Yes |
3 |
|
2392 |
New |
20.3.16 [defns.ntcts] |
"character type" is used but not defined |
No |
3 |
|
2815 |
New |
21.5 [support.start.term] |
quick_exit can deadlock |
Yes |
3 |
|
2929 |
New |
24.3.2.6.3 [string.assign] |
basic_string misuses "Effects: Equivalent to" |
Yes |
3 |
|
2714 |
New |
29.5.6 [complex.ops] |
complex stream extraction underspecified |
Yes |
3 |
|
2507 |
New |
D.17 [depr.locale.stdcvt] |
codecvt_mode should be a bitmask type |
No |
3 |
|
2478 |
New |
D.18.1 [depr.conversions.string] |
Unclear how wstring_convert uses cvtstate |
No |
4 |
|
2481 |
New |
D.18.1 [depr.conversions.string] |
wstring_convert should be more precise regarding "byte-error string" etc. |
No |
4 |
|
2479 |
New |
D.18.2 [depr.conversions.buffer] |
Unclear how wbuffer_convert uses cvtstate |
No |
4 |
|
2480 |
New |
D.18.2 [depr.conversions.buffer] |
Error handling of wbuffer_convert unclear |
No |
4 |
|
2734 |
New |
30.11.7.4.4 [fs.path.concat] |
Questionable specification in [fs.path.concat] |
Yes |
2 |
|
2851 |
New |
30.11.9.2 [fs.enum.file_type] |
std::filesystem enum classes are now underspecified |
Yes |
2 |
|
2840 |
New |
30.11.12.1 [fs.dir.itr.members] |
directory_iterator::increment is seemingly narrow-contract but marked noexcept |
Yes |
2 |
|
2821 |
New |
21.6.4 [ptr.launder] |
std::launder() should be marked as [[nodiscard]] |
No |
3 |
|
2939 |
New |
23.15.2 [meta.type.synop] |
Some type-completeness constraints of traits are overspecified |
No |
2 |
|
2858 |
New |
27.5.1 [reverse.iterators] |
LWG 2472: actually an incompatibility with C++03 |
Yes |
4 |
|
2856 |
New |
33.6.9 [futures.async] |
std::async should be marked as [[nodiscard]] |
No |
2 |
|
2248 |
New |
21.3.4 [numeric.limits] |
numeric_limits::is_iec559 misnamed |
No |
4 |
|
2808 |
New |
30.5.4.2 [fpos.operations] |
Requirements for fpos and stateT |
No |
4 |
|
2528 |
New |
23.5.3.1 [tuple.cnstr] |
Order of std::tuple construction unspecified |
No |
3 |
|
2506 |
New |
6.8.2 [intro.multithread] |
Underspecification of atomics |
No |
3 |
|
2292 |
New |
20.4.1.4 [structure.specifications] |
Find a better phrasing for "shall not participate in overload resolution" |
No |
3 |
|
2818 |
New |
20.5.1.1 [contents] |
"::std::" everywhere rule needs tweaking |
No |
2 |
|
2461 |
New |
20.5.3.5 [allocator.requirements] |
Interaction between allocators and container exception safety guarantees |
No |
3 |
|
2563 |
New |
20.5.5.5 [member.functions] |
LWG 2259 relaxes requirements, perhaps unintentionally |
No |
2 |
|
2695 |
New |
20.5.5.5 [member.functions] |
"As if" unclear in [member.functions] |
No |
3 |
|
2839 |
New |
20.5.5.15 [lib.types.movedfrom] |
Self-move-assignment of library types, again |
Yes |
2 |
|
2737 |
New |
21.6.2.1 [new.delete.single] |
Consider relaxing object size restrictions for single-object allocation functions |
No |
3 |
|
2303 |
New |
21.6.2.3 [new.delete.placement] |
Explicit instantiation of std::vector<UserType> broken? |
No |
3 |
|
2508 |
New |
21.6.2.4 [new.delete.dataraces] |
§[new.delete.dataraces] wording needs to be updated |
No |
3 |
|
2453 |
New |
21.9 [support.initlist] |
§[iterator.range] and now [iterator.container] aren't available via <initializer_list> |
No |
3 |
|
2493 |
New |
21.9 [support.initlist] |
initializer_list supports incomplete classes |
No |
4 |
|
2413 |
New |
22.3 [assertions] |
assert macro is overconstrained |
No |
4 |
|
2599 |
New |
23.2.6 [declval] |
Library incomplete type permission phrase is unclear |
No |
3 |
|
2766 |
New |
23.4.3 [pairs.spec] |
Swapping non-swappable types |
Yes |
3 |
|
2472 |
New |
23.5.3.8 [tuple.rel] |
Heterogeneous comparisons in the standard library can result in ambiguities |
No |
3 |
|
2746 |
New |
23.6.3 [optional.optional] |
Inconsistency between requirements for emplace between optional and variant |
No |
3 |
|
2811 |
New |
23.6.3.1 [optional.ctor] |
"Selected constructor" wording is incorrect for optional/variant/any |
No |
3 |
|
2829 |
New |
23.6.3.5 [optional.observe] |
LWG 2740 leaves behind vacuous words |
No |
2 |
|
2421 |
New |
23.10.6 [ptr.align] |
Non-specification of handling zero size in std::align [ptr.align] |
No |
3 |
|
2594 |
New |
23.11.3 [util.smartptr.shared] |
Contradicting definition of empty shared_ptr on shared_ptr(nullptr, d) |
Yes |
3 |
|
2776 |
New |
23.11.3.5 [util.smartptr.shared.obs] |
shared_ptr unique() and use_count() |
No |
2 |
|
2848 |
New |
23.12.5.2 [mem.res.pool.options] |
Pass-through threshold for pool allocator |
No |
3 |
|
2511 |
New |
23.13.4 [allocator.adaptor.members] |
scoped_allocator_adaptor piecewise construction does not require CopyConstructible |
No |
3 |
|
2491 |
New |
23.14.7 [comparisons] |
std::less<T*> in constant expression |
Yes |
3 |
|
2547 |
New |
23.14.7 [comparisons] |
Container requirements (and other library text) should say "strict total order", not just "total order" |
No |
3 |
|
2774 |
New |
23.14.13.2.1 [func.wrap.func.con] |
std::function construction vs assignment |
No |
3 |
|
2845 |
New |
23.15.1 [meta.rqmts] |
enable_if, result_of, common_type and aligned_storage do not meet the definition
of TransformationTrait |
No |
3 |
|
2496 |
New |
23.15.4.3 [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 |
|
2827 |
New |
23.15.4.3 [meta.unary.prop] |
is_trivially_constructible and non-trivial destructors |
No |
3 |
|
2592 |
New |
23.17.2 [time.syn] |
Require that chrono::duration_casts from smaller durations to larger durations do not overflow |
Yes |
4 |
|
2513 |
New |
24.1 [strings.general] |
Missing requirements for basic_string::value_type |
No |
4 |
|
2318 |
New |
24.3.2 [basic.string] |
basic_string's wording has confusing relics from the copy-on-write era |
No |
4 |
|
2237 |
New |
24.5 [c.strings] |
<cuchar> macros |
No |
4 |
|
2295 |
New |
25.3.1.2 [locale.cons] |
Locale name when the provided Facet is a nullptr |
No |
3 |
|
2702 |
New |
25.4.2.2.2 [facet.num.put.virtuals] |
num_put::do_put(..., bool) performs ill-formed do_put call |
No |
3 |
|
2691 |
New |
25.4.6.3 [locale.moneypunct] |
money_base::space and do_put: U+0020 versus fill |
Yes |
3 |
|
2269 |
New |
26.2.1 [container.requirements.general] |
Container iterators and argument-dependent lookup |
No |
4 |
|
2705 |
New |
26.2.3 [sequence.reqmts] |
Questionable precondition on Sequence containers a.assign(n, t) |
Yes |
3 |
|
2743 |
New |
26.2.4.1 [container.node.overview] |
p0083r3 node_handle private members missing "exposition only" comment |
No |
3 |
|
2362 |
New |
26.2.6 [associative.reqmts] |
unique, associative emplace() should not move/copy the mapped_type constructor
arguments when no insertion happens |
No |
3 |
|
2772 |
New |
26.2.6 [associative.reqmts] |
Inconsistency in the insert(node) interface |
No |
2 |
|
2844 |
New |
26.2.6 [associative.reqmts] |
Stability of a_uniq.insert(i, j) |
No |
3 |
|
2335 |
New |
26.3.7 [array] |
array<array<int, 3>, 4> should be layout-compatible with int[4][3] |
No |
3 |
|
2823 |
New |
26.3.7.1 [array.overview] |
std::array initialization is still not permissive enough |
Yes |
2 |
|
2375 |
New |
27.2.1 [iterator.requirements.general] |
Is [iterator.requirements.general]/9 too broadly applied? |
No |
3 |
|
2595 |
New |
27.5.1.1 [reverse.iterator] |
reverse_iterator::operator[]'s return type revisited |
Yes |
3 |
|
2366 |
New |
27.6.3 [istreambuf.iterator] |
istreambuf_iterator end-of-stream equality |
No |
3 |
|
2457 |
New |
27.7 [iterator.range] |
std::begin() and std::end() do not support multi-dimensional arrays correctly |
No |
3 |
|
2267 |
New |
28.7.1.4 [partial.sort.copy] |
partial_sort_copy underspecified for ranges of two different types |
No |
3 |
|
2693 |
New |
29.5 [complex.numbers] |
constexpr for various std::complex arithmetic and value operators |
No |
3 |
|
2846 |
New |
29.5.9 [cmplx.over] |
Undefined phrase "effectively cast" |
No |
3 |
|
2154 |
New |
29.6.1.3 [rand.req.urng] |
What exactly does compile-time complexity imply? |
No |
4 |
|
2352 |
New |
29.6.7.1 [rand.util.seedseq] |
Is a default-constructed std::seed_seq intended to produce a predictable .generate()? |
No |
2 |
|
2423 |
New |
29.7.5 [template.slice.array] |
Missing specification slice_array, gslice_array, mask_array, indirect_array copy constructor |
Yes |
4 |
|
2847 |
New |
29.9.1 [cmath.syn] |
sin(float) should call sinf(float) |
No |
3 |
|
2675 |
New |
30.5.3.6 [ios.base.callback] |
register_callback can fail |
No |
3 |
|
2832 |
New |
30.5.4.2 [fpos.operations] |
§[fpos.operations] strange requirement for P(i) |
No |
3 |
|
2504 |
New |
30.6.3 [streambuf] |
basic_streambuf is not an abstract class |
No |
3 |
|
2243 |
New |
30.7.4.3 [istream.unformatted] |
istream::putback problem |
No |
3 |
|
2498 |
New |
30.7.4.5 [istream.rvalue] |
operator>>(basic_istream&&, T&&) returns basic_istream&, but should probably return
basic_istream&& |
No |
3 |
|
2342 |
New |
30.7.5.1 [ostream] |
User conversion to wchar_t const* or to wchar_t not invoked for operator<< |
Yes |
4 |
|
2497 |
New |
30.7.5.1.3 [ostream::sentry] |
Use of uncaught_exception() |
No |
3 |
|
2286 |
New |
30.8.2.4 [stringbuf.virtuals] |
stringbuf::underflow() underspecified |
Yes |
4 |
|
2121 |
New |
30.8.5.1 [stringstream.cons] |
app for string streams |
No |
3 |
|
2849 |
New |
30.11.14.4 [fs.op.copy_file] |
Why does !is_regular_file(from) cause copy_file to report a "file already exists" error? |
Yes |
2 |
|
2816 |
New |
30.11.14.33 [fs.op.resize_file] |
resize_file has impossible postcondition |
No |
3 |
|
2431 |
New |
31.3 [re.req] |
Missing regular expression traits requirements |
No |
3 |
|
2183 |
New |
31.10.1 [re.results.const] |
Muddled allocator requirements for match_results constructors |
No |
3 |
|
2184 |
New |
31.10.1 [re.results.const] |
Muddled allocator requirements for match_results assignments |
No |
3 |
|
2191 |
New |
31.10.1 [re.results.const] |
Incorrect specification of match_results(match_results&&) |
No |
4 |
|
2216 |
New |
31.11.4 [re.alg.replace] |
regex_replace(basic_string) allocator handling |
No |
3 |
|
2220 |
New |
31.12.2.2 [re.tokiter.comp] |
Under-specification of operator== for regex_token_iterator |
No |
2 |
|
2546 |
New |
31.13 [re.grammar] |
Implementability of locale-sensitive UnicodeEscapeSequence matching |
No |
4 |
|
2819 |
New |
33.2.5 [thread.req.lockable] |
Unspecified Return type: elements |
No |
3 |
|
2490 |
New |
99 [re] |
<regex> needs lots of noexcept |
No |
3 |
|
2841 |
New |
99 [strings] |
Use of "Equivalent to" in [strings] |
No |
3 |
|
2564 |
New |
99 [fund.ts.v2::func.wrap.func] |
[fund.ts.v2] std::experimental::function constructors taking allocator arguments may throw exceptions |
Yes |
3 |
|
2561 |
New |
99 [fund.ts.v2::optional.object.swap] |
[fund.ts.v2] Incorrect exception specifications for 'swap' in C++ Extensions for Library Fundamentals |
No |
3 |
|
Issue |
Status |
Section |
Title |
Proposed Resolution |
Priority |
Duplicates |
2833 |
Open |
23.7.3.1 [variant.ctor] |
Library needs to specify what it means when it declares a function constexpr |
Yes |
2 |
|
3011 |
Open |
22.3 [assertions] |
Requirements for assert(E) inconsistent with C |
No |
2 |
|
2897 |
Open |
26.3.7.1 [array.overview] |
array::iterator and array::const_iterator should be literal types |
Yes |
2 |
|
2158 |
Open |
26.3.11.3 [vector.capacity] |
Conditional copy/move in std::vector |
Yes |
2 |
|
3029 |
Open |
28.7.7.2 [pop.heap] |
pop_heap over-constrains input |
Yes |
3 |
|
2414 |
Open |
20.5.5.8 [reentrancy] |
Member function reentrancy should be implementation-defined |
Yes |
3 |
|
2820 |
Open |
21.4 [cstdint] |
Clarify <cstdint> macros |
Yes |
3 |
|
2800 |
Open |
23.2.2 [utility.swap] |
constexpr swap |
No |
3 |
|
2524 |
Open |
29.6.8.4.2 [rand.dist.pois.exp] |
generate_canonical can occasionally return 1.0 |
No |
2 |
|
2943 |
Open |
30.9.2.3 [filebuf.members] |
Problematic specification of the wide version of basic_filebuf::open |
No |
2 |
|
3012 |
Open |
32.6 [atomics.types.generic] |
atomic<T> is unimplementable for non-is_trivially_copy_constructible T |
Yes |
2 |
|
2139 |
Open |
20.5.4.2.1 [namespace.std] |
What is a user-defined type? |
Yes |
4 |
|
2512 |
Open |
25.4.5.1.2 [locale.time.get.virtuals] |
Y2K bites; what is an "unambiguous year identifier"? |
No |
4 |
|
2499 |
Open |
30.7.4.2.3 [istream.extractors] |
operator>>(basic_istream&, CharT*) makes it hard to avoid buffer overflows |
Yes |
2 |
|
2894 |
Open |
23.14.4 [func.invoke] |
The function template std::apply() is required to be constexpr, but std::invoke() isn't |
Yes |
3 |
|
2936 |
Open |
30.11.7.4.8 [fs.path.compare] |
Path comparison is defined in terms of the generic format |
Yes |
2 |
|
2899 |
Open |
23.5 [tuple] |
is_(nothrow_)move_constructible and tuple, optional and unique_ptr |
Yes |
2 |
|
2813 |
Open |
23.14.13.2.1 [func.wrap.func.con] |
std::function should not return dangling references |
Yes |
2 |
|
484 |
Open |
27.2.3 [input.iterators] |
Convertible to T |
No |
|
|
2741 |
Open |
28.7.4 [alg.partitions] |
is_partitioned requirements need updating |
Yes |
3 |
|
2731 |
Open |
33.4.4.1 [thread.lock.guard] |
Existence of lock_guard<MutexTypes...>::mutex_type typedef unclear |
Yes |
3 |
|
2797 |
Open |
23.15.2 [meta.type.synop] |
Trait precondition violations |
Yes |
2 |
|
1422 |
Open |
26.3.12 [vector.bool] |
vector<bool> iterators are not random access |
No |
3 |
|
2055 |
Open |
29.8 [numeric.ops] |
std::move in std::accumulate and other algorithms |
No |
3 |
|
2262 |
Open |
23.11.1.2 [unique.ptr.single] |
Requirement for unique_ptr<T>::get_deleter()(p) to be able to destroy the unique_ptr |
Yes |
3 |
|
2708 |
Open |
30.11.13.1 [fs.rec.dir.itr.members] |
recursive_directory_iterator::recursion_pending() is incorrectly specified |
Yes |
2 |
|
2155 |
Open |
21.11 [support.runtime] |
Macro __bool_true_false_are_defined should be removed |
Yes |
4 |
|
2931 |
Open |
27.4.3 [iterator.operations] |
Missed optimization opportunity with single-argument std::next |
No |
3 |
|
2730 |
Open |
21.3.4 [numeric.limits] |
numeric_limits primary template definition |
No |
3 |
|
2136 |
Open |
20.4.1 [structure] |
Postconditions vs. exceptions |
No |
3 |
|
2146 |
Open |
20.5.3.1 [utility.arg.requirements] |
Are reference types Copy/Move-Constructible/Assignable or Destructible? |
No |
2 |
|
2114 |
Open |
20.5.3.3 [nullablepointer.requirements] |
Incorrect "contextually convertible to bool" requirements |
Yes |
3 |
|
2398 |
Open |
21.7.2 [type.info] |
type_info's destructor shouldn't be required to be virtual |
Yes |
3 |
|
2088 |
Open |
21.8.4 [exception.terminate] |
std::terminate problem |
No |
3 |
|
2289 |
Open |
23.4.2 [pairs.pair] |
constexpr guarantees of defaulted functions still insufficient |
Yes |
3 |
|
2348 |
Open |
23.9.2 [template.bitset] |
charT('1') is not the wide equivalent of '1' |
Yes |
3 |
|
2290 |
Open |
23.15 [meta] |
Top-level "SFINAE"-based constraints should get a separate definition in Clause 17 |
Yes |
3 |
|
2077 |
Open |
23.15.4.3 [meta.unary.prop] |
Further incomplete constraints for type traits |
No |
3 |
|
2116 |
Open |
23.15.4.3 [meta.unary.prop] |
is_nothrow_constructible and destructors |
No |
3 |
|
2358 |
Open |
23.15.4.3 [meta.unary.prop] |
Apparently-bogus definition of is_empty type trait |
Yes |
3 |
|
2569 |
Open |
23.15.8 [meta.logical] |
conjunction and disjunction requirements are too strict |
Yes |
2 |
|
2587 |
Open |
23.15.8 [meta.logical] |
"Convertible to bool" requirement in conjunction and disjunction |
Yes |
3 |
|
2383 |
Open |
23.17.5.8 [time.duration.literals] |
Overflow cannot be ill-formed for chrono::duration integer literals |
No |
3 |
|
2151 |
Open |
24.3.2.1 [string.require] |
basic_string<>::swap semantics ignore allocators |
No |
3 |
|
2238 |
Open |
24.5 [c.strings] |
Problematic iterator-pair constructor of containers |
No |
3 |
|
2381 |
Open |
25.4.2.1.2 [facet.num.get.virtuals] |
Inconsistency in parsing floating point numbers |
Yes |
2 |
|
2117 |
Open |
25.4.2.2.2 [facet.num.put.virtuals] |
ios_base manipulators should have showgrouping/noshowgrouping |
No |
3 |
|
2321 |
Open |
26.2.1 [container.requirements.general] |
Moving containers should (usually) be required to preserve iterators |
Yes |
2 |
|
2206 |
Open |
26.2.3 [sequence.reqmts] |
Inaccuracy in initializer_list constructor requirements |
No |
3 |
|
2215 |
Open |
26.2.6 [associative.reqmts] |
(unordered) associative container functors should be CopyConstructible |
Yes |
3 |
|
2227 |
Open |
26.2.6 [associative.reqmts] |
Stateful comparison objects in associative containers |
No |
3 |
|
1175 |
Open |
26.2.7 [unord.req] |
unordered complexity |
Yes |
3 |
|
2198 |
Open |
26.2.7 [unord.req] |
max_load_factor(z) makes no strong guarantees, but bans useful behavior |
Yes |
3 |
|
2189 |
Open |
26.2.7.1 [unord.req.except] |
Throwing swap breaks unordered containers' state |
No |
3 |
|
2157 |
Open |
26.3.7.5 [array.zero] |
How does std::array<T,0> initialization work when T is not default-constructible? |
Yes |
3 |
|
2164 |
Open |
26.3.11.5 [vector.modifiers] |
What are the semantics of vector.emplace(vector.begin(), vector.back())? |
No |
2 |
|
1213 |
Open |
27.2 [iterator.requirements] |
Meaning of valid and singular iterator underspecified |
No |
4 |
|
2035 |
Open |
27.2.4 [output.iterators] |
Output iterator requirements are broken |
Yes |
3 |
|
2038 |
Open |
27.2.4 [output.iterators] |
Missing definition for incrementable iterator |
No |
3 |
|
2115 |
Open |
29.7.8 [template.mask.array] |
Undefined behaviour for valarray assignments with mask_array index? |
No |
4 |
|
2214 |
Open |
30.5.5.2 [basic.ios.cons] |
Clarify basic_ios::init call restrictions |
Yes |
4 |
|
2349 |
Open |
30.7.4.2.1 [istream.formatted.reqmts] |
Clarify input/output function rethrow behavior |
Yes |
3 |
|
2682 |
Open |
30.11.14.3 [fs.op.copy] |
filesystem::copy() won't create a symlink to a directory |
Yes |
2 |
|
2331 |
Open |
31.5.1 [re.synopt] |
regex_constants::collate's effects are inaccurately summarized |
Yes |
3 |
|
2338 |
Open |
31.7 [re.traits] |
§[re.traits]/7 expects of locale facets something not guaranteed by [locale.facet]/4 |
Yes |
3 |
|
2137 |
Open |
31.8.3 [re.regex.assign] |
Misleadingly constrained post-condition in the presence of exceptions |
Yes |
3 |
|
2195 |
Open |
31.10 [re.results] |
Missing constructors for match_results |
Yes |
3 |
|
2265 |
Open |
32.4 [atomics.order] |
29.3p9 appears to rule out some acceptable executions |
No |
4 |
|
2363 |
Open |
33.4.3.5.1 [thread.sharedtimedmutex.class] |
Defect in 30.4.1.4.1 [thread.sharedtimedmutex.class] |
Yes |
2 |
|
2530 |
Open |
33.6.5 [futures.state] |
Clarify observable side effects of releasing a shared state |
No |
3 |
|
2532 |
Open |
33.6.6 [futures.promise] |
Satisfying a promise at thread exit |
Yes |
3 |
|
2307 |
Open |
99 [containers] |
Should the Standard Library use explicit only when necessary? |
No |
2 |
|
Issue |
Status |
Section |
Title |
Proposed Resolution |
Priority |
Duplicates |
2991 |
LEWG |
23.7.3.1 [variant.ctor] |
variant copy constructor missing noexcept(see below) |
Yes |
|
|
2996 |
LEWG |
23.11.3 [util.smartptr.shared] |
Missing rvalue overloads for shared_ptr operations |
Yes |
|
|
2922 |
LEWG |
23.15.2 [meta.type.synop] |
The *_constant<> templates do not make use of template<auto> |
No |
|
|
2968 |
LEWG |
24.3.2.4 [string.capacity] |
Inconsistencies between basic_string reserve and vector/unordered_map/unordered_set reserve functions |
Yes |
3 |
|
2883 |
LEWG |
24.4 [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 |
|
|
2985 |
LEWG |
28.6.10 [alg.reverse] |
std::reverse should be permitted to be vectorized |
Yes |
|
|
2973 |
LEWG |
28.7.5 [alg.merge] |
inplace_merge exact comparison count complexity prohibits useful real-world optimizations |
Yes |
|
|
2884 |
LEWG |
99 [containers] |
Relational operators for containers should sfinae; if the underlying type is not comparable, neither should the container be |
No |
|
|
2885 |
LEWG |
99 [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 |
|
|
2152 |
LEWG |
20.5.3.2 [swappable.requirements] |
Instances of standard container types are not swappable |
Yes |
3 |
|
2814 |
LEWG |
99 [fund.ts.v2::func.wrap.func.con] |
[fund.ts.v2] to_array should take rvalue reference as well |
Yes |
3 |
|
1235 |
LEWG |
29.6.1.6 [rand.req.dist] |
Issue with C++0x random number proposal |
No |
|
|
2226 |
LEWG |
D.18.1 [depr.conversions.string] |
wstring_convert methods do not take allocator instance |
Yes |
|
|
1154 |
LEWG |
29.5 [complex.numbers] |
complex should accept integral types |
Yes |
|
|
1217 |
LEWG |
29.5 [complex.numbers] |
Quaternion support |
No |
|
|
1484 |
LEWG |
33.3.2 [thread.thread.class] |
Need a way to join a thread with a timeout |
No |
|
|
1488 |
LEWG |
33.4 [thread.mutex] |
Improve interoperability between the C++0x and C1x threads APIs |
No |
|
|
936 |
LEWG |
33.4.3 [thread.mutex.requirements] |
Mutex type overspecified |
No |
|
961 |
961 |
LEWG |
33.4.3 [thread.mutex.requirements] |
Various threading bugs #11 |
No |
|
936 |
1493 |
LEWG |
33.4.3 [thread.mutex.requirements] |
Add mutex, recursive_mutex, is_locked function |
No |
|
|
1499 |
LEWG |
33.5 [thread.condition] |
Condition variables preclude wakeup optimization |
No |
|
|
1289 |
LEWG |
23.2 [utility] |
Generic casting requirements for smart pointers |
Yes |
|
|
2153 |
LEWG |
23.2.2 [utility.swap] |
Narrowing of the non-member swap contract |
Yes |
2 |
|
2419 |
LEWG |
23.5.3.1 [tuple.cnstr] |
Clang's libc++ extension to std::tuple |
No |
|
|
1201 |
LEWG |
23.5.3.4 [tuple.creation] |
Do we always want to unwrap ref-wrappers in make_tuple |
Yes |
|
|
532 |
LEWG |
23.5.3.8 [tuple.rel] |
Tuple comparison |
Yes |
|
348 |
2825 |
LEWG |
23.6.3 [optional.optional] |
LWG 2756 breaks class template argument deduction for optional |
No |
2 |
|
2762 |
LEWG |
23.11.1.2.4 [unique.ptr.single.observers] |
unique_ptr operator*() should be noexcept |
Yes |
3 |
|
1406 |
LEWG |
23.11.3 [util.smartptr.shared] |
Support hashing smart-pointers based on owner |
Yes |
|
|
2690 |
LEWG |
23.14.4 [func.invoke] |
invoke<R> |
Yes |
|
|
1025 |
LEWG |
23.14.15 [unord.hash] |
The library should provide more specializations for std::hash |
No |
|
|
1317 |
LEWG |
23.14.15 [unord.hash] |
make_hash |
Yes |
|
|
2040 |
LEWG |
23.15 [meta] |
Missing type traits related to is_convertible |
Yes |
|
|
1121 |
LEWG |
23.16.4 [ratio.arithmetic] |
Support for multiple arguments |
Yes |
|
|
935 |
LEWG |
23.17.7 [time.clock] |
clock error handling needs to be specified |
Yes |
|
|
2780 |
LEWG |
24.4 [string.view] |
basic_string_view::copy is missing constexpr |
Yes |
2 |
|
1521 |
LEWG |
26.2.1 [container.requirements.general] |
Requirements on internal pointer representations in containers |
Yes |
|
|
1188 |
LEWG |
26.2.7 [unord.req] |
Unordered containers should have a minimum load factor as well as a maximum |
Yes |
|
|
2831 |
LEWG |
26.2.7 [unord.req] |
Equality can be defined when Hash function objects have different behaviour |
Yes |
|
|
1052 |
LEWG |
27.5.1.3.5 [reverse.iter.opref] |
reverse_iterator::operator-> should also support smart pointers |
Yes |
|
2775 |
2471 |
LEWG |
28.6.1 [alg.copy] |
copy_n's number of InputIterator increments unspecified |
No |
3 |
|
2600 |
LEWG |
30.5.3.5 [ios.base.storage] |
ios_base must store inaccessible iostate flags |
No |
|
|
1203 |
LEWG |
30.7.5.5 [ostream.rvalue] |
More useful rvalue stream insertion |
Yes |
|
|
1150 |
LEWG |
30.9.5 [fstream] |
wchar_t, char16_t and char32_t filenames |
No |
|
|
1396 |
LEWG |
31.8 [re.regex] |
regex should support allocators |
No |
|
1451 |
1459 |
LEWG |
32.4 [atomics.order] |
Overlapping evaluations are allowed |
No |
|
1458 |
2095 |
LEWG |
33.6.6 [futures.promise] |
promise and packaged_task missing constructors needed for uses-allocator construction |
Yes |
4 |
|
1238 |
LEWG |
99 [algorithms] |
defining algorithms taking iterator for range |
No |
|
|
1282 |
LEWG |
99 [algorithms] |
A proposal to add std::split algorithm |
Yes |
|
|
1242 |
LEWG |
99 [containers] |
Enable SCARY iterators |
Yes |
|
|
423 |
LEWG |
99 [input.output] |
effects of negative streamsize in iostreams |
Yes |
|
|
708 |
LEWG |
99 [localization] |
Locales need to be per thread and updated for POSIX changes |
No |
|
|
523 |
LEWG |
99 [re] |
regex case-insensitive character ranges are unimplementable as specified |
No |
|
|
2417 |
LEWG |
99 [fund.ts.v2::optional.relops] |
[fund.ts.v2] std::experimental::optional::operator< and LessThanComparable requirement |
No |
|
|