| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
|
| #ifndef __PyCXX_config_hh__ |
| #define __PyCXX_config_hh__ |
|
|
| #if defined( Py_LIMITED_API ) && Py_LIMITED_API+0 < 0x03040000 |
| #error "PyCXX support for Python limited API requires version 3.4 or newer. Py_LIMITED_API=0x03040000" |
| #endif |
|
|
| |
| |
| |
| #if defined( _MSC_VER ) |
|
|
| # define STANDARD_LIBRARY_HAS_ITERATOR_TRAITS 1 |
|
|
| #elif defined( __GNUC__ ) |
| # if __GNUC__ >= 3 |
| # define STANDARD_LIBRARY_HAS_ITERATOR_TRAITS 1 |
| # else |
| # define STANDARD_LIBRARY_HAS_ITERATOR_TRAITS 0 |
| #endif |
|
|
| |
| |
| |
| #else |
|
|
| |
| # define STANDARD_LIBRARY_HAS_ITERATOR_TRAITS 1 |
| #endif |
|
|
| #if STANDARD_LIBRARY_HAS_ITERATOR_TRAITS |
| # define random_access_iterator_parent(itemtype) std::iterator<std::random_access_iterator_tag,itemtype,int> |
| #else |
| # define random_access_iterator_parent(itemtype) std::random_access_iterator<itemtype, int> |
| #endif |
|
|
| |
| |
| |
| #if defined( _MSC_VER ) |
| # if _MSC_VER <= 1200 |
| |
| # define PYCXX_ISO_CPP_LIB 0 |
| # define STR_STREAM <strstream> |
| # define TEMPLATE_TYPENAME class |
| # else |
| # define PYCXX_ISO_CPP_LIB 1 |
| # define STR_STREAM <sstream> |
| # define TEMPLATE_TYPENAME typename |
| # endif |
| #elif defined( __GNUC__ ) |
| # if __GNUC__ >= 3 |
| # define PYCXX_ISO_CPP_LIB 1 |
| # define STR_STREAM <sstream> |
| # define TEMPLATE_TYPENAME typename |
| # else |
| # define PYCXX_ISO_CPP_LIB 0 |
| # define STR_STREAM <strstream> |
| # define TEMPLATE_TYPENAME class |
| # endif |
| #endif |
|
|
| #if PYCXX_ISO_CPP_LIB |
| # define STR_STREAM <sstream> |
| # define OSTRSTREAM ostringstream |
| # define EXPLICIT_TYPENAME typename |
| # define EXPLICIT_CLASS class |
| # define TEMPLATE_TYPENAME typename |
| #else |
| # define STR_STREAM <strstream> |
| # define OSTRSTREAM ostrstream |
| # define EXPLICIT_TYPENAME |
| # define EXPLICIT_CLASS |
| # define TEMPLATE_TYPENAME class |
| #endif |
|
|
| |
| #if defined( _MSC_VER ) |
| # pragma warning( disable : 4251 ) |
| #endif |
| #if defined( _MSC_VER ) || defined( __MINGW32__ ) |
| # ifdef PYCXX_DLL |
| # define PYCXX_EXPORT __declspec(dllexport) |
| # else |
| # define PYCXX_EXPORT __declspec(dllimport) |
| # endif |
| #else |
| # define PYCXX_EXPORT |
| #endif |
|
|
| |
| #ifndef PY_MAJOR_VERSION |
| #error not defined PY_MAJOR_VERSION |
| #endif |
| #if PY_MINOR_VERSION < 2 |
| typedef long int Py_hash_t; |
| #endif |
|
|
| #if PY_VERSION_HEX >= 0x030d0000 |
| #define Py_UNICODE_DEPRECATED |
| #endif |
|
|
| #ifndef PYCXX_PYTHON_2TO3 |
| #define PYCXX_PYTHON_2TO3 |
| #endif |
|
|
| #endif |
|
|