Ne.app NeANT
The Ne.app NeANT User module of the NeANT distribution.
_config-eccp.h
Go to the documentation of this file.
1
32// identify the EDG eccp standalone front-end in order to help avoid
33// confusing it with compilers such as Compaq C++, Intel C++, or SGI
34// MIPSpro, that use the front-end and (sometimes) #define __EDG__
35#define _RWSTD_EDG_ECCP
36
37#if defined (_RWSTD_REENTRANT) && !defined (_RWSTD_POSIX_THREADS)
38# define _RWSTD_POSIX_THREADS
39#endif // (_RWSTD_REENTRANT) && !(_RWSTD_POSIX_THREADS)
40
41#undef _RWSTD_NO_NEW_HEADER
42#undef _RWSTD_NO_LIBC_IN_STD
43
44#ifndef _RWSTD_NO_EXPORT
45# undef _RWSTD_NO_IMPLICIT_INCLUSION
46#endif
47
48// the vanilla front-end doesn't actually #include the header,
49// but it treats it specially instead, which throws off the test
50#undef _RWSTD_ANSI_C_STDARG_H
51#define _RWSTD_ANSI_C_STDARG_H <stdarg.h>
52
53#ifdef _RWSTD_REENTRANT
54 // std::uncaught_exception() not thread-safe in the front-end demo
55# define _RWSTD_NO_UNCAUGHT_EXCEPTION
56#endif // _RWSTD_REENTRANT
57
58#undef _RWSTD_NO_DEPRECATED_C_HEADERS
59#undef _RWSTD_NO_PURE_C_HEADERS
60
61#ifndef __EXCEPTIONS
62 // disable exceptions when the macro __EXCEPTIONS
63 // is not #defined by the compiler, e.g., when
64 // the -no_exceptions option is used
65# ifndef _RWSTD_NO_EXCEPTIONS
66# define _RWSTD_NO_EXCEPTIONS
67# endif // _RWSTD_NO_EXCEPTIONS
68#endif // __EXCEPTIONS
69
70#if (310 <= __EDG_VERSION__)
71# define _RWSTD_TT_IS_ENUM(T) __is_enum(T)
72# define _RWSTD_TT_IS_UNION(T) __is_union(T)
73# define _RWSTD_TT_IS_CLASS(T) __is_class(T)
74# define _RWSTD_TT_IS_POD(T) __is_pod(T)
75
76# define _RWSTD_TT_IS_EMPTY(T) __is_empty(T)
77# define _RWSTD_TT_IS_POLYMORPHIC(T) __is_polymorphic(T)
78
79// __is_convertible_to() fails for decay and void-void conversions
80//# define _RWSTD_TT_IS_CONVERTIBLE(T,U) __is_convertible_to(T,U)
81# define _RWSTD_TT_IS_ABSTRACT(T) __is_abstract(T)
82
83// __is_base_of() gives false positives for union types
84//# define _RWSTD_TT_IS_BASE_OF(T,U) __is_base_of(T,U)
85
86# define _RWSTD_TT_HAS_TRIVIAL_CTOR(T) __has_trivial_constructor(T)
87# define _RWSTD_TT_HAS_TRIVIAL_COPY(T) __has_trivial_copy(T)
88# define _RWSTD_TT_HAS_TRIVIAL_ASSIGN(T) __has_trivial_assign(T)
89# define _RWSTD_TT_HAS_TRIVIAL_DTOR(T) __has_trivial_destructor(T)
90
91# define _RWSTD_TT_HAS_NOTHROW_CTOR(T) __has_nothrow_constructor(T)
92# define _RWSTD_TT_HAS_NOTHROW_COPY(T) __has_nothrow_copy(T)
93# define _RWSTD_TT_HAS_NOTHROW_ASSIGN(T) __has_nothrow_assign(T)
94
95# define _RWSTD_TT_HAS_VIRTUAL_DTOR(T) __has_virtual_destructor(T)
96
97# define _RWSTD_TT_ALIGN_OF(T) __alignof__(T)
98# define _RWSTD_TT_MAX_ALIGNMENT 16
99
100// need to find a way to align data
101//# define _RWSTD_TT_ALIGNED_POD(N) struct { double _C_align; }
102#endif // __EDG_VERSION__ >= 3.10
103