56# define RW_SIGSETJMP(env, signo) sigsetjmp (env, signo)
71# define RW_SIGSETJMP(env, ignore) setjmp (env)
81# pragma warning (disable: 4800 4804)
85# define EXCEPT(arg) __except (arg)
88# define EXCEPT(ignore) else if (0)
95 numT &
result,
bool &trapped)
113 rw_note (0, 0, 0,
"numeric_limits<%s>::traps test disabled", tname);
117 const bool traps = std::numeric_limits<numT>::traps;
119 rw_info (0, 0, 0,
"std::numeric_limits<%s>::traps = %b", tname, traps);
125 "SIGFPE not #defined and numeric_limits<%s>::traps == %b, "
126 "cannot test", tname, traps)) {
136 volatile numT
zero = numT (jumped);
137 volatile numT
one = numT (1);
139 bool trapped =
false;
160 "numeric_limits<%s>::traps == %b, got %b",
161 tname, trapped, traps);
171#define TEST(T, floating) test_traps ((T)0, __LINE__, floating)
173#ifndef _RWSTD_NO_NATIVE_BOOL
178 TEST (
signed char,
false);
179 TEST (
unsigned char,
false);
182 TEST (
unsigned short,
false);
184 TEST (
unsigned int,
false);
186 TEST (
unsigned long,
false);
188#ifndef _RWSTD_NO_LONG_LONG
193#ifndef _RWSTD_NO_NATIVE_WCHAR_T
194 TEST (
wchar_t,
false);
200#ifndef _RWSTD_NO_LONG_DOUBLE
201 TEST (
long double,
true);
209int main (
int argc,
char *argv[])
211 return rw_test (argc, argv, __FILE__,
212 "lib.numeric.limits.members",
#define RW_SIGSETJMP(env, ignore)
#define TEST(T, floating)
numT test_traps(numT, int lineno, bool)
void try_trap(const volatile numT &one, const volatile numT &zero, numT &result, bool &trapped)
void run_test(const ForwardIterator &dummy, T *, Predicate *pred)
const char * type_name() const
_TEST_EXPORT int rw_enabled(const char *name)
_TEST_EXPORT int rw_test(int argc, char *argv[], const char *filename, const char *clause, const char *comment, int(*testfun)(int, char **), const char *optspec,...)
_TEST_EXPORT int rw_info(int, const char *, int, const char *,...)
_TEST_EXPORT int rw_note(int, const char *, int, const char *,...)
_TEST_EXPORT int rw_assert(int, const char *, int, const char *,...)
_TEST_EXPORT int rw_warn(int, const char *, int, const char *,...)