<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Issue 1254: Misleading sentence in vector&lt;bool&gt;::flip</title>
<meta property="og:title" content="Issue 1254: Misleading sentence in vector&lt;bool&gt;::flip">
<meta property="og:description" content="C++ library issue. Status: C++11">
<meta property="og:url" content="https://cplusplus.github.io/LWG/issue1254.html">
<meta property="og:type" content="website">
<meta property="og:image" content="http://cplusplus.github.io/LWG/images/cpp_logo.png">
<meta property="og:image:alt" content="C++ logo">
<style>
  p {text-align:justify}
  li {text-align:justify}
  pre code.backtick::before { content: "`" }
  pre code.backtick::after { content: "`" }
  blockquote.note
  {
    background-color:#E0E0E0;
    padding-left: 15px;
    padding-right: 15px;
    padding-top: 1px;
    padding-bottom: 1px;
  }
  ins {background-color:#A0FFA0}
  del {background-color:#FFA0A0}
  table.issues-index { border: 1px solid; border-collapse: collapse; }
  table.issues-index th { text-align: center; padding: 4px; border: 1px solid; }
  table.issues-index td { padding: 4px; border: 1px solid; }
  table.issues-index td:nth-child(1) { text-align: right; }
  table.issues-index td:nth-child(2) { text-align: left; }
  table.issues-index td:nth-child(3) { text-align: left; }
  table.issues-index td:nth-child(4) { text-align: left; }
  table.issues-index td:nth-child(5) { text-align: center; }
  table.issues-index td:nth-child(6) { text-align: center; }
  table.issues-index td:nth-child(7) { text-align: left; }
  table.issues-index td:nth-child(5) span.no-pr { color: red; }
  @media (prefers-color-scheme: dark) {
     html {
        color: #ddd;
        background-color: black;
     }
     ins {
        background-color: #225522
     }
     del {
        background-color: #662222
     }
     a {
        color: #6af
     }
     a:visited {
        color: #6af
     }
     blockquote.note
     {
        background-color: rgba(255, 255, 255, .10)
     }
  }
</style>
</head>
<body>
<hr>
<p><em>This page is a snapshot from the LWG issues list, see the <a href="lwg-active.html">Library Active Issues List</a> for more information and the meaning of <a href="lwg-active.html#C++11">C++11</a> status.</em></p>
<h3 id="1254"><a href="lwg-defects.html#1254">1254</a>. Misleading sentence in <code>vector&lt;bool&gt;::flip</code></h3>
<p><b>Section:</b> 23.3.14 <a href="https://wg21.link/vector.bool">[vector.bool]</a> <b>Status:</b> <a href="lwg-active.html#C++11">C++11</a>
 <b>Submitter:</b> Christopher Jefferson <b>Opened:</b> 2009-11-01 <b>Last modified:</b> 2016-01-28</p>
<p><b>Priority: </b>Not Prioritized
</p>
<p><b>View other</b> <a href="lwg-index-open.html#vector.bool">active issues</a> in [vector.bool].</p>
<p><b>View all other</b> <a href="lwg-index.html#vector.bool">issues</a> in [vector.bool].</p>
<p><b>View all issues with</b> <a href="lwg-status.html#C++11">C++11</a> status.</p>
<p><b>Discussion:</b></p>
<p>
The effects of <code>vector&lt;bool&gt;::flip</code> has the line:
</p>

<blockquote><p>
It is unspecified whether the function has any effect on allocated but
unused bits.
</p></blockquote>

<p>
While this is technically true, it is misleading, as any member function
in any standard container may change unused but allocated memory. Users
can never observe such changes as it would also be undefined behaviour
to read such memory.
</p>

<p><i>[
2009-11-14 Moved to Tentatively Ready after 5 positive votes on c++std-lib.
]</i></p>



<p id="res-1254"><b>Proposed resolution:</b></p>
<p>
Strike second sentence from the definition of <code>vector&lt;bool&gt;::flip()</code>,
23.3.14 <a href="https://wg21.link/vector.bool">[vector.bool]</a>, paragraph 5.
</p>

<blockquote><p>
<i>Effects:</i> Replaces each element in the container with its complement.
<del>It is unspecified whether the function has any effect on allocated
but unused bits.</del>
</p></blockquote>





</body>
</html>
