diff --git a/SWIG/Examples/test-suite/python/li_std_vector.i b/SWIG/Examples/test-suite/python/li_std_vector.i index cdd2c2b55..bdec7fb20 100644 --- a/SWIG/Examples/test-suite/python/li_std_vector.i +++ b/SWIG/Examples/test-suite/python/li_std_vector.i @@ -18,6 +18,8 @@ namespace std { %template(DoubleVector) std::vector; +%template(SizeVector) std::vector; + %inline %{ typedef float Real; %} diff --git a/SWIG/Lib/python/pymisctypes.swg b/SWIG/Lib/python/pymisctypes.swg index e95244d14..d782abb8a 100644 --- a/SWIG/Lib/python/pymisctypes.swg +++ b/SWIG/Lib/python/pymisctypes.swg @@ -3,14 +3,21 @@ * --- ANSI/Posix C/C++ types --- * ------------------------------------------------------------ */ -typedef unsigned long size_t; -typedef long ptrdiff_t; +%apply unsigned long { size_t }; +%apply const unsigned long& { const size_t& }; +%apply unsigned long& { size_t& }; + +%apply long { ptrdiff_t }; +%apply const long& { const ptrdiff_t& }; +%apply long& { ptrdiff_t& }; #ifdef __cplusplus -namespace std { - typedef unsigned long size_t; - typedef long ptrdiff_t; -} +%apply unsigned long { std::size_t }; +%apply const unsigned long& { const std::size_t& }; +%apply unsigned long& { std::size_t& }; +%apply long { std::ptrdiff_t }; +%apply const long& { const std::ptrdiff_t& }; +%apply long& { std::ptrdiff_t& }; #endif