Search notes:

C++: keyword enum

#include <iostream>

enum E {
  foo, bar, baz
};

void f(int p) {
  std::cout << "f: int " << p << std::endl; 
}

void f(E   p) {
  std::cout << "f: E " << p << std::endl; 
}


int main() {
  int i = 10;
  E   e = bar;

  f(i);
  f(e);
}
Github repository about-cpp, path: /keywords/enum/basic.cpp
//
//  g++ -std=c++11 based.cpp
//
#include <iostream>

enum ENUM_char  : char  { a, b, c }; 
enum ENUM_short : short { d, e, f };
enum ENUM_int   : int   { g, h, i };
enum ENUM_long  : long  { j, k, l };

int main() {

  ENUM_char  ec = a;
  ENUM_short es = d;
  ENUM_int   ei = i;
  ENUM_long  el = j;

  std::cout << sizeof(ec) << std::endl; // 1
  std::cout << sizeof(es) << std::endl; // 2
  std::cout << sizeof(ei) << std::endl; // 4
  std::cout << sizeof(el) << std::endl; // 8

}
Github repository about-cpp, path: /keywords/enum/based.cpp
// gcc -std=c++11 scoped.cpp

enum class FBB {
  foo,
  bar,
  baz
};

int main() {

// FBB fbb =      bar;  // --> error: ‘bar’ was not declared in this scope
   FBB fbb = FBB::bar;  // Need to fully qualify scoped enum values

}
Github repository about-cpp, path: /keywords/enum/scoped.cpp
#include <iostream>

enum FBB {
  foo =  1,
  bar =  2,
  baz = 42 
};


void print(FBB f) {
  switch(f) {
    case     foo: std::cout << "foo" << std::endl; break;
    case     bar: std::cout << "bar" << std::endl; break;
    case     baz: std::cout << "baz" << std::endl; break;
    default     : std::cout << "?"   << std::endl;
  }
};

int main() {

  FBB fbb;

  print(static_cast<FBB>( 1));
  print(static_cast<FBB>( 2));
  print(static_cast<FBB>(42));
  print(static_cast<FBB>(-9));
}
Github repository about-cpp, path: /keywords/enum/static_cast.cpp

See also

C++ keywords

Index