Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
c_enums [2018/02/04 10:07] – [Basics] rpjdayc_enums [2018/02/04 12:15] (current) – [Basics] rpjday
Line 1: Line 1:
 ===== Overview ===== ===== Overview =====
  
-C++11 extensions to enums.+C++11 extensions to enums -- enum classes versus original "plain" enums (//scoped and strongly-typed// versus //unscoped//).
  
 ===== Basics ===== ===== Basics =====
 +
 +Underlying type is ''int'':
  
 <code> <code>
-enum class Color { red, green, blue };+enum struct|class Color { red, green, blue };
 ... ...
 Color::red Color::red
 Color::green Color::green
 </code> </code>
 +
 +Possible definitions:
 +
 +<code>
 +Warning w1 = Warning::red;
 +enum Warning w2 = Warning::green;
 +enum class Warning w3 = Warning::blue; // no
 +</code>
 +
 +===== Treating scoped enums like ints =====
 +
 +Stack Overflow explanation [[https://stackoverflow.com/questions/8357240/how-to-automatically-convert-strongly-typed-enum-into-int|here]].
 +
 +See source for ''ios_base.h'' [[https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/bits/ios_base.h|here]].
  • c_enums.1517738841.txt.gz
  • Last modified: 2018/02/04 10:07
  • by rpjday