Main Page   Modules   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

vdbl_config.h

Go to the documentation of this file.
00001 // Basic VDBL configuration -*- C++ -*-
00002 
00003 // Copyright (C) 2003 Hermann Schichl
00004 //
00005 // This file is part of the Vienna Database Library.  This library is free
00006 // software; you can redistribute it and/or modify it under the
00007 // terms of the Library GNU General Public License as published by the
00008 // Free Software Foundation; either version 2, or (at your option)
00009 // any later version.
00010 
00011 // This library is distributed in the hope that it will be useful,
00012 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00013 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00014 // Library GNU General Public License for more details.
00015 
00016 // As a special exception, you may use this file as part of a free software
00017 // library without restriction.  Specifically, if other files instantiate
00018 // templates or use macros or inline functions from this file, or you compile
00019 // this file and link it with other files to produce an executable, this
00020 // file does not by itself cause the resulting executable to be covered by
00021 // the Library GNU General Public License.  This exception does not however
00022 // invalidate any other reasons why the executable file might be covered by
00023 // the Library GNU General Public License.
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 //#if (__GNUC__ < 3)
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 // This is to circumvent a bug in g++ in combination with python
00105 //
00106 #define VDBL_CMP_TYPEID(A, B) (!strcmp((A).name(), (B).name()))
00107 
00108 #endif /* _VDBL_CONFIG_H_ */

Generated on Tue Nov 4 01:29:11 2003 for Vienna Database Library by doxygen1.2.18