136ac495dSmrg<?xml version="1.0" encoding="UTF-8" standalone="no"?> 236ac495dSmrg<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Bugs</title><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="status.html" title="Chapter 1. Status" /><link rel="prev" href="license.html" title="License" /><link rel="next" href="setup.html" title="Chapter 2. Setup" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Bugs</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="license.html">Prev</a> </td><th width="60%" align="center">Chapter 1. Status</th><td width="20%" align="right"> <a accesskey="n" href="setup.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.intro.status.bugs"></a>Bugs</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.status.bugs.impl"></a>Implementation Bugs</h3></div></div></div><p> 336ac495dSmrg Information on known bugs, details on efforts to fix them, and 4a2dc1f3fSmrg fixed bugs are all available as part of the <a class="link" href="https://gcc.gnu.org/bugs/" target="_top">GCC bug tracking system</a>, 5a2dc1f3fSmrg under the component <span class="quote">“<span class="quote">libstdc++</span>”</span>. 636ac495dSmrg </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.status.bugs.iso"></a>Standard Bugs</h3></div></div></div><p> 736ac495dSmrg Everybody's got issues. Even the C++ Standard Library. 836ac495dSmrg </p><p> 936ac495dSmrg The Library Working Group, or LWG, is the ISO subcommittee responsible 1036ac495dSmrg for making changes to the library. They periodically publish an 1136ac495dSmrg Issues List containing problems and possible solutions. As they reach 1236ac495dSmrg a consensus on proposed solutions, we often incorporate the solution. 1336ac495dSmrg </p><p> 1436ac495dSmrg Here are the issues which have resulted in code changes to the library. 15a2dc1f3fSmrg The links are to the full version of the Issues List. 16a2dc1f3fSmrg You can read the full version online 1736ac495dSmrg at the <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/" target="_top">ISO C++ 1836ac495dSmrg Committee homepage</a>. 1936ac495dSmrg </p><p> 2036ac495dSmrg If a DR is not listed here, we may simply not have gotten to 21a2dc1f3fSmrg it yet; feel free to submit a patch. Search the 22a2dc1f3fSmrg <code class="filename">include</code> and 23a2dc1f3fSmrg <code class="filename">src</code> 24a2dc1f3fSmrg directories for appearances of 2536ac495dSmrg <code class="constant">_GLIBCXX_RESOLVE_LIB_DEFECTS</code> for examples 2636ac495dSmrg of style. Note that we usually do not make changes to the 2736ac495dSmrg code until an issue has reached <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-active.html#DR" target="_top">DR</a> status. 28a2dc1f3fSmrg </p><div class="variablelist"><dl class="variablelist"><dt><a id="manual.bugs.dr5"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#5" target="_top">5</a>: 2936ac495dSmrg <span class="emphasis"><em>string::compare specification questionable</em></span> 3036ac495dSmrg </span></dt><dd><p>This should be two overloaded functions rather than a single function. 31a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr17"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#17" target="_top">17</a>: 3236ac495dSmrg <span class="emphasis"><em>Bad bool parsing</em></span> 3336ac495dSmrg </span></dt><dd><p>Apparently extracting Boolean values was messed up... 34a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr19"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#19" target="_top">19</a>: 3536ac495dSmrg <span class="emphasis"><em>"Noconv" definition too vague</em></span> 3636ac495dSmrg </span></dt><dd><p>If <code class="code">codecvt::do_in</code> returns <code class="code">noconv</code> there are 3736ac495dSmrg no changes to the values in <code class="code">[to, to_limit)</code>. 38a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr22"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#22" target="_top">22</a>: 3936ac495dSmrg <span class="emphasis"><em>Member open vs flags</em></span> 4036ac495dSmrg </span></dt><dd><p>Re-opening a file stream does <span class="emphasis"><em>not</em></span> clear the state flags. 41a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr23"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#23" target="_top">23</a>: 4236ac495dSmrg <span class="emphasis"><em>Num_get overflow result</em></span> 4336ac495dSmrg </span></dt><dd><p>Implement the proposed resolution. 44a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr25"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#25" target="_top">25</a>: 4536ac495dSmrg <span class="emphasis"><em>String operator<< uses width() value wrong</em></span> 4636ac495dSmrg </span></dt><dd><p>Padding issues. 47a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr48"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#48" target="_top">48</a>: 4836ac495dSmrg <span class="emphasis"><em>Use of non-existent exception constructor</em></span> 4936ac495dSmrg </span></dt><dd><p>An instance of <code class="code">ios_base::failure</code> is constructed instead. 50a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr49"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#49" target="_top">49</a>: 5136ac495dSmrg <span class="emphasis"><em>Underspecification of ios_base::sync_with_stdio</em></span> 5236ac495dSmrg </span></dt><dd><p>The return type is the <span class="emphasis"><em>previous</em></span> state of synchronization. 53a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr50"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#50" target="_top">50</a>: 5436ac495dSmrg <span class="emphasis"><em>Copy constructor and assignment operator of ios_base</em></span> 5536ac495dSmrg </span></dt><dd><p>These members functions are declared <code class="code">private</code> and are 5636ac495dSmrg thus inaccessible. Specifying the correct semantics of 5736ac495dSmrg "copying stream state" was deemed too complicated. 58a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr60"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#60" target="_top">60</a>: 5936ac495dSmrg <span class="emphasis"><em>What is a formatted input function?</em></span> 6036ac495dSmrg </span></dt><dd><p>This DR made many widespread changes to <code class="code">basic_istream</code> 6136ac495dSmrg and <code class="code">basic_ostream</code> all of which have been implemented. 62a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr63"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#63" target="_top">63</a>: 6336ac495dSmrg <span class="emphasis"><em>Exception-handling policy for unformatted output</em></span> 6436ac495dSmrg </span></dt><dd><p>Make the policy consistent with that of formatted input, unformatted 6536ac495dSmrg input, and formatted output. 66a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr68"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#68" target="_top">68</a>: 6736ac495dSmrg <span class="emphasis"><em>Extractors for char* should store null at end</em></span> 6836ac495dSmrg </span></dt><dd><p>And they do now. An editing glitch in the last item in the list of 6936ac495dSmrg [27.6.1.2.3]/7. 70a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr74"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#74" target="_top">74</a>: 7136ac495dSmrg <span class="emphasis"><em>Garbled text for codecvt::do_max_length</em></span> 7236ac495dSmrg </span></dt><dd><p>The text of the standard was gibberish. Typos gone rampant. 73a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr75"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#75" target="_top">75</a>: 7436ac495dSmrg <span class="emphasis"><em>Contradiction in codecvt::length's argument types</em></span> 7536ac495dSmrg </span></dt><dd><p>Change the first parameter to <code class="code">stateT&</code> and implement 7636ac495dSmrg the new effects paragraph. 77a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr83"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#83" target="_top">83</a>: 7836ac495dSmrg <span class="emphasis"><em>string::npos vs. string::max_size()</em></span> 7936ac495dSmrg </span></dt><dd><p>Safety checks on the size of the string should test against 8036ac495dSmrg <code class="code">max_size()</code> rather than <code class="code">npos</code>. 81a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr90"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#90" target="_top">90</a>: 8236ac495dSmrg <span class="emphasis"><em>Incorrect description of operator>> for strings</em></span> 8336ac495dSmrg </span></dt><dd><p>The effect contain <code class="code">isspace(c,getloc())</code> which must be 8436ac495dSmrg replaced by <code class="code">isspace(c,is.getloc())</code>. 85a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr91"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#91" target="_top">91</a>: 8636ac495dSmrg <span class="emphasis"><em>Description of operator>> and getline() for string<> 8736ac495dSmrg might cause endless loop</em></span> 8836ac495dSmrg </span></dt><dd><p>They behave as a formatted input function and as an unformatted 8936ac495dSmrg input function, respectively (except that <code class="code">getline</code> is 9036ac495dSmrg not required to set <code class="code">gcount</code>). 91a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr103"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#103" target="_top">103</a>: 9236ac495dSmrg <span class="emphasis"><em>set::iterator is required to be modifiable, but this allows 9336ac495dSmrg modification of keys.</em></span> 9436ac495dSmrg </span></dt><dd><p>For associative containers where the value type is the same as 9536ac495dSmrg the key type, both <code class="code">iterator</code> and <code class="code">const_iterator 9636ac495dSmrg </code> are constant iterators. 97a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr109"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#109" target="_top">109</a>: 9836ac495dSmrg <span class="emphasis"><em>Missing binders for non-const sequence elements</em></span> 9936ac495dSmrg </span></dt><dd><p>The <code class="code">binder1st</code> and <code class="code">binder2nd</code> didn't have an 10036ac495dSmrg <code class="code">operator()</code> taking a non-const parameter. 101a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr110"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#110" target="_top">110</a>: 10236ac495dSmrg <span class="emphasis"><em>istreambuf_iterator::equal not const</em></span> 10336ac495dSmrg </span></dt><dd><p>This was not a const member function. Note that the DR says to 10436ac495dSmrg replace the function with a const one; we have instead provided an 10536ac495dSmrg overloaded version with identical contents. 106a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr117"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#117" target="_top">117</a>: 10736ac495dSmrg <span class="emphasis"><em>basic_ostream uses nonexistent num_put member functions</em></span> 10836ac495dSmrg </span></dt><dd><p><code class="code">num_put::put()</code> was overloaded on the wrong types. 109a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr118"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#118" target="_top">118</a>: 11036ac495dSmrg <span class="emphasis"><em>basic_istream uses nonexistent num_get member functions</em></span> 11136ac495dSmrg </span></dt><dd><p>Same as 117, but for <code class="code">num_get::get()</code>. 112a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr129"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#129" target="_top">129</a>: 11336ac495dSmrg <span class="emphasis"><em>Need error indication from seekp() and seekg()</em></span> 11436ac495dSmrg </span></dt><dd><p>These functions set <code class="code">failbit</code> on error now. 115a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr130"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#130" target="_top">130</a>: 11636ac495dSmrg <span class="emphasis"><em>Return type of container::erase(iterator) differs for associative containers</em></span> 11736ac495dSmrg </span></dt><dd><p>Make member <code class="code">erase</code> return iterator for <code class="code">set</code>, <code class="code">multiset</code>, <code class="code">map</code>, <code class="code">multimap</code>. 118a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr136"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#136" target="_top">136</a>: 11936ac495dSmrg <span class="emphasis"><em>seekp, seekg setting wrong streams?</em></span> 12036ac495dSmrg </span></dt><dd><p><code class="code">seekp</code> should only set the output stream, and 12136ac495dSmrg <code class="code">seekg</code> should only set the input stream. 122a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr167"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#167" target="_top">167</a>: 12336ac495dSmrg <span class="emphasis"><em>Improper use of traits_type::length()</em></span> 12436ac495dSmrg </span></dt><dd><p><code class="code">op<<</code> with a <code class="code">const char*</code> was 12536ac495dSmrg calculating an incorrect number of characters to write. 126a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr169"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#169" target="_top">169</a>: 12736ac495dSmrg <span class="emphasis"><em>Bad efficiency of overflow() mandated</em></span> 12836ac495dSmrg </span></dt><dd><p>Grow efficiently the internal array object. 129a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr171"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#171" target="_top">171</a>: 13036ac495dSmrg <span class="emphasis"><em>Strange seekpos() semantics due to joint position</em></span> 13136ac495dSmrg </span></dt><dd><p>Quite complex to summarize... 132a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr181"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#181" target="_top">181</a>: 13336ac495dSmrg <span class="emphasis"><em>make_pair() unintended behavior</em></span> 13436ac495dSmrg </span></dt><dd><p>This function used to take its arguments as reference-to-const, now 13536ac495dSmrg it copies them (pass by value). 136a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr195"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#195" target="_top">195</a>: 13736ac495dSmrg <span class="emphasis"><em>Should basic_istream::sentry's constructor ever set eofbit?</em></span> 13836ac495dSmrg </span></dt><dd><p>Yes, it can, specifically if EOF is reached while skipping whitespace. 139c0a68be4Smrg </p></dd><dt><a id="manual.bugs.dr206"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#206" target="_top">206</a>: 140c0a68be4Smrg <span class="emphasis"><em><code class="code">operator new(size_t, nothrow)</code> may become 141c0a68be4Smrg unlinked to ordinary <code class="code">operator new</code> if ordinary 142c0a68be4Smrg version replaced 143c0a68be4Smrg </em></span> 144c0a68be4Smrg </span></dt><dd><p>The <code class="code">nothrow</code> forms of new and delete were 145c0a68be4Smrg changed to call the throwing forms, handling any exception by 146c0a68be4Smrg catching it and returning a null pointer. 147a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr211"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#211" target="_top">211</a>: 14836ac495dSmrg <span class="emphasis"><em>operator>>(istream&, string&) doesn't set failbit</em></span> 14936ac495dSmrg </span></dt><dd><p>If nothing is extracted into the string, <code class="code">op>></code> now 15036ac495dSmrg sets <code class="code">failbit</code> (which can cause an exception, etc., etc.). 151a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr214"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#214" target="_top">214</a>: 15236ac495dSmrg <span class="emphasis"><em>set::find() missing const overload</em></span> 15336ac495dSmrg </span></dt><dd><p>Both <code class="code">set</code> and <code class="code">multiset</code> were missing 15436ac495dSmrg overloaded find, lower_bound, upper_bound, and equal_range functions 15536ac495dSmrg for const instances. 156a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr231"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#231" target="_top">231</a>: 15736ac495dSmrg <span class="emphasis"><em>Precision in iostream?</em></span> 15836ac495dSmrg </span></dt><dd><p>For conversion from a floating-point type, <code class="code">str.precision()</code> 15936ac495dSmrg is specified in the conversion specification. 160a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr233"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#233" target="_top">233</a>: 16136ac495dSmrg <span class="emphasis"><em>Insertion hints in associative containers</em></span> 16236ac495dSmrg </span></dt><dd><p>Implement N1780, first check before then check after, insert as close 16336ac495dSmrg to hint as possible. 164a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr235"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#235" target="_top">235</a>: 16536ac495dSmrg <span class="emphasis"><em>No specification of default ctor for reverse_iterator</em></span> 16636ac495dSmrg </span></dt><dd><p>The declaration of <code class="code">reverse_iterator</code> lists a default constructor. 16736ac495dSmrg However, no specification is given what this constructor should do. 168a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr241"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#241" target="_top">241</a>: 16936ac495dSmrg <span class="emphasis"><em>Does unique_copy() require CopyConstructible and Assignable?</em></span> 17036ac495dSmrg </span></dt><dd><p>Add a helper for forward_iterator/output_iterator, fix the existing 17136ac495dSmrg one for input_iterator/output_iterator to not rely on Assignability. 172a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr243"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#243" target="_top">243</a>: 17336ac495dSmrg <span class="emphasis"><em>get and getline when sentry reports failure</em></span> 17436ac495dSmrg </span></dt><dd><p>Store a null character only if the character array has a non-zero size. 175a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr251"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#251" target="_top">251</a>: 17636ac495dSmrg <span class="emphasis"><em>basic_stringbuf missing allocator_type</em></span> 17736ac495dSmrg </span></dt><dd><p>This nested typedef was originally not specified. 178a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr253"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#253" target="_top">253</a>: 17936ac495dSmrg <span class="emphasis"><em>valarray helper functions are almost entirely useless</em></span> 18036ac495dSmrg </span></dt><dd><p>Make the copy constructor and copy-assignment operator declarations 18136ac495dSmrg public in gslice_array, indirect_array, mask_array, slice_array; provide 18236ac495dSmrg definitions. 183a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr265"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#265" target="_top">265</a>: 18436ac495dSmrg <span class="emphasis"><em>std::pair::pair() effects overly restrictive</em></span> 18536ac495dSmrg </span></dt><dd><p>The default ctor would build its members from copies of temporaries; 18636ac495dSmrg now it simply uses their respective default ctors. 187a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr266"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#266" target="_top">266</a>: 18836ac495dSmrg <span class="emphasis"><em>bad_exception::~bad_exception() missing Effects clause</em></span> 18936ac495dSmrg </span></dt><dd><p>The <code class="code">bad_</code>* classes no longer have destructors (they 19036ac495dSmrg are trivial), since no description of them was ever given. 191a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr271"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#271" target="_top">271</a>: 19236ac495dSmrg <span class="emphasis"><em>basic_iostream missing typedefs</em></span> 19336ac495dSmrg </span></dt><dd><p>The typedefs it inherits from its base classes can't be used, since 19436ac495dSmrg (for example) <code class="code">basic_iostream<T>::traits_type</code> is ambiguous. 195a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr275"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#275" target="_top">275</a>: 19636ac495dSmrg <span class="emphasis"><em>Wrong type in num_get::get() overloads</em></span> 19736ac495dSmrg </span></dt><dd><p>Similar to 118. 198a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr280"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#280" target="_top">280</a>: 19936ac495dSmrg <span class="emphasis"><em>Comparison of reverse_iterator to const reverse_iterator</em></span> 20036ac495dSmrg </span></dt><dd><p>Add global functions with two template parameters. 20136ac495dSmrg (NB: not added for now a templated assignment operator) 202a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr292"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#292" target="_top">292</a>: 20336ac495dSmrg <span class="emphasis"><em>Effects of a.copyfmt (a)</em></span> 20436ac495dSmrg </span></dt><dd><p>If <code class="code">(this == &rhs)</code> do nothing. 205a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr300"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#300" target="_top">300</a>: 20636ac495dSmrg <span class="emphasis"><em>List::merge() specification incomplete</em></span> 20736ac495dSmrg </span></dt><dd><p>If <code class="code">(this == &x)</code> do nothing. 208a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr303"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#303" target="_top">303</a>: 20936ac495dSmrg <span class="emphasis"><em>Bitset input operator underspecified</em></span> 21036ac495dSmrg </span></dt><dd><p>Basically, compare the input character to 21136ac495dSmrg <code class="code">is.widen(0)</code> and <code class="code">is.widen(1)</code>. 212a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr305"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#305" target="_top">305</a>: 21336ac495dSmrg <span class="emphasis"><em>Default behavior of codecvt<wchar_t, char, 21436ac495dSmrg mbstate_t>::length()</em></span> 21536ac495dSmrg </span></dt><dd><p>Do not specify what <code class="code">codecvt<wchar_t, char, 21636ac495dSmrg mbstate_t>::do_length</code> must return. 217a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr328"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#328" target="_top">328</a>: 21836ac495dSmrg <span class="emphasis"><em>Bad sprintf format modifier in 21936ac495dSmrg money_put<>::do_put()</em></span> 22036ac495dSmrg </span></dt><dd><p>Change the format string to "%.0Lf". 221a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr365"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#365" target="_top">365</a>: 22236ac495dSmrg <span class="emphasis"><em>Lack of const-qualification in clause 27</em></span> 22336ac495dSmrg </span></dt><dd><p>Add const overloads of <code class="code">is_open</code>. 224a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr387"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#387" target="_top">387</a>: 22536ac495dSmrg <span class="emphasis"><em>std::complex over-encapsulated</em></span> 22636ac495dSmrg </span></dt><dd><p>Add the <code class="code">real(T)</code> and <code class="code">imag(T)</code> 22736ac495dSmrg members; in C++11 mode, also adjust the existing 22836ac495dSmrg <code class="code">real()</code> and <code class="code">imag()</code> members and 22936ac495dSmrg free functions. 230a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr389"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#389" target="_top">389</a>: 23136ac495dSmrg <span class="emphasis"><em>Const overload of valarray::operator[] returns 23236ac495dSmrg by value</em></span> 23336ac495dSmrg </span></dt><dd><p>Change it to return a <code class="code">const T&</code>. 234a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr396"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#396" target="_top">396</a>: 23536ac495dSmrg <span class="emphasis"><em>what are characters zero and one</em></span> 23636ac495dSmrg </span></dt><dd><p>Implement the proposed resolution. 237a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr402"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#402" target="_top">402</a>: 23836ac495dSmrg <span class="emphasis"><em>Wrong new expression in [some_]allocator::construct</em></span> 23936ac495dSmrg </span></dt><dd><p>Replace "new" with "::new". 24036ac495dSmrg </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-closed.html#408" target="_top">408</a>: 24136ac495dSmrg <span class="emphasis"><em> 24236ac495dSmrg Is vector<reverse_iterator<char*> > forbidden? 24336ac495dSmrg </em></span> 24436ac495dSmrg </span></dt><dd><p>Tweak the debug-mode checks in _Safe_iterator. 245a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr409"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#409" target="_top">409</a>: 24636ac495dSmrg <span class="emphasis"><em>Closing an fstream should clear the error state</em></span> 24736ac495dSmrg </span></dt><dd><p>Have <code class="code">open</code> clear the error flags. 24836ac495dSmrg </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-closed.html#431" target="_top">431</a>: 24936ac495dSmrg <span class="emphasis"><em>Swapping containers with unequal allocators</em></span> 25036ac495dSmrg </span></dt><dd><p>Implement Option 3, as per N1599. 251a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr432"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#432" target="_top">432</a>: 25236ac495dSmrg <span class="emphasis"><em>stringbuf::overflow() makes only one write position 25336ac495dSmrg available</em></span> 25436ac495dSmrg </span></dt><dd><p>Implement the resolution, beyond DR 169. 255a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr434"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#434" target="_top">434</a>: 25636ac495dSmrg <span class="emphasis"><em>bitset::to_string() hard to use</em></span> 25736ac495dSmrg </span></dt><dd><p>Add three overloads, taking fewer template arguments. 258a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr438"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#438" target="_top">438</a>: 25936ac495dSmrg <span class="emphasis"><em>Ambiguity in the "do the right thing" clause</em></span> 26036ac495dSmrg </span></dt><dd><p>Implement the resolution, basically cast less. 261a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr445"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#445" target="_top">445</a>: 26236ac495dSmrg <span class="emphasis"><em>iterator_traits::reference unspecified for some iterator categories</em></span> 26336ac495dSmrg </span></dt><dd><p>Change <code class="code">istreambuf_iterator::reference</code> in C++11 mode. 264a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr453"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#453" target="_top">453</a>: 26536ac495dSmrg <span class="emphasis"><em>basic_stringbuf::seekoff need not always fail for an empty stream</em></span> 26636ac495dSmrg </span></dt><dd><p>Don't fail if the next pointer is null and newoff is zero. 267a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr455"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#455" target="_top">455</a>: 26836ac495dSmrg <span class="emphasis"><em>cerr::tie() and wcerr::tie() are overspecified</em></span> 26936ac495dSmrg </span></dt><dd><p>Initialize cerr tied to cout and wcerr tied to wcout. 270a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr464"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#464" target="_top">464</a>: 27136ac495dSmrg <span class="emphasis"><em>Suggestion for new member functions in standard containers</em></span> 27236ac495dSmrg </span></dt><dd><p>Add <code class="code">data()</code> to <code class="code">std::vector</code> and 27336ac495dSmrg <code class="code">at(const key_type&)</code> to <code class="code">std::map</code>. 274a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr467"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#467" target="_top">467</a>: 27536ac495dSmrg <span class="emphasis"><em>char_traits::lt(), compare(), and memcmp()</em></span> 27636ac495dSmrg </span></dt><dd><p>Change <code class="code">lt</code>. 277a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr508"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#508" target="_top">508</a>: 27836ac495dSmrg <span class="emphasis"><em>Bad parameters for ranlux64_base_01</em></span> 27936ac495dSmrg </span></dt><dd><p>Fix the parameters. 28036ac495dSmrg </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-closed.html#512" target="_top">512</a>: 28136ac495dSmrg <span class="emphasis"><em>Seeding subtract_with_carry_01 from a single unsigned long</em></span> 28236ac495dSmrg </span></dt><dd><p>Construct a <code class="code">linear_congruential</code> engine and seed with it. 28336ac495dSmrg </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-closed.html#526" target="_top">526</a>: 28436ac495dSmrg <span class="emphasis"><em>Is it undefined if a function in the standard changes in 28536ac495dSmrg parameters?</em></span> 28636ac495dSmrg </span></dt><dd><p>Use &value. 287a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr538"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#538" target="_top">538</a>: 28836ac495dSmrg <span class="emphasis"><em>241 again: Does unique_copy() require CopyConstructible 28936ac495dSmrg and Assignable?</em></span> 29036ac495dSmrg </span></dt><dd><p>In case of input_iterator/output_iterator rely on Assignability of 29136ac495dSmrg input_iterator' value_type. 292a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr539"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#539" target="_top">539</a>: 29336ac495dSmrg <span class="emphasis"><em>partial_sum and adjacent_difference should mention 29436ac495dSmrg requirements</em></span> 29536ac495dSmrg </span></dt><dd><p>We were almost doing the right thing, just use std::move 29636ac495dSmrg in adjacent_difference. 297a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr541"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#541" target="_top">541</a>: 29836ac495dSmrg <span class="emphasis"><em>shared_ptr template assignment and void</em></span> 29936ac495dSmrg </span></dt><dd><p>Add an auto_ptr<void> specialization. 300a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr543"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#543" target="_top">543</a>: 30136ac495dSmrg <span class="emphasis"><em>valarray slice default constructor</em></span> 30236ac495dSmrg </span></dt><dd><p>Follow the straightforward proposed resolution. 303a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr550"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#550" target="_top">550</a>: 30436ac495dSmrg <span class="emphasis"><em>What should the return type of pow(float,int) be?</em></span> 30536ac495dSmrg </span></dt><dd><p>In C++11 mode, remove the pow(float,int), etc., signatures. 306a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr586"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#586" target="_top">586</a>: 30736ac495dSmrg <span class="emphasis"><em>string inserter not a formatted function</em></span> 30836ac495dSmrg </span></dt><dd><p>Change it to be a formatted output function (i.e. catch exceptions). 309a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr596"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#596" target="_top">596</a>: 31036ac495dSmrg <span class="emphasis"><em>27.8.1.3 Table 112 omits "a+" and "a+b" modes</em></span> 31136ac495dSmrg </span></dt><dd><p>Add the missing modes to fopen_mode. 312a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr630"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#630" target="_top">630</a>: 31336ac495dSmrg <span class="emphasis"><em>arrays of valarray</em></span> 31436ac495dSmrg </span></dt><dd><p>Implement the simple resolution. 315a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr660"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#660" target="_top">660</a>: 31636ac495dSmrg <span class="emphasis"><em>Missing bitwise operations</em></span> 31736ac495dSmrg </span></dt><dd><p>Add the missing operations. 318a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr691"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#691" target="_top">691</a>: 31936ac495dSmrg <span class="emphasis"><em>const_local_iterator cbegin, cend missing from TR1</em></span> 32036ac495dSmrg </span></dt><dd><p>In C++11 mode add cbegin(size_type) and cend(size_type) 32136ac495dSmrg to the unordered containers. 322a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr693"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#693" target="_top">693</a>: 32336ac495dSmrg <span class="emphasis"><em>std::bitset::all() missing</em></span> 32436ac495dSmrg </span></dt><dd><p>Add it, consistently with the discussion. 325a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr695"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#695" target="_top">695</a>: 32636ac495dSmrg <span class="emphasis"><em>ctype<char>::classic_table() not accessible</em></span> 32736ac495dSmrg </span></dt><dd><p>Make the member functions table and classic_table public. 328a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr696"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#696" target="_top">696</a>: 32936ac495dSmrg <span class="emphasis"><em>istream::operator>>(int&) broken</em></span> 33036ac495dSmrg </span></dt><dd><p>Implement the straightforward resolution. 331a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr761"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#761" target="_top">761</a>: 33236ac495dSmrg <span class="emphasis"><em>unordered_map needs an at() member function</em></span> 33336ac495dSmrg </span></dt><dd><p>In C++11 mode, add at() and at() const. 334a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr775"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#775" target="_top">775</a>: 33536ac495dSmrg <span class="emphasis"><em>Tuple indexing should be unsigned?</em></span> 33636ac495dSmrg </span></dt><dd><p>Implement the int -> size_t replacements. 337a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr776"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#776" target="_top">776</a>: 33836ac495dSmrg <span class="emphasis"><em>Undescribed assign function of std::array</em></span> 33936ac495dSmrg </span></dt><dd><p>In C++11 mode, remove assign, add fill. 340a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr781"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#781" target="_top">781</a>: 34136ac495dSmrg <span class="emphasis"><em>std::complex should add missing C99 functions</em></span> 34236ac495dSmrg </span></dt><dd><p>In C++11 mode, add std::proj. 343a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr809"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#809" target="_top">809</a>: 34436ac495dSmrg <span class="emphasis"><em>std::swap should be overloaded for array types</em></span> 34536ac495dSmrg </span></dt><dd><p>Add the overload. 346a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr853"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#853" target="_top">853</a>: 34736ac495dSmrg <span class="emphasis"><em>to_string needs updating with zero and one</em></span> 34836ac495dSmrg </span></dt><dd><p>Update / add the signatures. 349a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr865"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#865" target="_top">865</a>: 35036ac495dSmrg <span class="emphasis"><em>More algorithms that throw away information</em></span> 35136ac495dSmrg </span></dt><dd><p>The traditional HP / SGI return type and value is blessed 35236ac495dSmrg by the resolution of the DR. 353a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr1339"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#1339" target="_top">1339</a>: 35436ac495dSmrg <span class="emphasis"><em>uninitialized_fill_n should return the end of its range</em></span> 35536ac495dSmrg </span></dt><dd><p>Return the end of the filled range. 356a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr2021"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2021" target="_top">2021</a>: 35736ac495dSmrg <span class="emphasis"><em>Further incorrect uses of <code class="code">result_of</code></em></span> 35836ac495dSmrg </span></dt><dd><p>Correctly decay types in signature of <code class="code">std::async</code>. 359a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr2049"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2049" target="_top">2049</a>: 36036ac495dSmrg <span class="emphasis"><em><code class="code">is_destructible</code> underspecified</em></span> 36136ac495dSmrg </span></dt><dd><p>Handle non-object types. 362a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr2056"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2056" target="_top">2056</a>: 36336ac495dSmrg <span class="emphasis"><em>future_errc enums start with value 0 (invalid value for broken_promise)</em></span> 36436ac495dSmrg </span></dt><dd><p>Reorder enumerators. 365a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr2059"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2059" target="_top">2059</a>: 36636ac495dSmrg <span class="emphasis"><em>C++0x ambiguity problem with map::erase</em></span> 36736ac495dSmrg </span></dt><dd><p>Add additional overloads. 368a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr2062"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2062" target="_top">2062</a>: 36936ac495dSmrg <span class="emphasis"><em>2062. Effect contradictions w/o no-throw guarantee of <code class="code">std::function</code> swaps</em></span> 37036ac495dSmrg </span></dt><dd><p>Add <code class="code">noexcept</code> to swap functions. 371a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr2063"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2063" target="_top">2063</a>: 37236ac495dSmrg <span class="emphasis"><em>Contradictory requirements for string move assignment</em></span> 37336ac495dSmrg </span></dt><dd><p>Respect propagation trait for move assignment. 374a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr2064"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2064" target="_top">2064</a>: 37536ac495dSmrg <span class="emphasis"><em>More noexcept issues in basic_string</em></span> 37636ac495dSmrg </span></dt><dd><p>Add noexcept to the comparison operators. 377a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr2067"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2067" target="_top">2067</a>: 37836ac495dSmrg <span class="emphasis"><em>packaged_task should have deleted copy c'tor with const parameter</em></span> 37936ac495dSmrg </span></dt><dd><p>Fix signatures. 380a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr2101"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2101" target="_top">2101</a>: 38136ac495dSmrg <span class="emphasis"><em>Some transformation types can produce impossible types</em></span> 38236ac495dSmrg </span></dt><dd><p>Use the referenceable type concept. 383a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr2106"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2106" target="_top">2106</a>: 38436ac495dSmrg <span class="emphasis"><em>move_iterator wrapping iterators returning prvalues</em></span> 38536ac495dSmrg </span></dt><dd><p>Change the <code class="code">reference</code> type. 386a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr2108"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2108" target="_top">2108</a>: 38736ac495dSmrg <span class="emphasis"><em>No way to identify allocator types that always compare equal</em></span> 38836ac495dSmrg </span></dt><dd><p>Define and use <code class="code">is_always_equal</code> even for C++11. 389a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr2118"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2118" target="_top">2118</a>: 39036ac495dSmrg <span class="emphasis"><em><code class="code">unique_ptr</code> for array does not support cv qualification conversion of actual argument</em></span> 39136ac495dSmrg </span></dt><dd><p>Adjust constraints to allow safe conversions. 392a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr2127"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2127" target="_top">2127</a>: 39336ac495dSmrg <span class="emphasis"><em>Move-construction with <code class="code">raw_storage_iterator</code></em></span> 39436ac495dSmrg </span></dt><dd><p>Add assignment operator taking an rvalue. 395a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr2132"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2132" target="_top">2132</a>: 39636ac495dSmrg <span class="emphasis"><em><code class="code">std::function</code> ambiguity</em></span> 39736ac495dSmrg </span></dt><dd><p>Constrain the constructor to only accept callable types. 398a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr2141"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2141" target="_top">2141</a>: 39936ac495dSmrg <span class="emphasis"><em><code class="code">common_type</code> trait produces reference types</em></span> 40036ac495dSmrg </span></dt><dd><p>Use <code class="code">decay</code> for the result type. 401a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr2144"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2144" target="_top">2144</a>: 40236ac495dSmrg <span class="emphasis"><em>Missing <code class="code">noexcept</code> specification in <code class="code">type_index</code></em></span> 40336ac495dSmrg </span></dt><dd><p>Add <code class="code">noexcept</code> 404a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr2145"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2145" target="_top">2145</a>: 40536ac495dSmrg <span class="emphasis"><em><code class="code">error_category</code> default constructor</em></span> 40636ac495dSmrg </span></dt><dd><p>Declare a public constexpr constructor. 407a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr2162"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2162" target="_top">2162</a>: 40836ac495dSmrg <span class="emphasis"><em><code class="code">allocator_traits::max_size</code> missing <code class="code">noexcept</code></em></span> 40936ac495dSmrg </span></dt><dd><p>Add <code class="code">noexcept</code>. 410a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr2187"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2187" target="_top">2187</a>: 41136ac495dSmrg <span class="emphasis"><em><code class="code">vector<bool></code> is missing <code class="code">emplace</code> and <code class="code">emplace_back</code> member functions</em></span> 41236ac495dSmrg </span></dt><dd><p>Add <code class="code">emplace</code> and <code class="code">emplace_back</code> member functions. 413a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr2192"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2192" target="_top">2192</a>: 41436ac495dSmrg <span class="emphasis"><em>Validity and return type of <code class="code">std::abs(0u)</code> is unclear</em></span> 41536ac495dSmrg </span></dt><dd><p>Move all declarations to a common header and remove the 41636ac495dSmrg generic <code class="code">abs</code> which accepted unsigned arguments. 417a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr2196"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2196" target="_top">2196</a>: 41836ac495dSmrg <span class="emphasis"><em>Specification of <code class="code">is_*[copy/move]_[constructible/assignable]</code> unclear for non-referencable types</em></span> 41936ac495dSmrg </span></dt><dd><p>Use the referenceable type concept. 420a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr2212"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2212" target="_top">2212</a>: 42136ac495dSmrg <span class="emphasis"><em><code class="code">tuple_size</code> for <code class="code">const pair</code> request <code class="code"><tuple></code> header</em></span> 42236ac495dSmrg </span></dt><dd><p>The <code class="code">tuple_size</code> and <code class="code">tuple_element</code> 42336ac495dSmrg partial specializations are defined in <code class="code"><utility></code> which 42436ac495dSmrg is included by <code class="code"><array></code>. 425a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr2296"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2296" target="_top">2296</a>: 42636ac495dSmrg <span class="emphasis"><em><code class="code">std::addressof</code> should be constexpr</em></span> 42736ac495dSmrg </span></dt><dd><p>Use <code class="code">__builtin_addressof</code> and add 42836ac495dSmrg <code class="code">constexpr</code> to <code class="code">addressof</code> for C++17 and later. 429a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr2306"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2306" target="_top">2306</a>: 430a2dc1f3fSmrg <span class="emphasis"><em><code class="code">match_results::reference</code> should be <code class="code">value_type&</code>, not <code class="code">const value_type&</code></em></span> 431a2dc1f3fSmrg </span></dt><dd><p>Change typedef. 432a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr2313"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2313" target="_top">2313</a>: 43336ac495dSmrg <span class="emphasis"><em><code class="code">tuple_size</code> should always derive from <code class="code">integral_constant<size_t, N></code></em></span> 43436ac495dSmrg </span></dt><dd><p>Update definitions of the partial specializations for const and volatile types. 435a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr2328"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2328" target="_top">2328</a>: 43636ac495dSmrg <span class="emphasis"><em>Rvalue stream extraction should use perfect forwarding</em></span> 43736ac495dSmrg </span></dt><dd><p>Use perfect forwarding for right operand. 438a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr2329"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2329" target="_top">2329</a>: 43936ac495dSmrg <span class="emphasis"><em><code class="code">regex_match()/regex_search()</code> with <code class="code">match_results</code> should forbid temporary strings</em></span> 44036ac495dSmrg </span></dt><dd><p>Add deleted overloads for rvalue strings. 441a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr2332"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2332" target="_top">2332</a>: 44236ac495dSmrg <span class="emphasis"><em><code class="code">regex_iterator/regex_token_iterator</code> should forbid temporary regexes</em></span> 44336ac495dSmrg </span></dt><dd><p>Add deleted constructors. 444a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr2354"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2354" target="_top">2332</a>: 44536ac495dSmrg <span class="emphasis"><em>Unnecessary copying when inserting into maps with braced-init syntax</em></span> 44636ac495dSmrg </span></dt><dd><p>Add overloads of <code class="code">insert</code> taking <code class="code">value_type&&</code> rvalues. 447a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr2399"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2399" target="_top">2399</a>: 44836ac495dSmrg <span class="emphasis"><em><code class="code">shared_ptr</code>'s constructor from <code class="code">unique_ptr</code> should be constrained</em></span> 44936ac495dSmrg </span></dt><dd><p>Constrain the constructor to require convertibility. 450a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr2400"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2400" target="_top">2400</a>: 45136ac495dSmrg <span class="emphasis"><em><code class="code">shared_ptr</code>'s <code class="code">get_deleter()</code> should use <code class="code">addressof()</code></em></span> 45236ac495dSmrg </span></dt><dd><p>Use <code class="code">addressof</code>. 453a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr2401"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2401" target="_top">2401</a>: 45436ac495dSmrg <span class="emphasis"><em><code class="code">std::function</code> needs more <code class="code">noexcept</code></em></span> 45536ac495dSmrg </span></dt><dd><p>Add <code class="code">noexcept</code> to the assignment and comparisons. 456a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr2407"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2407" target="_top">2407</a>: 45736ac495dSmrg <span class="emphasis"><em><code class="code">packaged_task(allocator_arg_t, const Allocator&, F&&)</code> 45836ac495dSmrg should neither be constrained nor <code class="code">explicit</code> 45936ac495dSmrg </em></span> 46036ac495dSmrg </span></dt><dd><p>Remove <code class="code">explicit</code> from the constructor. 461*8feb0f0bSmrg </p></dd><dt><a id="manual.bugs.dr2408"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2408" target="_top">2408</a>: 462*8feb0f0bSmrg <span class="emphasis"><em>SFINAE-friendly 463*8feb0f0bSmrg <code class="code">common_type</code>/<code class="code">iterator_traits</code> 464*8feb0f0bSmrg is missing in C++14 465*8feb0f0bSmrg </em></span> 466*8feb0f0bSmrg </span></dt><dd><p>Make <code class="code">iterator_traits</code> empty if any of the 467*8feb0f0bSmrg types is not present in the iterator. 468*8feb0f0bSmrg Make <code class="code">common_type<></code> empty. 469a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr2415"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2415" target="_top">2415</a>: 47036ac495dSmrg <span class="emphasis"><em>Inconsistency between <code class="code">unique_ptr</code> and <code class="code">shared_ptr</code></em></span> 47136ac495dSmrg </span></dt><dd><p>Create empty an <code class="code">shared_ptr</code> from an empty 47236ac495dSmrg <code class="code">unique_ptr</code>. 473a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr2418"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2418" target="_top">2418</a>: 47436ac495dSmrg <span class="emphasis"><em><code class="code">apply</code> does not work with member pointers</em></span> 47536ac495dSmrg </span></dt><dd><p>Use <code class="code">mem_fn</code> for member pointers. 476a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr2440"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2440" target="_top">2440</a>: 47736ac495dSmrg <span class="emphasis"><em><code class="code">seed_seq::size()</code> should be <code class="code">noexcept</code></em></span> 47836ac495dSmrg </span></dt><dd><p>Add <code class="code">noexcept</code>. 479a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr2441"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2441" target="_top">2441</a>: 48036ac495dSmrg <span class="emphasis"><em>Exact-width atomic typedefs should be provided</em></span> 48136ac495dSmrg </span></dt><dd><p>Define the typedefs. 482a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr2442"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2442" target="_top">2442</a>: 48336ac495dSmrg <span class="emphasis"><em><code class="code">call_once()</code> shouldn't <code class="code">DECAY_COPY()</code></em></span> 48436ac495dSmrg </span></dt><dd><p>Remove indirection through call wrapper that made copies 48536ac495dSmrg of arguments and forward arguments straight to <code class="code">std::invoke</code>. 486a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr2454"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2454" target="_top">2454</a>: 48736ac495dSmrg <span class="emphasis"><em>Add <code class="code">raw_storage_iterator::base()</code> member 48836ac495dSmrg </em></span> 48936ac495dSmrg </span></dt><dd><p>Add the <code class="code">base()</code> member function. 490a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr2455"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2455" target="_top">2455</a>: 49136ac495dSmrg <span class="emphasis"><em>Allocator default construction should be allowed to throw 49236ac495dSmrg </em></span> 49336ac495dSmrg </span></dt><dd><p>Make <code class="code">noexcept</code> specifications conditional. 494a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr2458"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2458" target="_top">2458</a>: 49536ac495dSmrg <span class="emphasis"><em>N3778 and new library deallocation signatures 49636ac495dSmrg </em></span> 49736ac495dSmrg </span></dt><dd><p>Remove unused overloads. 498a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr2459"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2459" target="_top">2459</a>: 49936ac495dSmrg <span class="emphasis"><em><code class="code">std::polar</code> should require a non-negative rho 50036ac495dSmrg </em></span> 50136ac495dSmrg </span></dt><dd><p>Add debug mode assertion. 502*8feb0f0bSmrg </p></dd><dt><a id="manual.bugs.dr2465"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2465" target="_top">2465</a>: 503*8feb0f0bSmrg <span class="emphasis"><em>SFINAE-friendly <code class="code">common_type</code> is nearly impossible 504*8feb0f0bSmrg to specialize correctly and regresses key functionality 505*8feb0f0bSmrg </em></span> 506*8feb0f0bSmrg </span></dt><dd><p>Detect whether <code class="code">decay_t</code> changes either type 507*8feb0f0bSmrg and use the decayed types if so. 508a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr2466"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2466" target="_top">2466</a>: 50936ac495dSmrg <span class="emphasis"><em><code class="code">allocator_traits::max_size()</code> default behavior is incorrect 51036ac495dSmrg </em></span> 51136ac495dSmrg </span></dt><dd><p>Divide by the object type. 512a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr2484"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2484" target="_top">2484</a>: 51336ac495dSmrg <span class="emphasis"><em><code class="code">rethrow_if_nested()</code> is doubly unimplementable 51436ac495dSmrg </em></span> 51536ac495dSmrg </span></dt><dd><p>Avoid using <code class="code">dynamic_cast</code> when it would be 51636ac495dSmrg ill-formed. 517a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr2537"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2537" target="_top">2537</a>: 518a2dc1f3fSmrg <span class="emphasis"><em>Constructors for <code class="code">priority_queue</code> taking allocators 519a2dc1f3fSmrg should call <code class="code">make_heap</code> 520a2dc1f3fSmrg </em></span> 521a2dc1f3fSmrg </span></dt><dd><p>Call <code class="code">make_heap</code>. 522c0a68be4Smrg </p></dd><dt><a id="manual.bugs.dr2566"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2566" target="_top">2566</a>: 523c0a68be4Smrg <span class="emphasis"><em>Requirements on the first template parameter of container adaptors 524c0a68be4Smrg </em></span> 525c0a68be4Smrg </span></dt><dd><p>Add static assertions to enforce the requirement. 526a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr2583"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2583" target="_top">2583</a>: 52736ac495dSmrg <span class="emphasis"><em>There is no way to supply an allocator for <code class="code">basic_string(str, pos)</code> 52836ac495dSmrg </em></span> 529c0a68be4Smrg </span></dt><dd><p>Add new constructor. 530a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr2586"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2586" target="_top">2586</a>: 531a2dc1f3fSmrg <span class="emphasis"><em>Wrong value category used in <code class="code">scoped_allocator_adaptor::construct()</code> 532a2dc1f3fSmrg </em></span> 533a2dc1f3fSmrg </span></dt><dd><p>Change internal helper for uses-allocator construction 534a2dc1f3fSmrg to always check using const lvalue allocators. 535a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr2684"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2684" target="_top">2684</a>: 53636ac495dSmrg <span class="emphasis"><em><code class="code">priority_queue</code> lacking comparator typedef 53736ac495dSmrg </em></span> 53836ac495dSmrg </span></dt><dd><p>Define the <code class="code">value_compare</code> typedef. 539c0a68be4Smrg </p></dd><dt><a id="manual.bugs.dr2735"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2735" target="_top">2735</a>: 540c0a68be4Smrg <span class="emphasis"><em><code class="code">std::abs(short)</code>, 541c0a68be4Smrg <code class="code">std::abs(signed char)</code> and others should return 542c0a68be4Smrg <code class="code">int</code> instead of <code class="code">double</code> in order to be 543c0a68be4Smrg compatible with C++98 and C 544c0a68be4Smrg </em></span> 545c0a68be4Smrg </span></dt><dd><p>Resolved by the changes for 546c0a68be4Smrg <a class="link" href="bugs.html#manual.bugs.dr2192">2192</a>. 547a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr2770"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2770" target="_top">2770</a>: 54836ac495dSmrg <span class="emphasis"><em><code class="code">tuple_size<const T></code> specialization is not 54936ac495dSmrg SFINAE compatible and breaks decomposition declarations 55036ac495dSmrg </em></span> 55136ac495dSmrg </span></dt><dd><p>Safely detect <code class="code">tuple_size<T>::value</code> and 55236ac495dSmrg only use it if valid. 553a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr2781"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2781" target="_top">2781</a>: 55436ac495dSmrg <span class="emphasis"><em>Contradictory requirements for <code class="code">std::function</code> 55536ac495dSmrg and <code class="code">std::reference_wrapper</code> 55636ac495dSmrg </em></span> 55736ac495dSmrg </span></dt><dd><p>Remove special handling for <code class="code">reference_wrapper</code> 55836ac495dSmrg arguments and store them directly as the target object. 559a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr2802"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2802" target="_top">2802</a>: 56036ac495dSmrg <span class="emphasis"><em>Add noexcept to several <code class="code">shared_ptr</code> related 56136ac495dSmrg functions 56236ac495dSmrg </em></span> 56336ac495dSmrg </span></dt><dd><p>Add noexcept. 564a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr2873"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2873" target="_top">2873</a>: 56536ac495dSmrg <span class="emphasis"><em><code class="code">shared_ptr</code> constructor requirements for a deleter 56636ac495dSmrg </em></span> 56736ac495dSmrg </span></dt><dd><p>Use rvalues for deleters. 568*8feb0f0bSmrg </p></dd><dt><a id="manual.bugs.dr2921"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2921" target="_top">2921</a>: 569*8feb0f0bSmrg <span class="emphasis"><em><code class="code">packaged_task</code> and type-erased allocators 570*8feb0f0bSmrg </em></span> 571*8feb0f0bSmrg </span></dt><dd><p>For C++17 mode, remove the constructors taking 572*8feb0f0bSmrg an allocator argument. 573a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr2942"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2942" target="_top">2942</a>: 57436ac495dSmrg <span class="emphasis"><em>LWG 2873's resolution missed 57536ac495dSmrg <code class="code">weak_ptr::owner_before</code> 57636ac495dSmrg </em></span> 57736ac495dSmrg </span></dt><dd><p>Add noexcept. 578*8feb0f0bSmrg </p></dd><dt><a id="manual.bugs.dr2996"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2996" target="_top">2996</a>: 579*8feb0f0bSmrg <span class="emphasis"><em>Missing rvalue overloads for 580*8feb0f0bSmrg <code class="code">shared_ptr</code> operations 581*8feb0f0bSmrg </em></span> 582*8feb0f0bSmrg </span></dt><dd><p>Add additional constructor and cast overloads. 583c0a68be4Smrg </p></dd><dt><a id="manual.bugs.dr2993"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2993" target="_top">2993</a>: 584c0a68be4Smrg <span class="emphasis"><em><code class="code">reference_wrapper<T></code> conversion from <code class="code">T&&</code> 585c0a68be4Smrg </em></span> 586c0a68be4Smrg </span></dt><dd><p>Replaced the constructors with a constrained template, 587c0a68be4Smrg to prevent participation in overload resolution when not valid. 588c0a68be4Smrg </p></dd><dt><a id="manual.bugs.dr3074"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#3074" target="_top">3074</a>: 589c0a68be4Smrg <span class="emphasis"><em>Non-member functions for <code class="code">valarray</code> should only deduce from the <code class="code">valarray</code> 590c0a68be4Smrg </em></span> 591c0a68be4Smrg </span></dt><dd><p>Change scalar operands to be non-deduced context, so that 592c0a68be4Smrg they will allow conversions from other types to the value_type. 593a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr3076"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#3076" target="_top">3076</a>: 594a2dc1f3fSmrg <span class="emphasis"><em><code class="code">basic_string</code> CTAD ambiguity 595a2dc1f3fSmrg </em></span> 596a2dc1f3fSmrg </span></dt><dd><p>Change constructors to constrained templates. 597a2dc1f3fSmrg </p></dd><dt><a id="manual.bugs.dr3096"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#3096" target="_top">3096</a>: 598a2dc1f3fSmrg <span class="emphasis"><em><code class="code">path::lexically_relative</code> is confused by trailing slashes 599a2dc1f3fSmrg </em></span> 600a2dc1f3fSmrg </span></dt><dd><p>Implement the fix for trailing slashes. 60136ac495dSmrg </p></dd></dl></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="license.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="status.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="setup.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">License </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 2. Setup</td></tr></table></div></body></html>