<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Issue 3438: &sect;[container.node.overview] missing multiset/map cases</title>
<meta property="og:title" content="Issue 3438: &sect;[container.node.overview] missing multiset/map cases">
<meta property="og:description" content="C++ library issue. Status: New">
<meta property="og:url" content="https://cplusplus.github.io/LWG/issue3438.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="3438"><a href="lwg-active.html#3438">3438</a>. &sect;[container.node.overview] missing <code>multiset</code>/<code>map</code> cases</h3>
<p><b>Section:</b> 23.2.5.1 <a href="https://wg21.link/container.node.overview">[container.node.overview]</a> <b>Status:</b> <a href="lwg-active.html#New">New</a>
 <b>Submitter:</b> Jens Maurer <b>Opened:</b> 2020-04-30 <b>Last modified:</b> 2020-05-09</p>
<p><b>Priority: </b>3
</p>
<p><b>View all other</b> <a href="lwg-index.html#container.node.overview">issues</a> in [container.node.overview].</p>
<p><b>View all issues with</b> <a href="lwg-status.html#New">New</a> status.</p>
<p><b>Discussion:</b></p>
<p>
This issue resulted out of <a href="https://github.com/cplusplus/draft/issues/3967">this 
editorial change request</a>.
<p/>
In 23.2.5.1 <a href="https://wg21.link/container.node.overview">[container.node.overview]</a>, there is Table 79 [tab:container.node.compat]
which indicates which containers have compatible nodes.
<p/>
It appears that rows along
</p>
<blockquote>
<pre>
multimap&lt;K, T, C1, A&gt;     multimap&lt;K, T, C2, A&gt;
</pre>
</blockquote>
<p>
(i.e. multimaps with differing <code>Compare</code> functions) are missing from the table.
<p/>
(Same for <code>multiset</code> and <code>unordered_multiset/map</code>.)
<p/>
However, the introductory sentences in 23.2.5.1 <a href="https://wg21.link/container.node.overview">[container.node.overview]</a> do not relate 
"compatible nodes" with Table 79 and do not clearly state transitivity:
</p>
<blockquote><p>
A node handle is an object that accepts ownership of a single element from an associative container 
(23.2.7 <a href="https://wg21.link/associative.reqmts">[associative.reqmts]</a>) or an unordered associative container (23.2.8 <a href="https://wg21.link/unord.req">[unord.req]</a>). 
It may be used to transfer that ownership to another container with compatible nodes. Containers 
with compatible nodes have the same node handle type. Elements may be transferred in either direction 
between container types in the same row of Table 79 [tab:container.node.compat].
</p></blockquote>

<p><i>[2020-05-09; Reflector prioritization]</i></p>

<p>
Set priority to 3 after reflector discussions.
</p>


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




</body>
</html>
