git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5776 626c5289-ae23-0410-ae9c-e8d60b6d4f22
83 lines
2.1 KiB
C++
83 lines
2.1 KiB
C++
/* 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);
|