00001 #ifndef _VGTL_CONFIG_H_
00002 #define _VGTL_CONFIG_H_
00003
00004 #if (__GNUC__ == 3 && __GNUC_MINOR__ >= 0)
00005 #ifndef _NAMESPACES
00006 #define _NAMESPACES 1
00007 #endif
00008 #endif
00009
00010
00011 #if 1
00012 #define VGTL_PURE_VIRTUAL { throw "Pure virtual function called in VGTL!"; }
00013 #else
00014 #define VGTL_PURE_VIRTUAL ;
00015 #endif
00016
00017 #if !defined(_Construct) && (__GNUC__ < 3 || (__GNUC__ == 3 && __GNUC_MINOR__ < 1))
00018 #define _Construct construct
00019 #endif
00020
00021 #if !defined(_Destroy) && (__GNUC__ < 3 || (__GNUC__ == 3 && __GNUC_MINOR__ < 1))
00022 #define _Destroy destroy
00023 #endif
00024
00025 #ifndef __VGTL_NULL_TMPL_ARGS
00026 # define __VGTL_NULL_TMPL_ARGS <>
00027 #endif
00028
00029 #ifndef __VGTL_DEFAULT_ALLOCATOR
00030 # define __VGTL_DEFAULT_ALLOCATOR(T) std::allocator<T>
00031 #endif
00032
00033 #ifndef __ITERATOR_CATEGORY
00034 # define __ITERATOR_CATEGORY(A) __iterator_category(A)
00035 #endif
00036
00037 #ifndef __VGTL_MEMBER_TEMPLATES
00038 # define __VGTL_MEMBER_TEMPLATES 1
00039 #endif
00040
00041 #ifndef __VGTL_CLASS_PARTIAL_SPECIALIZATION
00042 # define __VGTL_CLASS_PARTIAL_SPECIALIZATION 1
00043 #endif
00044
00045 #ifndef __VGTL_USE_STD_ALLOCATORS
00046 # define __VGTL_USE_STD_ALLOCATORS 1
00047 #endif
00048
00049 #ifndef __VGTL_TRY
00050 # define __VGTL_TRY try
00051 #endif
00052
00053 #ifndef __VGTL_UNWIND
00054 # define __VGTL_UNWIND(action) catch(...) { action; throw; }
00055 #endif
00056
00057 #if defined(_NAMESPACES)
00058 # define __VGTL_HAS_NAMESPACES 1
00059 #endif
00060
00061 #if defined(__VGTL_HAS_NAMESPACES) && !defined(__VGTL_NO_NAMESPACES)
00062 # define __STD std
00063 # define __VGTL_BEGIN_NAMESPACE namespace vgtl {
00064 # define __VGTL_END_NAMESPACE }
00065 # define __VGTL_USE_NAMESPACES
00066 #else
00067 # define __STD
00068 # define __VGTL_BEGIN_NAMESPACE
00069 # define __VGTL_END_NAMESPACE
00070 # undef __VGTL_USE_NAMESPACES
00071 #endif
00072
00073
00074
00075 # ifndef INFINITY
00076 # define __HUGE_VAL_bytes { 0, 0, 0, 0, 0, 0, 0xf0, 0x7f }
00077 # define __huge_val_t union { unsigned char __c[8]; double __d; }
00078 # define INFINITY \
00079 (((__huge_val_t) { __c: __HUGE_VAL_bytes }).__d)
00080 # endif
00081
00082 #endif