30#undef _RWSTD_NO_EXTENSIONS
31#define _RWSTD_NO_EXTENSIONS
35#if defined (__SUNPRO_CC) && (defined (__SunOS_5_8) || defined (__SunOS_5_9))
117#if !defined (__SUNPRO_CC) || __SUNPRO_CC > 0x550
119template <
class T,
class U>
123template <
class T,
class U>
134template <
class T,
class U>
138template <
class T,
class U>
148#if !defined (__GNUG__) || __GNUG__ > 2
154 typedef std::num_get<char>
Base;
156# ifndef _RWSTD_NO_USING_ACCESS_ADJUSTMENT
166 iter_type
get (iter_type, iter_type,
167 std::ios_base&, std::ios_base::iostate&, ...)
const {
179 operator T ()
const {
203 static bool check (
int, ...) {
return false; }
223#ifdef _RWSTD_NO_EXT_CHAR_TRAITS_PRIMARY
225template <
class charT>
226struct char_traits { };
231#ifdef _RWSTD_NO_EXT_CODECVT_PRIMARY
233template <
class internT,
class externT,
class stateT>
239#ifdef _RWSTD_NO_EXT_CTYPE_PRIMARY
241template <
class charT>
247#ifdef _RWSTD_NO_EXT_COLLATE_PRIMARY
249template <
class charT>
255#ifdef _RWSTD_NO_EXT_MONEYPUNCT_PRIMARY
257template <
class charT,
bool Intl>
258struct moneypunct { };
263#ifdef _RWSTD_NO_EXT_NUMPUNCT_PRIMARY
265template <
class charT>
271#ifdef _RWSTD_NO_EXT_TIME_GET_PRIMARY
273template <
class charT,
class InputIterator>
279#ifdef _RWSTD_NO_EXT_TIME_PUT_PRIMARY
281template <
class charT,
class OutputIterator>
287#ifdef _RWSTD_NO_EXT_MESSAGES_PRIMARY
289template <
class charT>
306 rw_info (0, 0, __LINE__,
"_RWSTD_NO_EXT_VOID_COUNT");
308 std::reverse_iterator<int*> it (0);
312#ifndef _RWSTD_NO_EXT_VOID_COUNT
314 "_RWSTD_NO_EXT_VOID_COUNT not #defined");
324 "_RWSTD_NO_EXTENSIONS #defined and an extended "
325 "definition of std::count() found");
333 "_RWSTD_NO_EXTENSIONS #defined and an extended "
334 "definition of std::count_if() found");
338 rw_info (0, 0, __LINE__,
"_RWSTD_NO_EXT_VOID_DISTANCE");
340#ifndef _RWSTD_NO_EXT_VOID_DISTANCE
342 "_RWSTD_NO_EXT_VOID_DISTANCE not #defined");
351 "_RWSTD_NO_EXTENSIONS #defined and an extended "
352 "definition of std::distance() found");
356 rw_info (0, 0, __LINE__,
"_RWSTD_NO_EXT_NUM_GET");
358#ifndef _RWSTD_NO_EXT_NUM_GET
360 "_RWSTD_NO_EXT_NUM_GET not #defined");
363#if !defined (__GNUG__) || __GNUG__ > 2
366# define TEST_GET(T) \
368 NumGet::iter_type in; \
369 std::ios_base::iostate err = std::ios_base::failbit; \
370 ellipsis_called = 0; \
371 NumGet ().get (in, in, std::cin, err, convertible<T&>()); \
372 rw_assert (1 == ellipsis_called, __FILE__, __LINE__, \
373 "_RWSTD_NO_EXTENSIONS #defined and std::" \
374 "num_get<char>::get(..., " STRING(T) ") found"); \
380# ifdef _RWSTD_LONG_LONG
391 rw_info (0, 0, __LINE__,
"_RWSTD_NO_EXT_FAILURE");
393#ifndef _RWSTD_NO_EXT_FAILURE
394 rw_assert (0, __FILE__, __LINE__,
"_RWSTD_NO_EXT_FAILURE not #defined");
397 rw_assert (IosBase::check_badbit (), __FILE__, __LINE__,
398 "_RWSTD_NO_EXTENSIONS #defined and "
399 " class std::ios_base::badbit_set found");
401 rw_assert (IosBase::check_eofbit (), __FILE__, __LINE__,
402 "_RWSTD_NO_EXTENSIONS #defined and "
403 " class std::ios_base::eofbit_set found");
405 rw_assert (IosBase::check_eofbit (), __FILE__, __LINE__,
406 "_RWSTD_NO_EXTENSIONS #defined and "
407 " class std::ios_base::failbit_set found");
411 rw_info (0, 0, __LINE__,
"_RWSTD_NO_EXT_BIN_IO");
413#ifndef _RWSTD_NO_EXT_BIN_IO
415 "_RWSTD_NO_EXT_BIN_IO not #defined");
418 rw_assert (IosBase::check_bin (), __FILE__, __LINE__,
419 "_RWSTD_NO_EXTENSIONS #defined and "
420 " std::ios_base::bin found");
424 rw_info (0, 0, __LINE__,
"_RWSTD_NO_EXT_REENTRANT_IO");
426#ifndef _RWSTD_NO_EXT_REENTRANT_IO
428 "_RWSTD_NO_EXT_REENTRANT_IO not #defined");
431 rw_assert (IosBase::check_nolock (), __FILE__, __LINE__,
432 "_RWSTD_NO_EXTENSIONS #defined and "
433 " std::ios_base::nolock found");
435 rw_assert (IosBase::check_nolockbuf (), __FILE__, __LINE__,
436 "_RWSTD_NO_EXTENSIONS #defined and "
437 " std::ios_base::nolockbuf found");
441 rw_info (0, 0, __LINE__,
"_RWSTD_NO_EXT_CHAR_TRAITS_PRIMARY");
443#ifndef _RWSTD_NO_EXT_CHAR_TRAITS_PRIMARY
445 "_RWSTD_NO_EXT_CHAR_TRAITS_PRIMARY not #defined");
450 rw_info (0, 0, __LINE__,
"_RWSTD_NO_EXT_CODECVT_PRIMARY");
452#ifndef _RWSTD_NO_EXT_CODECVT_PRIMARY
454 "_RWSTD_NO_EXT_CODECVT_PRIMARY not #defined");
459 rw_info (0, 0, __LINE__,
"_RWSTD_NO_EXT_COLLATE_PRIMARY");
461#ifndef _RWSTD_NO_EXT_COLLATE_PRIMARY
463 "_RWSTD_NO_EXT_COLLATE_PRIMARY not #defined");
468 rw_info (0, 0, __LINE__,
"_RWSTD_NO_EXT_CTYPE_PRIMARY");
470#ifndef _RWSTD_NO_EXT_CTYPE_PRIMARY
472 "_RWSTD_NO_EXT_CTYPE_PRIMARY not #defined");
477 rw_info (0, 0, __LINE__,
"_RWSTD_NO_EXT_MONEYPUNCT_PRIMARY");
479#ifndef _RWSTD_NO_EXT_MONEYPUNCT_PRIMARY
481 "_RWSTD_NO_EXT_MONEYPUNCT_PRIMARY not #defined");
486 rw_info (0, 0, __LINE__,
"_RWSTD_NO_EXT_NUMPUNCT_PRIMARY");
488#ifndef _RWSTD_NO_EXT_NUMPUNCT_PRIMARY
490 "_RWSTD_NO_EXT_NUMPUNCT_PRIMARY not #defined");
495 rw_info (0, 0, __LINE__,
"_RWSTD_NO_EXT_TIME_GET_PRIMARY");
497#ifndef _RWSTD_NO_EXT_TIME_GET_PRIMARY
499 "_RWSTD_NO_EXT_TIME_GET_PRIMARY not #defined");
504 rw_info (0, 0, __LINE__,
"_RWSTD_NO_EXT_TIME_PUT_PRIMARY");
506#ifndef _RWSTD_NO_EXT_TIME_PUT_PRIMARY
508 "_RWSTD_NO_EXT_TIME_PUT_PRIMARY not #defined");
513 rw_info (0, 0, __LINE__,
"_RWSTD_NO_EXT_MESSAGES_PRIMARY");
515#ifndef _RWSTD_NO_EXT_MESSAGES_PRIMARY
517 "_RWSTD_NO_EXT_MESSAGES_PRIMARY not #defined");
526 return rw_test (argc, argv, __FILE__,
void count(T, T, const U &,...)
void count_if(T, T, U,...)
void run_test(const ForwardIterator &dummy, T *, Predicate *pred)
#define _RWSTD_NAMESPACE(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_assert(int, const char *, int, const char *,...)
static bool check_eofbit()
static bool check(int,...)
static bool check_badbit()
static bool check_nolock()
static bool check_failbit()
static bool check_nolockbuf()
static bool check(int, base *)
std::num_get< char > Base
iter_type get(iter_type, iter_type, std::ios_base &, std::ios_base::iostate &,...) const