<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Issue 1361: Does use of std::size_t in a header imply that typedef name is available to users?</title>
<meta property="og:title" content="Issue 1361: Does use of std::size_t in a header imply that typedef name is available to users?">
<meta property="og:description" content="C++ library issue. Status: NAD">
<meta property="og:url" content="https://cplusplus.github.io/LWG/issue1361.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#NAD">NAD</a> status.</em></p>
<h3 id="1361"><a href="lwg-closed.html#1361">1361</a>. Does use of <code>std::size_t</code> in a header imply that typedef name is available to users?</h3>
<p><b>Section:</b> 16.4.3 <a href="https://wg21.link/using">[using]</a> <b>Status:</b> <a href="lwg-active.html#NAD">NAD</a>
 <b>Submitter:</b> BSI <b>Opened:</b> 2010-08-25 <b>Last modified:</b> 2016-01-28</p>
<p><b>Priority: </b>Not Prioritized
</p>
<p><b>View all issues with</b> <a href="lwg-status.html#NAD">NAD</a> status.</p>
<p><b>Discussion:</b></p>
<p><b>Addresses GB-58</b></p>
<p>
It is not clear whether a library header specified in terms
of a typedef name makes that same typedef name
available for use, or if it simply requires that the specified
type is an alias of the same type, and so the typedef name
cannot be used without including the specific header that
defines it. For example, is the following code required to
be accepted:
</p>
<blockquote><pre>
#include &lt;vector&gt;
std::size_t x = 0;
</pre></blockquote>
<p>
Most often, this question concerns the typedefs defined in
header <code>&lt;cstddef&gt;</code>
</p>

<p><i>[
Resolution proposed by ballot comment:
]</i></p>

<p>
Add a paragraph under 16.4.3 <a href="https://wg21.link/using">[using]</a> clarifying whether
or not headers specified in terms of <code>std::size_t</code> can
be used to access the typedef <code>size_t</code>, or whether
the header <code>&lt;cstddef&gt;</code> must be included to reliably
use this name.
</p>
<p><i>[Batavia: NAD - see rationale below]</i></p>




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

<p><b>Rationale:</b></p><p>The standard is correct as written.</p>




</body>
</html>
