<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"
 lang="en" dir="ltr">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>
    enum    [C++ Reference]
  </title>

  <meta name="generator" content="DokuWiki Release 2009-12-25c &quot;Lemming&quot;" />
<meta name="robots" content="index,follow" />
<meta name="date" content="2009-10-26T06:39:33-0700" />
<meta name="keywords" content="keywords,enum" />
<link rel="search" type="application/opensearchdescription+xml" href="/wiki/lib/exe/opensearch.php" title="C++ Reference" />
<link rel="start" href="/wiki/" />
<link rel="contents" href="/wiki/keywords/enum?do=index" title="Index" />
<link rel="alternate" type="application/rss+xml" title="Recent Changes" href="/wiki/feed.php" />
<link rel="alternate" type="application/rss+xml" title="Current Namespace" href="/wiki/feed.php?mode=list&amp;ns=keywords" />
<link rel="edit" title="Edit this page" href="/wiki/keywords/enum?do=edit" />
<link rel="alternate" type="text/html" title="Plain HTML" href="/wiki/_export/xhtml/keywords/enum" />
<link rel="alternate" type="text/plain" title="Wiki Markup" href="/wiki/_export/raw/keywords/enum" />
<link rel="canonical" href="http://www.cppreference.com/wiki/keywords/enum" />
<link rel="stylesheet" media="all" type="text/css" href="/wiki/lib/exe/css.php?s=all&amp;t=custom1&amp;tseed=1272971091" />
<link rel="stylesheet" media="screen" type="text/css" href="/wiki/lib/exe/css.php?t=custom1&amp;tseed=1272971091" />
<link rel="stylesheet" media="print" type="text/css" href="/wiki/lib/exe/css.php?s=print&amp;t=custom1&amp;tseed=1272971091" />
<script type="text/javascript" charset="utf-8" ><!--//--><![CDATA[//><!--
var NS='keywords';var JSINFO = {"id":"keywords:enum","namespace":"keywords"};
//--><!]]></script>
<script type="text/javascript" charset="utf-8" src="/wiki/lib/exe/js.php?tseed=1272971091" ></script>

  <link rel="shortcut icon" href="/wiki/lib/tpl/custom1/images/favicon.png" />

  </head>

<body>
<div class="dokuwiki">
  
  <div class="stylehead">

    <div class="header">
      <div class="pagename">
        [[<a href="../keywords/enum.html"  title="Backlinks">enum</a>]]
      </div>
      <div class="logo">
        <a href="http://www.cppreference.com"  name="dokuwiki__top" id="dokuwiki__top" accesskey="h" title="[ALT+H]">C++ Reference</a>      </div>

      <div class="clearer"></div>
    </div>

    
    
        <div class="breadcrumbs">
      <span class="bchead">You are here: </span><a href="../start.html"  title="start">C++ Reference</a> &raquo; <a href="../keywords/start.html"  title="keywords:start">C++ Keywords</a> &raquo; <a href="../keywords/enum.html"  title="keywords:enum">enum</a>    </div>
    
  </div>

