21 struct __C__ :
public __B__ {};
26 bool less(
const __D__&
object)
const {
return true; }
29 inline bool operator!=(
const __A__&
first,
const __A__& second) {
return false; }
30 inline bool operator< (
const __B__&
first,
const __B__& second) {
return false; }
31 inline bool operator> (
const __B__&
first,
const __B__& second) {
return false; }
37 public JMultiEquals<__E__, JTYPELIST<__A__, __D__>::typelist>
47 #define PRINT(OUT, CLASS) \
48 OUT << std::setw(6) << std::left << #CLASS << ' ' ; \
49 OUT << ' ' << JComparisonAvailable<CLASS>::has_eq << ' '; \
50 OUT << ' ' << JComparisonAvailable<CLASS>::has_ne << ' '; \
51 OUT << ' ' << JComparisonAvailable<CLASS>::has_lt << ' '; \
52 OUT << ' ' << JComparisonAvailable<CLASS>::has_gt << ' '; \
53 OUT << ' ' << JComparisonAvailable<CLASS>::has_le << ' '; \
54 OUT << ' ' << JComparisonAvailable<CLASS>::has_ge << std::endl;
63 int main(
int argc,
char **argv)
72 JParser<> zap(
"Example program to test availability of object comparisons.");
78 catch(
const exception &error) {
79 FATAL(error.what() << endl);
84 cout << setw(6) << left <<
"class" <<
' ' <<
"eq ne lt gt le ge" << endl;
93 ASSERT(JComparisonAvailable<__A__>::has_eq ==
false);
94 ASSERT(JComparisonAvailable<__A__>::has_ne ==
true);
95 ASSERT(JComparisonAvailable<__A__>::has_lt ==
false);
96 ASSERT(JComparisonAvailable<__A__>::has_le ==
false);
97 ASSERT(JComparisonAvailable<__A__>::has_gt ==
false);
98 ASSERT(JComparisonAvailable<__A__>::has_ge ==
false);
100 ASSERT(JComparisonAvailable<__C__>::has_eq ==
false);
101 ASSERT(JComparisonAvailable<__C__>::has_ne ==
false);
102 ASSERT(JComparisonAvailable<__C__>::has_lt ==
true);
103 ASSERT(JComparisonAvailable<__C__>::has_le ==
false);
104 ASSERT(JComparisonAvailable<__C__>::has_gt ==
true);
105 ASSERT(JComparisonAvailable<__C__>::has_ge ==
false);
107 ASSERT(JComparisonAvailable<__D__>::has_eq ==
true);
108 ASSERT(JComparisonAvailable<__D__>::has_ne ==
true);
109 ASSERT(JComparisonAvailable<__D__>::has_lt ==
true);
110 ASSERT(JComparisonAvailable<__D__>::has_le ==
true);
111 ASSERT(JComparisonAvailable<__D__>::has_gt ==
true);
112 ASSERT(JComparisonAvailable<__D__>::has_ge ==
true);
114 ASSERT(JComparisonAvailable<__E__>::has_eq ==
true);
115 ASSERT(JComparisonAvailable<__E__>::has_ne ==
true);
116 ASSERT(JComparisonAvailable<__E__>::has_lt ==
true);
117 ASSERT(JComparisonAvailable<__E__>::has_le ==
true);
118 ASSERT(JComparisonAvailable<__E__>::has_gt ==
true);
119 ASSERT(JComparisonAvailable<__E__>::has_ge ==
true);
Utility class to parse command line options.
int main(int argc, char *argv[])
bool operator<(const Head &first, const Head &second)
Less than operator.
then echo The file $DIR KM3NeT_00000001_00000000 root already please rename or remove it first
Template definition of auxiliary base class for data structures composed of multiple base classes wit...
#define ASSERT(A,...)
Assert macro.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Template definition of auxiliary base class for comparison of data structures.
General purpose messaging.
#define PRINT(OUT, CLASS)
Print availabilty of comparison operators.
bool operator>(const JDAQUTCExtended &first, const JDAQUTCExtended &second)
Greater than operator for UTC times.
Utility class to parse command line options.
bool operator!=(const JTag &first, const JTag &second)
Not equal operator for JTag.