File: example.h

package info (click to toggle)
renderdoc 1.2%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 79,584 kB
  • sloc: cpp: 491,671; ansic: 285,823; python: 12,617; java: 11,345; cs: 7,181; makefile: 6,703; yacc: 5,682; ruby: 4,648; perl: 3,461; php: 2,119; sh: 2,068; lisp: 1,835; tcl: 1,068; ml: 747; xml: 137
file content (83 lines) | stat: -rw-r--r-- 2,190 bytes parent folder | download | duplicates (15)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
/* File : example.h */

#define PI 3.141

#define DAY_MONDAY    0
#define DAY_TUESDAY   1
#define DAY_WEDNESDAY 2
#define DAY_THURSDAY  3
#define DAY_FRIDAY    4
#define DAY_SATURDAY  5
#define DAY_SUNDAY    6

enum color { BLUE, RED, GREEN };

#define CLB_BLACK   0
#define CLB_BLUE    1
#define CLB_RED     2
#define CLB_MAGENTA 3
#define CLB_GREEN   4
#define CLB_CYAN    5
#define CLB_YELLOW  6
#define CLB_WHITE   7

/* Using this would be good style
   which cannot be expected for general C header files.
   Instead I want to demonstrate how to live without it.
enum month {
  MTHF_JANUARY,
  MTHF_FEBRUARY,
  MTHF_MARCH,
  MTHF_APRIL,
  MTHF_MAY,
  MTHF_JUNE,
  MTHF_JULY,
  MTHF_AUGUST,
  MTHF_SEPTEMBER,
  MTHF_OCTOBER,
  MTHF_NOVEMBER,
  MTHF_DECEMBER,
}
*/

/* Since there are no compile time constants in C / C++
   it is a common abuse
   to declare bit set (flag) constants
   as enumerations. */
enum calendar {
  MTHB_JANUARY   = 1 <<  0,     /* 1 << MTHF_JANUARY, */
  MTHB_FEBRUARY  = 1 <<  1,     /* 1 << MTHF_FEBRUARY, */
  MTHB_MARCH     = 1 <<  2,     /* 1 << MTHF_MARCH, */
  MTHB_APRIL     = 1 <<  3,     /* 1 << MTHF_APRIL, */
  MTHB_MAY       = 1 <<  4,     /* 1 << MTHF_MAY, */
  MTHB_JUNE      = 1 <<  5,     /* 1 << MTHF_JUNE, */
  MTHB_JULY      = 1 <<  6,     /* 1 << MTHF_JULY, */
  MTHB_AUGUST    = 1 <<  7,     /* 1 << MTHF_AUGUST, */
  MTHB_SEPTEMBER = 1 <<  8,     /* 1 << MTHF_SEPTEMBER, */
  MTHB_OCTOBER   = 1 <<  9,     /* 1 << MTHF_OCTOBER, */
  MTHB_NOVEMBER  = 1 << 10,     /* 1 << MTHF_NOVEMBER, */
  MTHB_DECEMBER  = 1 << 11,     /* 1 << MTHF_DECEMBER, */

  MTHB_SPRING    = MTHB_MARCH     | MTHB_APRIL   | MTHB_MAY,
  MTHB_SUMMER    = MTHB_JUNE      | MTHB_JULY    | MTHB_AUGUST,
  MTHB_AUTUMN    = MTHB_SEPTEMBER | MTHB_OCTOBER | MTHB_NOVEMBER,
  MTHB_WINTER    = MTHB_DECEMBER  | MTHB_JANUARY | MTHB_FEBRUARY,
};


namespace Answer {
  enum {
    UNIVERSE_AND_EVERYTHING = 42,
    SEVENTEEN_AND_FOUR = 21,
    TWOHUNDRED_PERCENT_OF_NOTHING = 0,
  };

  class Foo {
   public:
    Foo() { }
    enum speed { IMPULSE  = -2, WARP = 0, HYPER, LUDICROUS = 3};
    void enum_test(speed s);
  };
};

void enum_test(color c, Answer::Foo::speed s);