<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Issue 4173: Better term for "references, pointers and iterators to elements"</title>
<meta property="og:title" content="Issue 4173: Better term for &quot;references, pointers and iterators to elements&quot;">
<meta property="og:description" content="C++ library issue. Status: New">
<meta property="og:url" content="https://cplusplus.github.io/LWG/issue4173.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="4173"><a href="lwg-active.html#4173">4173</a>. Better term for "references, pointers and iterators to elements"</h3>
<p><b>Section:</b> 23 <a href="https://wg21.link/containers">[containers]</a> <b>Status:</b> <a href="lwg-active.html#New">New</a>
 <b>Submitter:</b> Jonathan Wakely <b>Opened:</b> 2024-11-21 <b>Last modified:</b> 2025-02-07</p>
<p><b>Priority: </b>4
</p>
<p><b>View other</b> <a href="lwg-index-open.html#containers">active issues</a> in [containers].</p>
<p><b>View all other</b> <a href="lwg-index.html#containers">issues</a> in [containers].</p>
<p><b>View all issues with</b> <a href="lwg-status.html#New">New</a> status.</p>
<p><b>Discussion:</b></p>
<p>
The Containers clause often uses "references, pointers, or iterators" which
is verbose, and needs to be said in full whenever talking about iterator
invalidation. It would be helpful to have a term of art that refers to all
of them, something like "element references" or to avoid any confusion with
actual references, "element indicators". Maybe "element handles" but that
could be confused with node handles for associative containers, and
(based on Wikipedia) has connotations of additional indirection, and something
which would <i>not</i> be invalidated when the underlying storage changes.
</p>

<p><i>[2025-02-07; Reflector poll]</i></p>

<p>
Set priority to 4 after reflector poll.
</p>
<p>
"Maybe 'pointer to elements' or a longer phrase that includes the verb
'invalidates', which has special meaning in this section."
</p>
<p>
"Note that there are cases where we invalidate iterators but not pointers/references."
</p>
<p>
"Maybe define 'addresses' to mean 'pointers and references' since they're
always invalidated at the same time, but iterators are sometimes separate."
</p>
<p>
"Referential element accessors"
</p>
<p>
"Define 'pointer-invalidating' (for both pointers and references) and
'iterator-invalidating', and say that the former always implies the latter.
Maybe also introduce antonyms 'pointer-preserving' and 'iterator-preserving'."
</p>
<p>
"Should be defined in terms of affected elements, e.g.
'pointer-invalidating for any erased elements'."
</p>



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





</body>
</html>
