User Tools

Site Tools


c_enums

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]
rpjday created
c_enums [2018/02/04 12:15] (current)
rpjday [Basics]
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