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