69 | // Define the "and", "or" and "not" keywords if the C++ compiler lacks | 69 | /* Define the "and", "or" and "not" keywords if the C++ compiler lacks |
70 | // them. Normally, if just one of them is available, the others are | 70 | * them. Normally, if just one of them is available, the others are |
71 | // too. But there is no harm in checking them individually. We only | 71 | * too. But there is no harm in checking them individually. We only |
72 | // define them when compiling C++, since a) these keywords are not valid | 72 | * define them when compiling C++, since a) these keywords are not valid |
73 | // in C and b) some C compilers define them either for convenience or to | 73 | * in C and b) some C compilers define them either for convenience or to |
74 | // support C99. | 74 | * support C99. |
| | 75 | */ |
85 | // For casting, C++ code should *not* use X_cast<type>(value) but rather | 86 | /* For casting, C++ code should *not* use X_cast<type>(value) but rather |
86 | // X_cast(type)(value). If the compiler supports the X_cast keywords, | 87 | * X_cast(type)(value). If the compiler supports the X_cast keywords, |
87 | // we define the X_cast macros to use the right syntax. If not, we make | 88 | * we define the X_cast macros to use the right syntax. If not, we make |
88 | // them use old-style syntax. | 89 | * them use old-style syntax. |
| | 90 | */ |
108 | // The C++ compiler lacks "bool". Define it. We do not use macros for | 110 | /* The C++ compiler lacks "bool". Define it. We do not use macros for |
109 | // this; with an enum and typedef we always have the same type-safety as | 111 | * this; with an enum and typedef we always have the same type-safety as |
110 | // with a compiler that has native bool-support. Implicit casts to | 112 | * with a compiler that has native bool-support. Implicit casts to |
111 | // "int" still work as they should. | 113 | * "int" still work as they should. |
| | 114 | */ |