Issue |
Status |
Section |
Title |
Proposed Resolution |
Priority |
Duplicates |
2146 |
Open |
17.6.3.1 [utility.arg.requirements] |
Are reference types Copy/Move-Constructible/Assignable or Destructible? |
No |
2 |
|
2152 |
Open |
17.6.3.2 [swappable.requirements] |
Instances of standard container types are not swappable |
No |
2 |
|
2468 |
New |
17.6.4.9 [res.on.arguments] |
Self-move-assignment of library types |
No |
2 |
|
2422 |
Open |
18.3.2.4 [numeric.limits.members] |
std::numeric_limits<T>::is_modulo description: "most machines" errata |
Yes |
2 |
|
2368 |
New |
18.6.1 [new.delete] |
Replacing global operator new |
No |
2 |
|
2398 |
Open |
18.7.1 [type.info] |
type_info's destructor shouldn't be required to be virtual |
Yes |
2 |
|
2432 |
EWG |
18.9 [support.initlist] |
initializer_list assignability |
Yes |
2 |
|
2241 |
Open |
18.10 [support.runtime] |
<cstdalign> and #define of alignof |
No |
2 |
|
2234 |
Open |
19.3 [assertions] |
assert() should allow usage in constant expressions |
Yes |
2 |
|
2153 |
Open |
20.2.2 [utility.swap] |
Narrowing of the non-member swap contract |
No |
2 |
|
2051 |
Open |
20.4.2 [tuple.tuple] |
Explicit tuple constructors for more than one parameter |
No |
2 |
|
2312 |
Open |
20.4.2.1 [tuple.cnstr] |
tuple's constructor constraints need to be phrased more precisely |
Yes |
2 |
|
2089 |
EWG |
20.7.9.1 [allocator.members] |
std::allocator::construct should use uniform initialization |
Yes |
2 |
|
2070 |
Open |
20.8.2.2.6 [util.smartptr.shared.create] |
allocate_shared should use allocator_traits<A>::construct |
Yes |
2 |
|
2450 |
Open |
20.9.6 [comparisons] |
(greater|less|greater_equal|less_equal)<void> do not yield a total order for pointers |
Yes |
2 |
|
2393 |
Open |
20.9.12.2 [func.wrap.func] |
std::function's Callable definition is broken |
Yes |
2 |
|
2062 |
Open |
20.9.12.2 [func.wrap.func] |
Effect contradictions w/o no-throw guarantee of std::function swaps |
No |
2 |
|
2465 |
New |
20.10.7.6 [meta.trans.other] |
SFINAE-friendly common_type is nearly impossible to specialize
correctly and regresses key functionality |
No |
2 |
|
2460 |
New |
20.10.7.6 [meta.trans.other] |
LWG issue 2408 and value categories |
No |
2 |
|
2307 |
Open |
23 [containers] |
Should the Standard Library use explicit only when necessary? |
No |
2 |
|
2261 |
New |
23.2 [container.requirements] |
Are containers required to use their 'pointer' type internally? |
No |
2 |
|
2321 |
Open |
23.2.1 [container.requirements.general] |
Moving containers should (usually) be required to preserve iterators |
Yes |
2 |
|
2158 |
New |
23.3.6.3 [vector.capacity] |
Conditional copy/move in std::vector |
No |
2 |
|
2223 |
Open |
23.3.6.3 [vector.capacity] |
shrink_to_fit effect on iterator validity |
Yes |
2 |
|
2164 |
New |
23.3.6.5 [vector.modifiers] |
What are the semantics of vector.emplace(vector.begin(), vector.back())? |
No |
2 |
|
2161 |
New |
23.4 [associative] |
const equivalence of std::map |
No |
2 |
|
2242 |
New |
25.3.1 [alg.copy] |
[uninitialized_]copy_n() defect |
No |
2 |
|
2326 |
New |
26.5.1.1 [rand.req.genl] |
uniform_int_distribution<unsigned char> should be permitted |
Yes |
2 |
|
2352 |
New |
26.5.7.1 [rand.util.seedseq] |
Is a default-constructed std::seed_seq intended to produce a predictable .generate()? |
No |
2 |
|
2294 |
Open |
26.8 [c.math] |
<cstdlib> should declare abs(double) |
Yes |
2 |
|
2192 |
Open |
26.8 [c.math] |
Validity and return type of std::abs(0u) is unclear |
Yes |
2 |
|
2273 |
Open |
28.11.2 [re.alg.match] |
regex_match ambiguity |
No |
2 |
|
2220 |
New |
28.12.2.2 [re.tokiter.comp] |
Under-specification of operator== for regex_token_iterator |
No |
2 |
|
2343 |
New |
28.13 [re.grammar] |
Is the value of the ECMA-262 RegExp object's multiline property really false? |
No |
2 |
|
2424 |
Review |
29.5 [atomics.types.generic] |
29.5 should state that atomic types are not trivially copyable |
Yes |
2 |
|
2201 |
New |
C.5 [diff.library] |
Missing macro entries from C standard library |
No |
2 |
|
Issue |
Status |
Section |
Title |
Proposed Resolution |
Priority |
Duplicates |
1173 |
Open |
17 [library] |
"Equivalence" wishy-washiness |
No |
3 |
|
2392 |
New |
17.3 [defns.ntcts] |
"character type" is used but not defined |
No |
3 |
|
2136 |
Open |
17.5.1 [structure] |
Postconditions vs. exceptions |
No |
3 |
|
2292 |
New |
17.5.1.4 [structure.specifications] |
Find a better phrasing for "shall not participate in overload resolution" |
No |
3 |
|
2114 |
Open |
17.6.3.3 [nullablepointer.requirements] |
Incorrect "contextually convertible to bool" requirements |
Yes |
3 |
|
2178 |
Open |
17.6.3.5 [allocator.requirements] |
Allocator requirement changes not mentioned Annex C |
No |
3 |
|
2260 |
Open |
17.6.3.5 [allocator.requirements] |
Missing requirement for Allocator::pointer |
Yes |
3 |
|
2461 |
New |
17.6.3.5 [allocator.requirements] |
Interaction between allocators and container exception safety guarantees |
No |
3 |
|
2414 |
Open |
17.6.5.8 [reentrancy] |
Member function reentrancy should be implementation-defined |
Yes |
3 |
|
2303 |
New |
18.6.1.3 [new.delete.placement] |
Explicit instantiation of std::vector<UserType> broken? |
No |
3 |
|
2088 |
Open |
18.8.3 [exception.terminate] |
std::terminate problem |
No |
3 |
|
2453 |
New |
18.9 [support.initlist] |
[iterator.range] and now [iterator.container] aren't available via <initializer_list> |
No |
3 |
|
2289 |
Open |
20.3.2 [pairs.pair] |
constexpr guarantees of defaulted functions still insufficient |
Yes |
3 |
|
2472 |
New |
20.4.2.7 [tuple.rel] |
Heterogeneous comparisons in the standard library can result in ambiguities |
No |
3 |
|
2348 |
Open |
20.6 [template.bitset] |
charT('1') is not the wide equivalent of '1' |
Yes |
3 |
|
2421 |
New |
20.7.5 [ptr.align] |
Non-specification of handling zero size in std::align [ptr.align] |
No |
3 |
|
2296 |
Review |
20.7.12.1 [specialized.addressof] |
std::addressof should be constexpr |
Yes |
3 |
|
2262 |
Open |
20.8.1.2 [unique.ptr.single] |
Requirement for unique_ptr<T>::get_deleter()(p) to be able to destroy the unique_ptr |
Yes |
3 |
|
2179 |
Open |
20.8.2.5 [util.smartptr.enab] |
enable_shared_from_this and construction from raw pointers |
No |
3 |
|
2491 |
New |
20.9.6 [comparisons] |
std::less<T*> in constant expression |
No |
3 |
|
2370 |
Open |
20.9.12.2 [func.wrap.func] |
Operations involving type-erased allocators should not be noexcept in std::function |
Yes |
3 |
|
2290 |
New |
20.10 [meta] |
Top-level "SFINAE"-based constraints should get a separate definition in Clause 17 |
Yes |
3 |
|
2116 |
Open |
20.10.4.3 [meta.unary.prop] |
std::swap noexcept(what?) |
No |
3 |
|
2077 |
Open |
20.10.4.3 [meta.unary.prop] |
Further incomplete constraints for type traits |
No |
3 |
|
2358 |
New |
20.10.4.3 [meta.unary.prop] |
Apparently-bogus definition of is_empty type trait |
No |
3 |
|
2383 |
Open |
20.12.5.8 [time.duration.literals] |
Overflow cannot be ill-formed for chrono::duration integer literals |
No |
3 |
|
2151 |
Open |
21.4.1 [string.require] |
basic_string<>::swap semantics ignore allocators |
No |
3 |
|
2402 |
Open |
21.4.2 [string.cons] |
basic_string(const basic_string& str, size_type pos, size_type n = npos) shouldn't use Allocator() |
Yes |
3 |
|
2475 |
New |
21.4.5 [string.access] |
Allow overwriting of std::basic_string terminator with charT() to allow
cleaner interoperation with legacy APIs |
Yes |
3 |
|
2238 |
Open |
21.8 [c.strings] |
Problematic iterator-pair constructor of containers |
No |
3 |
|
2295 |
New |
22.3.1.2 [locale.cons] |
Locale name when the provided Facet is a nullptr |
No |
3 |
|
2394 |
New |
22.3.1.3 [locale.members] |
locale::name specification unclear — what is implementation-defined? |
No |
3 |
|
2381 |
New |
22.4.2.1.2 [facet.num.get.virtuals] |
Inconsistency in parsing floating point numbers |
No |
3 |
|
2254 |
Open |
23.2.1 [container.requirements.general] |
[arrays.ts] Is dynarray an allocator-aware container? |
Yes |
3 |
|
2206 |
Open |
23.2.3 [sequence.reqmts] |
Inaccuracy in initializer_list constructor requirements |
No |
3 |
|
2227 |
Open |
23.2.4 [associative.reqmts] |
Stateful comparison objects in associative containers |
Yes |
3 |
|
2215 |
Open |
23.2.4 [associative.reqmts] |
(unordered) associative container functors should be CopyConstructible |
No |
3 |
|
2362 |
New |
23.2.4 [associative.reqmts] |
unique, associative emplace() should not move/copy the mapped_type constructor arguments when no insertion happens |
No |
3 |
|
2198 |
Open |
23.2.5 [unord.req] |
max_load_factor(z) makes no strong guarantees, but bans useful behavior |
No |
3 |
|
1175 |
Open |
23.2.5 [unord.req] |
unordered complexity |
Yes |
3 |
|
2199 |
Open |
23.2.5 [unord.req] |
unordered containers are required to have an initial max load factor of 1.0 |
No |
3 |
|
2189 |
Open |
23.2.5.1 [unord.req.except] |
Throwing swap breaks unordered containers' state |
No |
3 |
|
2335 |
New |
23.3.2 [array] |
array<array<int, 3>, 4> should be layout-compatible with int[4][3] |
No |
3 |
|
2157 |
Open |
23.3.2.8 [array.zero] |
How does std::array<T,0> initialization work when T is not default-constructible? |
Yes |
3 |
|
2256 |
New |
23.3.6.5 [vector.modifiers] |
On vector iterator invalidation |
No |
3 |
|
2449 |
New |
23.3.6.5 [vector.modifiers] |
vector::insert invalidates end()? |
No |
3 |
|
2375 |
New |
24.2.1 [iterator.requirements.general] |
Is [iterator.requirements.general]/9 too broadly applied? |
No |
3 |
|
2035 |
Open |
24.2.4 [output.iterators] |
Output iterator requirements are broken |
Yes |
3 |
|
2038 |
Open |
24.2.4 [output.iterators] |
Missing definition for incrementable iterator |
No |
3 |
|
2208 |
New |
24.5.1 [reverse.iterators] |
std::reverse_iterator should be a literal type |
No |
3 |
|
2366 |
New |
24.6.3 [istreambuf.iterator] |
istreambuf_iterator end-of-stream equality |
No |
3 |
|
2277 |
Open |
24.7 [iterator.range] |
[arrays.ts] <dynarray> is missing in 24.7/1 |
Yes |
3 |
|
2457 |
New |
24.7 [iterator.range] |
std::begin() and std::end() do not support multi-dimensional arrays correctly |
No |
3 |
|
2471 |
New |
25.3.1 [alg.copy] |
copy_n's number of InputIterator increments unspecified |
No |
3 |
|
2267 |
New |
25.4.1.4 [partial.sort.copy] |
partial_sort_copy underspecified for ranges of two different types |
No |
3 |
|
2166 |
New |
25.4.6 [alg.heap.operations] |
Heap property underspecified? |
No |
3 |
|
2444 |
Open |
25.4.6.4 [sort.heap] |
Inconsistent complexity for std::sort_heap |
Yes |
3 |
|
2349 |
Open |
27.7.2.2.1 [istream.formatted.reqmts] |
Clarify input/output function rethrow behavior |
Yes |
3 |
|
2243 |
New |
27.7.2.3 [istream.unformatted] |
istream::putback problem |
No |
3 |
|
2328 |
Review |
27.7.2.6 [istream.rvalue] |
Rvalue stream extraction should use perfect forwarding |
Yes |
3 |
|
2221 |
New |
27.7.3 [output.streams] |
No formatted output operator for nullptr |
No |
3 |
|
2121 |
New |
27.8.5.1 [stringstream.cons] |
app for string streams |
No |
3 |
|
2490 |
New |
28 [re] |
<regex> needs lots of noexcept |
No |
3 |
|
2431 |
New |
28.3 [re.req] |
Missing regular expression traits requirements |
No |
3 |
|
2331 |
Open |
28.5.1 [re.synopt] |
regex_constants::collate's effects are inaccurately summarized |
Yes |
3 |
|
2338 |
Open |
28.7 [re.traits] |
[re.traits]/7 expects of locale facets something not guaranteed by [locale.facet]/4 |
Yes |
3 |
|
2137 |
Open |
28.8.3 [re.regex.assign] |
Misleadingly constrained post-condition in the presence of exceptions |
Yes |
3 |
|
2195 |
Open |
28.10 [re.results] |
Missing constructors for match_results |
Yes |
3 |
|
2184 |
New |
28.10.1 [re.results.const] |
Muddled allocator requirements for match_results assignments |
No |
3 |
|
2183 |
New |
28.10.1 [re.results.const] |
Muddled allocator requirements for match_results constructors |
No |
3 |
|
2216 |
New |
28.11.4 [re.alg.replace] |
regex_replace(basic_string) allocator handling |
No |
3 |
|
Issue |
Status |
Section |
Title |
Proposed Resolution |
Priority |
Duplicates |
2139 |
Open |
17.6.4.2.1 [namespace.std] |
What is a user-defined type? |
Yes |
4 |
|
2248 |
New |
18.3.2 [limits] |
numeric_limits::is_iec559 misnamed |
No |
4 |
|
2493 |
New |
18.9 [support.initlist] |
initializer_list supports incomplete classes |
No |
4 |
|
2155 |
Open |
18.10 [support.runtime] |
Macro __bool_true_false_are_defined should be removed |
Yes |
4 |
|
2413 |
New |
19.3 [assertions] |
assert macro is overconstrained |
No |
4 |
|
2318 |
New |
21.4 [basic.string] |
basic_string's wording has confusing relics from the copy-on-write era |
No |
4 |
|
2237 |
New |
21.8 [c.strings] |
<cuchar> macros |
No |
4 |
|
2481 |
New |
22.3.3.2.2 [conversions.string] |
wstring_convert should be more precise regarding "byte-error string" etc. |
No |
4 |
|
2478 |
New |
22.3.3.2.2 [conversions.string] |
Unclear how wstring_convert uses cvtstate |
No |
4 |
|
2479 |
New |
22.3.3.2.3 [conversions.buffer] |
Unclear how wbuffer_convert uses cvtstate |
No |
4 |
|
2480 |
New |
22.3.3.2.3 [conversions.buffer] |
Error handling of wbuffer_convert unclear |
No |
4 |
|
2269 |
New |
23.2.1 [container.requirements.general] |
Container iterators and argument-dependent lookup |
No |
4 |
|
2310 |
Open |
23.3.2.1 [array.overview] |
Public exposition only member in std::array |
No |
4 |
|
1213 |
Open |
24.2 [iterator.requirements] |
Meaning of valid and singular iterator underspecified |
No |
4 |
|
2173 |
New |
25 [algorithms] |
The meaning of operator + in the description of the algorithms |
Yes |
4 |
|
2154 |
New |
26.5.1.3 [rand.req.urng] |
What exactly does compile-time complexity imply? |
No |
4 |
|
2423 |
New |
26.6.5 [template.slice.array] |
Missing specification slice_array, gslice_array, mask_array, indirect_array copy constructor |
Yes |
4 |
|
2115 |
Open |
26.6.8 [template.mask.array] |
Undefined behaviour for valarray assignments with mask_array index? |
No |
4 |
|
2474 |
New |
26.8 [c.math] |
<cmath> functions unfriendly to integral_constant arguments |
Yes |
4 |
|
2214 |
Open |
27.5.5.2 [basic.ios.cons] |
Clarify basic_ios::init call restrictions |
Yes |
4 |
|
2342 |
New |
27.7.3.1 [ostream] |
User conversion to wchar_t const* or to wchar_t not invoked for operator<< |
Yes |
4 |
|
2286 |
New |
27.8.2.4 [stringbuf.virtuals] |
stringbuf::underflow() underspecified |
Yes |
4 |
|
2191 |
New |
28.10.1 [re.results.const] |
Incorrect specification of match_results(match_results&&) |
No |
4 |
|
2095 |
Open |
30.6.5 [futures.promise] |
promise and packaged_task missing constructors needed for uses-allocator construction |
Yes |
4 |
|
2202 |
Deferred |
30.6.8 [futures.async] |
Missing allocator support by async |
No |
4 |
|
Issue |
Status |
Section |
Title |
Proposed Resolution |
Priority |
Duplicates |
2495 |
New |
20.8.2.2.1 [util.smartptr.shared.const] |
There is no such thing as an Exception Safety element |
Yes |
|
|
2502 |
New |
20.9.12.2 [func.wrap.func] |
std::function does not use allocator::construct |
No |
|
|
2501 |
New |
20.9.12.2 [func.wrap.func] |
std::function requires POCMA/POCCA |
No |
|
|
2452 |
Core |
20.10 [meta] |
is_constructible, etc. and default arguments |
No |
|
|
2496 |
New |
20.10.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 |
|
|
2499 |
New |
27.7.2.2.3 [istream::extractors] |
operator>>(basic_istream&, CharT*) makes it hard to avoid buffer overflows |
No |
|
|
2498 |
New |
27.7.2.6 [istream.rvalue] |
operator>>(basic_istream&&, T&&) returns basic_istream&, but should probably return
basic_istream&& |
No |
|
|
2497 |
New |
27.7.3.4 [ostream::sentry] |
Use of uncaught_exception() |
No |
|
|
2503 |
New |
28.5.1 [re.synopt] |
multiline option should be added to syntax_option_type |
Yes |
|
|
2265 |
Open |
29.3 [atomics.order] |
29.3p9 appears to rule out some acceptable executions |
No |
|
|
2441 |
Open |
29.5 [atomics.types.generic] |
Exact-width atomic typedefs should be provided |
Yes |
|
|
2165 |
Core |
29.5 [atomics.types.generic] |
std::atomic<X> requires X to be nothrow default constructible |
No |
|
|
2426 |
Open |
29.6.5 [atomics.types.operations.req] |
Issue about compare_exchange |
Yes |
|
|
2379 |
Open |
30.2.3 [thread.req.native] |
Obtaining native handle of the current thread |
Yes |
|
|
2309 |
Open |
30.4.1.2 [thread.mutex.requirements.mutex] |
mutex::lock() should not throw device_or_resource_busy |
Yes |
|
|
2363 |
Open |
30.4.1.5.1 [thread.sharedtimedmutex.class] |
Defect in 30.4.1.4.1 [thread.sharedtimedmutex.class] |
Yes |
|
|
2276 |
Open |
30.6 [futures] |
Missing requirement on std::promise::set_exception |
Yes |
|
|
2245 |
Open |
30.6.9.1 [futures.task.members] |
packaged_task::reset() memory allocation |
No |
|
|
2500 |
New |
X [memory.smartptr.shared.obs] |
[fund.ts.v2] fundts.memory.smartptr.shared.obs/6 should apply to cv-unqualified void |
Yes |
|
|