13 static const double A_MIN = -999.0;
14 static const double A_MAX = +999.0;
34 friend inline bool operator==(
const __A__& first,
const __A__& second)
36 return first.a == second.a;
46 friend inline std::ostream&
operator<<(std::ostream& out,
const __A__&
object)
48 return out <<
object.a;
51 static __A__ min() {
return __A__(A_MIN); }
52 static __A__ max() {
return __A__(A_MAX); }
66 inline void print(std::ostream& out,
const char* name)
71 out << setw(12) << left << name << ' ' << JLimits<T>::min() <<
' ' << JLimits<T>::max() << endl;
74 #define PRINT(OUT, CLASS) print<CLASS>(OUT, #CLASS)
84 int main(
int argc,
char**argv)
92 JParser<> zap(
"Example program to test zero values of non-primitive data types.");
98 catch(
const exception &error) {
99 FATAL(error.what() << endl);
108 PRINT(cout,
long double);
111 ASSERT(JLimits<size_t>::min() == numeric_limits<size_t>::min());
112 ASSERT(JLimits<size_t>::max() == numeric_limits<size_t>::max());
114 ASSERT(JLimits<double>::max() == numeric_limits<double>::max());
115 ASSERT(JLimits<__A__> ::min() == A_MIN);
116 ASSERT(JLimits<__A__> ::max() == A_MAX);