Differences

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

Link to this comparison view

Next revision
Previous revision
c_enums [2018/02/04 09:52] – created 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 ===== 
 + 
 +Underlying type is ''int'': 
 + 
 +<code> 
 +enum struct|class Color { red, green, blue }; 
 +... 
 +Color::red 
 +Color::green 
 +</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.1517737921.txt.gz
  • Last modified: 2018/02/04 09:52
  • by rpjday