<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Issue 2764: Are &lt;cstddint&gt; macros optional?</title>
<meta property="og:title" content="Issue 2764: Are &lt;cstddint&gt; macros optional?">
<meta property="og:description" content="C++ library issue. Status: Dup">
<meta property="og:url" content="https://cplusplus.github.io/LWG/issue2764.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#Dup">Dup</a> status.</em></p>
<h3 id="2764"><a href="lwg-closed.html#2764">2764</a>. Are <code>&lt;cstddint&gt;</code> macros optional?</h3>
<p><b>Section:</b> 17.4.1 <a href="https://wg21.link/cstdint.syn">[cstdint.syn]</a> <b>Status:</b> <a href="lwg-active.html#Dup">Dup</a>
 <b>Submitter:</b> Thomas Koeppe <b>Opened:</b> 2016-08-10 <b>Last modified:</b> 2017-03-21</p>
<p><b>Priority: </b>3
</p>
<p><b>View all other</b> <a href="lwg-index.html#cstdint.syn">issues</a> in [cstdint.syn].</p>
<p><b>View all issues with</b> <a href="lwg-status.html#Dup">Dup</a> status.</p>
<p><b>Discussion:</b></p>
<p>
Are the macros <code>INT[8, 16, 32, 64]_MAX</code> etc. optional?
<p/>
The entire <code>&lt;cstddint&gt;</code> header is specified to have all types and macros "defined the same as in C". 
But C is also unclear about this: the fixed-width types like <code>int32_t</code> are optional in C and in C++. 
The corresponding macro <code>INT32_MAX</code> is defined in terms of an expression of the same type as the 
"corresponding type converted according to the integral promotions". But if the "corresponding type" does not exist, 
then surely the macro too cannot exist? It seems that the macros should also be optional.
<p/>
Suggested resolution: See e.g. <a href="https://github.com/cplusplus/draft/pull/843">here</a>, or equivalent wording 
to the effect that the macros <code>INT*_MAX</code> etc are defined if and only if the corresponding integer type is 
defined.
<p/>
(Note that the types <code>intptr_t</code> and <code>uintptr_t</code> are also optional.)
</p>

<p><i>[2016-08-11, Richard comments]</i></p>

<p>
C allows other values for <code>N</code> in addition to 8, 16, 32, 64, whereas it appears that C++ does not. 
Is the difference intentional?
</p>

<p><i>[2016-09-09 Issues Resolution Telecon]</i></p>

<p>We need to answer Richard's question before making this ready</p>

<p><i>[2017-03-04, Kona]</i></p>

<p>Close as a duplicate of <a href="lwg-defects.html#2820" title="Clarify &lt;cstdint&gt; macros (Status: C++23)">2820</a><sup><a href="https://cplusplus.github.io/LWG/issue2820" title="Latest snapshot">(i)</a></sup> per Thomas' request.</p>


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






</body>
</html>