<div class="plugin_translation"><span>Translations of this page<sup><a href="../localization.html" class="wikilink1" title="localization">?</a></sup>:</span> <ul>  <li><div class="li"><span class="curid"><a href="../keywords/enum.html" class="wikilink1" title="keywords:enum">en</a></span></div></li>  <li><div class="li"><a href="../br-pt/keywords/enum.html" class="wikilink2" title="br-pt:keywords:enum" rel="nofollow">br-pt</a></div></li>  <li><div class="li"><a href="../cn/keywords/enum.html" class="wikilink2" title="cn:keywords:enum" rel="nofollow">cn</a></div></li>  <li><div class="li"><a href="../cz/keywords/enum.html" class="wikilink2" title="cz:keywords:enum" rel="nofollow">cz</a></div></li>  <li><div class="li"><a href="../de/keywords/enum.html" class="wikilink2" title="de:keywords:enum" rel="nofollow">de</a></div></li>  <li><div class="li"><a href="../es/keywords/enum.html" class="wikilink2" title="es:keywords:enum" rel="nofollow">es</a></div></li>  <li><div class="li"><a href="../fr/keywords/enum.html" class="wikilink2" title="fr:keywords:enum" rel="nofollow">fr</a></div></li>  <li><div class="li"><a href="../it/keywords/enum.html" class="wikilink1" title="it:keywords:enum">it</a></div></li>  <li><div class="li"><a href="../jp/keywords/enum.html" class="wikilink1" title="jp:keywords:enum">jp</a></div></li>  <li><div class="li"><a href="../nl/keywords/enum.html" class="wikilink2" title="nl:keywords:enum" rel="nofollow">nl</a></div></li>  <li><div class="li"><a href="../pl/keywords/enum.html" class="wikilink2" title="pl:keywords:enum" rel="nofollow">pl</a></div></li>  <li><div class="li"><a href="../ro/keywords/enum.html" class="wikilink2" title="ro:keywords:enum" rel="nofollow">ro</a></div></li>  <li><div class="li"><a href="../ru/keywords/enum.html" class="wikilink1" title="ru:keywords:enum">ru</a></div></li>  <li><div class="li"><a href="../sk/keywords/enum.html" class="wikilink2" title="sk:keywords:enum" rel="nofollow">sk</a></div></li>  <li><div class="li"><a href="../tr/keywords/enum.html" class="wikilink2" title="tr:keywords:enum" rel="nofollow">tr</a></div></li>  <li><div class="li"><a href="../tw/keywords/enum.html" class="wikilink2" title="tw:keywords:enum" rel="nofollow">tw</a></div></li></ul></div>
  
  
  <div class="page">

    <script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
</script>
<script type="text/javascript">
_uacct = "UA-2828341-1";
urchinTracker();
</script>
    <!-- wikipage start -->
    


<h2><a name="enum" id="enum">enum</a></h2>
<div class="level2">

<p>
Syntax:
</p>
<pre class="c code c++" style="font-family:monospace;">    <span class="kw2">enum</span> name <span class="br0">&#123;</span>name<span class="sy0">-</span>list<span class="br0">&#125;</span> var<span class="sy0">-</span>list<span class="sy0">;</span></pre>
<p>

The enum keyword is used to create an enumerated type named name that consists
of the elements in name-list. The var-list argument is optional, and can be
used to create instances of the type along with the declaration. For example,
the following code creates an enumerated type for colors:
</p>
<pre class="c code c++" style="font-family:monospace;">     <span class="kw2">enum</span> ColorT <span class="br0">&#123;</span>red<span class="sy0">,</span> orange<span class="sy0">,</span> yellow<span class="sy0">,</span> green<span class="sy0">,</span> blue<span class="sy0">,</span> indigo<span class="sy0">,</span> violet<span class="br0">&#125;</span><span class="sy0">;</span>
     ...
     <span class="me1">ColorT</span> c1 <span class="sy0">=</span> indigo<span class="sy0">;</span>
     <span class="kw1">if</span><span class="br0">&#40;</span> c1 <span class="sy0">==</span> indigo <span class="br0">&#41;</span> <span class="br0">&#123;</span>
       <a href="http://www.opengroup.org/onlinepubs/009695399/functions/cout.html"><span class="kw3">cout</span></a> <span class="sy0">&lt;&lt;</span> <span class="st0">&quot;c1 is indigo&quot;</span> <span class="sy0">&lt;&lt;</span> endl<span class="sy0">;</span>
     <span class="br0">&#125;</span></pre>
<p>

In the above example, the effect of the enumeration is to introduce several new
constants named red, orange, yellow, etc. By default, these constants are
assigned consecutive integer values starting at zero. You can change the values
of those constants, as shown by the next example:
</p>
<pre class="c code c++" style="font-family:monospace;">     <span class="kw2">enum</span> ColorT <span class="br0">&#123;</span> red <span class="sy0">=</span> 10<span class="sy0">,</span> blue <span class="sy0">=</span> 15<span class="sy0">,</span> green <span class="br0">&#125;</span><span class="sy0">;</span>
     ...
     <span class="me1">ColorT</span> c <span class="sy0">=</span> green<span class="sy0">;</span>
     <a href="http://www.opengroup.org/onlinepubs/009695399/functions/cout.html"><span class="kw3">cout</span></a> <span class="sy0">&lt;&lt;</span> <span class="st0">&quot;c is &quot;</span> <span class="sy0">&lt;&lt;</span> c <span class="sy0">&lt;&lt;</span> endl<span class="sy0">;</span></pre>
<p>

When executed, the above code will display the following output:
</p>
<pre class="c code c++" style="font-family:monospace;">     c is <span class="nu0">16</span></pre>
<p>

