<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<TITLE>
    CWG Issue 2590</TITLE>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<STYLE TYPE="text/css">
  INS { text-decoration:none; font-weight:bold; background-color:#A0FFA0 }
  .INS { text-decoration:none; background-color:#D0FFD0 }
  DEL { text-decoration:line-through; background-color:#FFA0A0 }
  .DEL { text-decoration:line-through; background-color: #FFD0D0 }
  @media (prefers-color-scheme: dark) {
    HTML { background-color:#202020; color:#f0f0f0; }
    A { color:#5bc0ff; }
    A:visited { color:#c6a8ff; }
    A:hover, a:focus { color:#afd7ff; }
    INS { background-color:#033a16; color:#aff5b4; }
    .INS { background-color: #033a16; }
    DEL { background-color:#67060c; color:#ffdcd7; }
    .DEL { background-color:#67060c; }
  }
  SPAN.cmnt { font-family:Times; font-style:italic }
</STYLE>
</HEAD>
<BODY>
<P><EM>This is an unofficial snapshot of the ISO/IEC JTC1 SC22 WG21
  Core Issues List revision 118b.
  See http://www.open-std.org/jtc1/sc22/wg21/ for the official
  list.</EM></P>
<P>2025-09-28</P>
<HR>
<A NAME="2590"></A><H4>2590.
  
Underlying type should determine size and alignment requirements of an enum
</H4>
<B>Section: </B>9.8.1&#160; [<A href="https://wg21.link/dcl.enum">dcl.enum</A>]
 &#160;&#160;&#160;

 <B>Status: </B>C++23
 &#160;&#160;&#160;

 <B>Submitter: </B>Brian Bi
 &#160;&#160;&#160;

 <B>Date: </B>2022-05-15<BR>


<P>[Accepted as a DR at the November, 2022 meeting.]</P>

<P>Subclause 9.8.1 [<A href="https://wg21.link/dcl.enum">dcl.enum</A>] specifies how the underlying
type of an enumeration is determined, and, for enumerations whose
underlying type is fixed, specifies that the enumeration has the same
set of values as the underlying type.  However, the specification does
not relate the size and alignment requirements of the enumeration to
those of the underlying type.  Those ought to be the same.</P>

<P><U>Suggested resolution [SUPERSEDED]:</U></P>

<P>Add a new paragraph after 9.8.1 [<A href="https://wg21.link/dcl.enum#8">dcl.enum</A>] paragraph 8:</P>

<BLOCKQUOTE>

<P>For an enumeration whose underlying type is fixed, ...</P>

<P><INS>An enumeration has the same size, value representation, and alignment
requirements (6.8.3 [<A href="https://wg21.link/basic.align">basic.align</A>]) as its underlying
type. Furthermore, each value of an enumeration has the same
representation as the same value of the underlying type.</INS></P>

<P>Two enumeration types are <I>layout-compatible enumerations</I> if ...</P>

</BLOCKQUOTE>

<P><B>Proposed resolution (approved by CWG 2022-08-26):</B></P>

<P>Add a new paragraph after 9.8.1 [<A href="https://wg21.link/dcl.enum#8">dcl.enum</A>] paragraph 8:</P>

<BLOCKQUOTE>

<P>For an enumeration whose underlying type is fixed, ...</P>

<P><INS>An enumeration has the same size, value representation, and alignment
requirements (6.8.3 [<A href="https://wg21.link/basic.align">basic.align</A>]) as its underlying
type. Furthermore, each value of an enumeration has the same
representation as the corresponding value of the underlying type.</INS></P>

<P>Two enumeration types are <I>layout-compatible enumerations</I> if ...</P>

</BLOCKQUOTE>

<BR><BR>
</BODY>
</HTML>
