8 class CLASS_DECL_ACME boolean
13 enum_boolean m_eboolean;
16 inline boolean(enum_optional) { m_eboolean = e_boolean_none; }
19 inline boolean() { m_eboolean = e_boolean_none; }
22 inline boolean(
int i) { operator=(i); }
25 inline boolean(
bool b) { operator=(b); }
28 inline boolean(
const boolean &
boolean) : m_eboolean(e_boolean_none) {
if (!
boolean.undefined()) { m_eboolean =
boolean.m_eboolean; } }
31 inline bool isFalse()
const {
return is_false(); }
34 inline bool is_false()
const {
return m_eboolean < e_boolean_false; }
37 inline bool undefined()
const {
return is_empty(); }
40 inline bool is_empty()
const {
return m_eboolean == e_boolean_empty; }
42 inline bool is_set()
const {
return m_eboolean != e_boolean_empty; }
44 inline bool notTrue()
const {
return m_eboolean < e_boolean_yes; }
47 inline bool is_none()
const {
return is_empty(); }
50 inline bool is_true()
const {
return m_eboolean > e_boolean_empty; }
53 inline bool is_true(
bool bDefault)
const {
return m_eboolean ? isTrue() : bDefault; }
56 inline bool isTrue()
const {
return is_true(); }
59 inline bool is_optional()
const {
return !m_eboolean; }
62 inline bool isOptional()
const {
return is_optional(); }
65 inline operator bool()
const {
return isTrue(); }
68 inline bool operator!()
const {
return isFalse(); }
71 inline bool operator<(
int i)
const {
return (
int)m_eboolean < i; }
74 inline bool operator<=(
int i)
const {
return (
int)m_eboolean <= i; }
77 inline bool operator>(
int i)
const {
return (
int)m_eboolean > i; }
80 inline bool operator>=(
int i)
const {
return (
int)m_eboolean >= i; }
83 inline bool operator==(
int i)
const {
return (
int)m_eboolean == i; }
86 inline bool operator!=(
int i)
const {
return !operator==(i); }
89 inline boolean & operator=(
int i)
91 m_eboolean = (i ? e_boolean_true : e_boolean_false);
96 inline boolean & operator=(
bool b)
98 m_eboolean = (b ? e_boolean_true : e_boolean_false);
103 inline bool operator==(
bool b)
const {
return (m_eboolean == e_boolean_true && b) || (m_eboolean == e_boolean_false && !b); }
106 inline bool operator!=(
bool b)
const {
return !operator==(b); }
109 inline boolean & operator=(
const boolean &
boolean)
111 if (
this != &
boolean && !
boolean.undefined()) { m_eboolean =
boolean.m_eboolean; };
116 inline void defer(
int i) {
if (is_empty()) { operator=(i); } }
119 inline boolean deferred(
int i)
const {
if (is_empty()) {
return i; }
else {
return m_eboolean; } }
122 inline boolean operator()(
int i)
const {
return deferred(i); }