Note that the above examples will only work with C++ compilers. If you&#039;re
working in regular C, you will need to specify the enum keyword whenever you
create an instance of an enumerated type:
</p>
<pre class="c code c++" style="font-family:monospace;">     <span class="kw2">enum</span> ColorT <span class="br0">&#123;</span> red <span class="sy0">=</span> 10<span class="sy0">,</span> blue <span class="sy0">=</span> 15<span class="sy0">,</span> green <span class="br0">&#125;</span><span class="sy0">;</span>
     ...
     <span class="kw2">enum</span> ColorT c <span class="sy0">=</span> green<span class="sy0">;</span>   <span class="coMULTI">/* note the additional enum keyword */</span>
     <a href="http://www.opengroup.org/onlinepubs/009695399/functions/printf.html"><span class="kw3">printf</span></a><span class="br0">&#40;</span> <span class="st0">&quot;c is %d<span class="es1">\n</span>&quot;</span><span class="sy0">,</span> c <span class="br0">&#41;</span><span class="sy0">;</span></pre>
<p>

Alternatively, add a typedef to bring C and C++ on par:
</p>
<pre class="c code c++" style="font-family:monospace;">     <span class="kw4">typedef</span> <span class="kw2">enum</span> ColorT <span class="br0">&#123;</span> red <span class="sy0">=</span> 10<span class="sy0">,</span> blue <span class="sy0">=</span> 15<span class="sy0">,</span> green <span class="br0">&#125;</span> ColorT<span class="sy0">;</span>
     ...
     <span class="me1">ColorT</span> c <span class="sy0">=</span> green<span class="sy0">;</span>   <span class="coMULTI">/* no more additional enum keyword */</span>
     <a href="http://www.opengroup.org/onlinepubs/009695399/functions/printf.html"><span class="kw3">printf</span></a><span class="br0">&#40;</span> <span class="st0">&quot;c is %d<span class="es1">\n</span>&quot;</span><span class="sy0">,</span> c <span class="br0">&#41;</span><span class="sy0">;</span></pre>
</div>
<div class="secedit"><form class="button btn_secedit" method="post" action="/wiki/keywords/enum"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="lines" value="3-" /><input type="hidden" name="rev" value="1256564373" /><input type="submit" value="Edit" class="button" title="enum" /></div></form></div>
    <!-- wikipage stop -->
  </div>

  <div class="clearer">&nbsp;</div>

  
  <div class="stylefoot">

    <div class="meta">
      <div class="user">
              </div>
      <!--
      <div class="doc">
        keywords/enum.txt &middot; Last modified: 10/26/2009 06:39 by shibu      </div>
      -->
    </div>

   
    <div class="bar" id="bar__bottom">
      <div class="bar-left" id="bar__bottomleft">
        <a href="../keywords/enum.html"  class="action edit" accesskey="e" rel="nofollow">Edit this page</a> &#149;
        <a href="../keywords/enum.html"  class="action revisions" accesskey="o" rel="nofollow">Old revisions</a>      </div>
      <div class="bar-right" id="bar__bottomright">
         &#149;
         &#149;
         &#149;
        <a href="../keywords/enum.html"  class="action login" rel="nofollow">Login</a> &#149;
        <a href="../keywords/enum.html"  class="action index" accesskey="x" rel="nofollow">Index</a> &#149;
        <a href="../keywords/enum.html"  class="action recent" accesskey="r" rel="nofollow">Recent changes</a> &#149;
        <a  href="../feed.php.html" title="Recent changes RSS feed">RSS</a> &#149;
        <a href='http://creativecommons.org/licenses/by/3.0/us/' title='Creative Commons license'>cc</a> &#149;
        <form action="/wiki/" accept-charset="utf-8" class="search" id="dw__search"><div class="no"><input type="hidden" name="do" value="search" /><input type="text" id="qsearch__in" accesskey="f" name="id" class="edit" title="[ALT+F]" /><input type="submit" value="Search" class="button" title="Search" /><div id="qsearch__out" class="ajax_qsearch JSpopup"></div></div></form>&nbsp;
      </div>
      <div class="clearer"></div>
    </div>

  </div>

</div>

<div class="no"><img src="/wiki/lib/exe/indexer.php?id=keywords%3Aenum&amp;1273193121" width="1" height="1" alt=""  /></div>
</body>
</html>