<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Issue 3214: &sect;[facet.num.get.virtuals] doesn't say what it means for digit grouping to be consistent</title>
<meta property="og:title" content="Issue 3214: &sect;[facet.num.get.virtuals] doesn't say what it means for digit grouping to be consistent">
<meta property="og:description" content="C++ library issue. Status: New">
<meta property="og:url" content="https://cplusplus.github.io/LWG/issue3214.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#New">New</a> status.</em></p>
<h3 id="3214"><a href="lwg-active.html#3214">3214</a>. &sect;[facet.num.get.virtuals] doesn't say what it means for digit grouping to be consistent</h3>
<p><b>Section:</b> 28.3.4.3.2.3 <a href="https://wg21.link/facet.num.get.virtuals">[facet.num.get.virtuals]</a> <b>Status:</b> <a href="lwg-active.html#New">New</a>
 <b>Submitter:</b> Jonathan Wakely <b>Opened:</b> 2019-06-03 <b>Last modified:</b> 2019-08-23</p>
<p><b>Priority: </b>4
</p>
<p><b>View other</b> <a href="lwg-index-open.html#facet.num.get.virtuals">active issues</a> in [facet.num.get.virtuals].</p>
<p><b>View all other</b> <a href="lwg-index.html#facet.num.get.virtuals">issues</a> in [facet.num.get.virtuals].</p>
<p><b>View all issues with</b> <a href="lwg-status.html#New">New</a> status.</p>
<p><b>Discussion:</b></p>
<p>
28.3.4.3.2.3 <a href="https://wg21.link/facet.num.get.virtuals">[facet.num.get.virtuals]</a> paragraph 4 says:
</p>
<blockquote><p>
"Digit grouping is checked. That is, the positions of discarded separators is examined for consistency with
<code>use_facet&lt;numpunct&lt;charT&gt;&gt;(loc).grouping()</code>. If they are not consistent then
<code>ios_base::failbit</code> is assigned to <code>err</code>."
</p></blockquote>
<p>
It's unclear what is considered consistent or not.
<p/>
Obviously if the expected grouping is "1,234,567" then an input of "1,234,567" is consistent. Libstdc++,
MSVC and Boost all consider "1234567" to be consistent with an expected grouping "1,234,567" (and it
looks like libc++ is going to agree soon). That can be justified by saying that there are no discarded
separators to examine, so no inconsistency. But what about "1234,567"? There is only one discarded
separator here, and its position is consistent with the expected format.
<p/>
The wording should clarify that if there are no separators at all, that is OK. If there are one or more
separators then they must be at the expected positions, and there must not be any missing.
</p>

<p><i>[2019-07 Issue Prioritization]</i></p>

<p>Priority to 4 after discussion on the reflector.</p>


<p id="res-3214"><b>Proposed resolution:</b></p>




</body>
</html>
