00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00031 #ifndef _VDBL_CONFIG_H_
00032 #define _VDBL_CONFIG_H_
00033
00034 #if ((__GNUC__ == 3 && __GNUC_MINOR__ >= 0) || __GNUC__ > 3)
00035 #ifndef _NAMESPACES
00036 #define _NAMESPACES 1
00037 #endif
00038 #endif
00039
00040 #define _VDBL_DEBUG 0
00041
00042
00043 #if 0
00044 #define VDBL_PURE_VIRTUAL { throw "Pure virtual function called in VDBL!"; }
00045 #else
00046 #define VDBL_PURE_VIRTUAL =0;
00047 #endif
00048
00049 #if !defined(_Construct) && defined(__GNUC__) && (__GNUC__ < 3 || (__GNUC__ == 3 && __GNUC_MINOR__ < 1))
00050 #define _Construct std::construct
00051 #endif
00052
00053 #if !defined(_Destroy) && defined(__GNUC__) && (__GNUC__ < 3 || (__GNUC__ == 3 && __GNUC_MINOR__ < 1))
00054 #define _Destroy std::destroy
00055 #endif
00056
00057 #ifndef __VDBL_NULL_TMPL_ARGS
00058 # define __VDBL_NULL_TMPL_ARGS <>
00059 #endif
00060
00061 #ifndef __VDBL_DEFAULT_ALLOCATOR
00062 # define __VDBL_DEFAULT_ALLOCATOR(T) std::allocator<T>
00063 #endif
00064
00065 #ifndef __ITERATOR_CATEGORY
00066 # define __ITERATOR_CATEGORY(A) __iterator_category(A)
00067 #endif
00068
00069 #ifndef __VDBL_MEMBER_TEMPLATES
00070 # define __VDBL_MEMBER_TEMPLATES 1
00071 #endif
00072
00073 #ifndef __VDBL_CLASS_PARTIAL_SPECIALIZATION
00074 # define __VDBL_CLASS_PARTIAL_SPECIALIZATION 1
00075 #endif
00076
00077 #ifndef __VDBL_USE_STD_ALLOCATORS
00078 # define __VDBL_USE_STD_ALLOCATORS 1
00079 #endif
00080
00081 #ifndef __VDBL_TRY
00082 # define __VDBL_TRY try
00083 #endif
00084
00085 #ifndef __VDBL_UNWIND
00086 # define __VDBL_UNWIND(action) catch(...) { action; throw; }
00087 #endif
00088
00089 #if defined(_NAMESPACES)
00090 # define __VDBL_HAS_NAMESPACES 1
00091 #endif
00092
00093 #if defined(__VDBL_HAS_NAMESPACES) && !defined(__VDBL_NO_NAMESPACES)
00094 # define __VDBL vdbl
00095 # define __VDBL_BEGIN_NAMESPACE namespace vdbl {
00096 # define __VDBL_END_NAMESPACE }
00097 # define __VDBL_USE_NAMESPACES
00098 #else
00099 # define __VDBL
00100 # define __VDBL_BEGIN_NAMESPACE
00101 # define __VDBL_END_NAMESPACE
00102 # undef __VDBL_USE_NAMESPACES
00103 #endif
00104
00105
00106
00107 #define VDBL_CMP_TYPEID(A, B) (!strcmp((A).name(), (B).name()))
00108
00109 #include <cstring>
00110 #endif