Rudiments
Main Page
Classes
include
rudiments
private
inttypes.h
1
// Copyright (c) 2005 David Muse
2
// See the COPYING file for more information.
3
4
#ifndef RUDIMENTS_INTTYPES_H
5
#define RUDIMENTS_INTTYPES_H
6
7
#include <rudiments/private/config.h>
8
9
// define NULL...
10
11
// NULL is typically defined in stddef.h
12
#include <stddef.h>
13
14
// Certain versions of gcc define NULL as ((void *)0) and then complain when
15
// you set a const pointer to it. Work around that.
16
#ifdef RUDIMENTS_REDEFINE_NULL
17
#undef NULL
18
#define NULL 0
19
#endif
20
21
22
// define [u]int(8|16|32|64)_t...
23
24
#if defined(RUDIMENTS_HAVE_STDINT_H)
25
#include <stdint.h>
26
#elif defined(RUDIMENTS_HAVE_SYS_BITYPES_H)
27
// Tru64 needs __arch64__ for int64_t and uint64_t typedefs
28
#ifndef __arch64__
29
#define __arch64__
30
#endif
31
#include <sys/bitypes.h>
32
#elif defined(RUDIMENTS_HAVE_INTTYPES_H)
33
#include <inttypes.h>
34
#endif
35
36
#ifndef RUDIMENTS_HAVE_INT8_T
37
typedef
signed
char
int8_t;
38
#endif
39
#ifndef RUDIMENTS_HAVE_UINT8_T
40
typedef
unsigned
char
uint8_t;
41
#endif
42
#ifndef RUDIMENTS_HAVE_INT16_T
43
typedef
signed
short
int16_t;
44
#endif
45
#ifndef RUDIMENTS_HAVE_UINT16_T
46
typedef
unsigned
short
uint16_t;
47
#endif
48
#ifndef RUDIMENTS_HAVE_INT32_T
49
typedef
signed
int
int32_t;
50
#endif
51
#ifndef RUDIMENTS_HAVE_UINT32_T
52
typedef
unsigned
int
uint32_t;
53
// older versions of solaris require this to prevent a pthreads conflict
54
#define _UINT32_T 1
55
#endif
56
#ifndef RUDIMENTS_HAVE_INT64_T
57
#ifdef RUDIMENTS_HAVE_LONG_LONG
58
typedef
signed
long
long
int64_t;
59
#else
60
typedef
signed
long
int64_t;
61
#endif
62
#endif
63
#ifndef RUDIMENTS_HAVE_UINT64_T
64
#ifdef RUDIMENTS_HAVE_LONG_LONG
65
typedef
unsigned
long
long
uint64_t;
66
#else
67
typedef
unsigned
long
uint64_t;
68
#endif
69
#endif
70
71
#ifndef RUDIMENTS_HAVE_BOOL
72
class
bool
{
73
public
:
74
bool
(
const
bool
&b) {
75
value=b.value;
76
}
77
bool
(
const
long
&b) {
78
value=b;
79
}
80
bool
(
const
int
&b) {
81
value=b;
82
}
83
bool
(
const
short
&b) {
84
value=b;
85
}
86
bool
(
const
char
&b) {
87
value=b;
88
}
89
bool
(
const
unsigned
long
&b) {
90
value=b;
91
}
92
bool
(
const
unsigned
int
&b) {
93
value=b;
94
}
95
bool
(
const
unsigned
short
&b) {
96
value=b;
97
}
98
bool
(
const
unsigned
char
&b) {
99
value=b;
100
}
101
bool
&operator=(
const
bool
&b) {
102
value=b.value;
103
return
*
this
;
104
}
105
bool
&operator=(
const
long
&b) {
106
value=b;
107
return
*
this
;
108
}
109
bool
&operator=(
const
int
&b) {
110
value=b;
111
return
*
this
;
112
}
113
bool
&operator=(
const
short
&b) {
114
value=b;
115
return
*
this
;
116
}
117
bool
&operator=(
const
char
&b) {
118
value=b;
119
return
*
this
;
120
}
121
bool
&operator=(
const
unsigned
long
&b) {
122
value=b;
123
return
*
this
;
124
}
125
bool
&operator=(
const
unsigned
int
&b) {
126
value=b;
127
return
*
this
;
128
}
129
bool
&operator=(
const
unsigned
short
&b) {
130
value=b;
131
return
*
this
;
132
}
133
bool
&operator=(
const
unsigned
char
&b) {
134
value=b;
135
return
*
this
;
136
}
137
operator
long()
const
{
138
return
value;
139
}
140
int
operator!() {
141
value=!value;
142
return
value;
143
}
144
int
operator==(
const
bool
&b) {
145
return
value==b.value;
146
}
147
int
operator!=(
const
bool
&b) {
148
return
value!=b.value;
149
}
150
private
:
151
long
value;
152
};
153
#endif
154
#ifndef RUDIMENTS_HAVE_TRUE_FALSE
155
#define true 1
156
#define false 0
157
#endif
158
159
#endif
bool
Definition:
inttypes.h:72
Generated on Tue Feb 21 2017 20:39:53 for Rudiments by
1.8.11