00001 #ifndef __PyCXX_config_hh__
00002 #define __PyCXX_config_hh__
00003
00004
00005
00006
00007 #if defined( _MSC_VER )
00008
00009 # define STANDARD_LIBRARY_HAS_ITERATOR_TRAITS 1
00010
00011 #elif defined( __GNUC__ )
00012 # if __GNUC__ >= 3
00013 # define STANDARD_LIBRARY_HAS_ITERATOR_TRAITS 1
00014 # else
00015 # define STANDARD_LIBRARY_HAS_ITERATOR_TRAITS 0
00016 #endif
00017
00018
00019
00020
00021 #else
00022
00023
00024 # define STANDARD_LIBRARY_HAS_ITERATOR_TRAITS 1
00025 #endif
00026
00027 #if STANDARD_LIBRARY_HAS_ITERATOR_TRAITS
00028 # define random_access_iterator_parent(itemtype) std::iterator<std::random_access_iterator_tag,itemtype,int>
00029 #else
00030 # define random_access_iterator_parent(itemtype) std::random_access_iterator<itemtype, int>
00031 #endif
00032
00033
00034
00035
00036 #if defined( _MSC_VER )
00037 # if _MSC_VER <= 1200
00038
00039 # define PYCXX_ISO_CPP_LIB 0
00040 # define STR_STREAM <strstream>
00041 # define TEMPLATE_TYPENAME class
00042 # else
00043 # define PYCXX_ISO_CPP_LIB 1
00044 # define STR_STREAM <sstream>
00045 # define TEMPLATE_TYPENAME typename
00046 # endif
00047 #elif defined( __GNUC__ )
00048 # if __GNUC__ >= 3
00049 # define PYCXX_ISO_CPP_LIB 1
00050 # define STR_STREAM <sstream>
00051 # define TEMPLATE_TYPENAME typename
00052 # else
00053 # define PYCXX_ISO_CPP_LIB 0
00054 # define STR_STREAM <strstream>
00055 # define TEMPLATE_TYPENAME class
00056 # endif
00057 #endif
00058
00059 #if PYCXX_ISO_CPP_LIB
00060 # define STR_STREAM <sstream>
00061 # define OSTRSTREAM ostringstream
00062 # define EXPLICIT_TYPENAME typename
00063 # define EXPLICIT_CLASS class
00064 # define TEMPLATE_TYPENAME typename
00065 #else
00066 # define STR_STREAM <strstream>
00067 # define OSTRSTREAM ostrstream
00068 # define EXPLICIT_TYPENAME
00069 # define EXPLICIT_CLASS
00070 # define TEMPLATE_TYPENAME class
00071 #endif
00072
00073
00074 #endif // __PyCXX_config_hh__