blob: f7941febdcc94b81ab41646807ea082fc6ea33f8 (
plain)
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
|
// file : common/enum/test.hxx
// copyright : Copyright (c) 2009-2015 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef TEST_HXX
#define TEST_HXX
#include <odb/core.hxx>
#include <common/config.hxx> // HAVE_CXX11_ENUM
enum color {red, green, blue};
#pragma db object
struct object
{
#pragma db id auto
unsigned long id_;
color color_;
enum taste {bitter, sweet, sour};
taste taste_;
enum position {left = -1, center = 0, right = 1};
position position_;
#ifdef HAVE_CXX11_ENUM
enum class gender {male, female};
enum class scale: unsigned char {one = 1, ten = 10, hundred = 100};
enum class yesno: bool {no, yes};
gender gender_;
scale scale_;
yesno yesno_;
#endif
};
inline bool
operator == (const object& x, const object& y)
{
return
x.id_ == y.id_
&& x.color_ == y.color_
&& x.taste_ == y.taste_
&& x.position_ == y.position_
#ifdef HAVE_CXX11_ENUM
&& x.gender_ == y.gender_
&& x.scale_ == y.scale_
&& x.yesno_ == y.yesno_;
#endif
;
}
#endif // TEST_HXX
|