From 45a045b9f136e7805eec3c045bb4cf0752674de8 Mon Sep 17 00:00:00 2001 From: Marcelo Matus Date: Wed, 1 Feb 2006 16:24:23 +0000 Subject: [PATCH] fix for solaris + no stlport4 git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@8668 626c5289-ae23-0410-ae9c-e8d60b6d4f22 --- Lib/python/pyiterators.swg | 3 +-- Lib/std/std_common.i | 22 ++++++++++++++++++---- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/Lib/python/pyiterators.swg b/Lib/python/pyiterators.swg index a3b033e01..29c388ee1 100644 --- a/Lib/python/pyiterators.swg +++ b/Lib/python/pyiterators.swg @@ -168,8 +168,7 @@ namespace swig { } } -%fragment("PySwigIterator_T","header",fragment="StdTraits") { -%#include +%fragment("PySwigIterator_T","header",fragment="StdTraits",fragment="StdIteratorTraits") { namespace swig { template diff --git a/Lib/std/std_common.i b/Lib/std/std_common.i index 7a932d758..54ba18642 100644 --- a/Lib/std/std_common.i +++ b/Lib/std/std_common.i @@ -11,12 +11,12 @@ // Here, we identify compilers we now have problems with STL. %{ -#if defined(__SUNPRO_CC) +#if defined(__SUNPRO_CC) && defined(_RWSTD_VER) #define SWIG_STD_NOASSIGN_STL #define SWIG_STD_NOINSERT_TEMPLATE_STL +#define SWIG_STD_NOITERATOR_TRAITS_STL #endif - #if defined(__GNUC__) # if __GNUC__ == 2 && __GNUC_MINOR <= 96 # define SWIG_STD_NOMODERN_STL @@ -36,9 +36,23 @@ %} +%fragment("StdIteratorTraits","header") %{ +#if !defined(SWIG_STD_NOITERATOR_TRAITS_STL) +#include +#else + template + struct iterator_traits { + typedef typename Iterator::value_type value_type; + }; -%fragment("StdTraitsCommon","header") -%{ + template + struct iterator_traits { + typedef T value_type; + }; +#endif +%} + +%fragment("StdTraitsCommon","header") %{ namespace swig { template struct noconst_traits {