diff --git a/SWIG/Lib/python/std_common.i b/SWIG/Lib/python/std_common.i index c80f7bba6..5a03fc2b6 100644 --- a/SWIG/Lib/python/std_common.i +++ b/SWIG/Lib/python/std_common.i @@ -1,3 +1,9 @@ %include %include +// +// Generates the traits for all the known primitive +// C++ types (int, double, ...) +// +%apply_cpptypes(%traits_ptypen); + diff --git a/SWIG/Lib/std/std_basic_string.i b/SWIG/Lib/std/std_basic_string.i index 1e035f05f..3472785cb 100644 --- a/SWIG/Lib/std/std_basic_string.i +++ b/SWIG/Lib/std/std_basic_string.i @@ -177,7 +177,11 @@ namespace std { %ignore pop(); - %swig_basic_string(std::basic_string<_CharT>); + +#ifdef %swig_basic_string + // Add swig/language extra methods + %swig_basic_string(std::basic_string<_CharT >); +#endif #ifdef SWIG_EXPORT_ITERATOR_METHODS iterator diff --git a/SWIG/Lib/std/std_common.i b/SWIG/Lib/std/std_common.i index 51ab41f4f..e67d9bb24 100644 --- a/SWIG/Lib/std/std_common.i +++ b/SWIG/Lib/std/std_common.i @@ -152,8 +152,6 @@ namespace swig { } %enddef -%apply_cpptypes(%traits_ptypen); - /* Generate the typemaps for a class that has 'value' traits */ diff --git a/SWIG/Lib/std/std_deque.i b/SWIG/Lib/std/std_deque.i index 01bc4fee3..8f185ecfb 100644 --- a/SWIG/Lib/std/std_deque.i +++ b/SWIG/Lib/std/std_deque.i @@ -77,7 +77,11 @@ namespace std { %typemap_traits_ptr(SWIG_TYPECHECK_DEQUE, std::deque); %std_deque_methods(deque); + +#ifdef %swig_deque_methods + // Add swig/language extra methods %swig_deque_methods(std::deque); +#endif }; template class deque { @@ -108,7 +112,11 @@ namespace std { %typemap_traits_ptr(SWIG_TYPECHECK_DEQUE, std::deque); %std_deque_methods_val(std::deque); + +#ifdef %swig_deque_methods_val + // Add swig/language extra methods %swig_deque_methods_val(std::deque); +#endif }; } diff --git a/SWIG/Lib/std/std_list.i b/SWIG/Lib/std/std_list.i index 5f772043f..2ae6c4813 100644 --- a/SWIG/Lib/std/std_list.i +++ b/SWIG/Lib/std/std_list.i @@ -89,7 +89,11 @@ namespace std { %typemap_traits_ptr(SWIG_TYPECHECK_LIST, std::list); %std_list_methods(list); + +#ifdef %swig_list_methods + // Add swig/language extra methods %swig_list_methods(std::list); +#endif }; template class list { @@ -120,7 +124,11 @@ namespace std { %typemap_traits_ptr(SWIG_TYPECHECK_LIST, std::list); %std_list_methods_val(list); + +#ifdef %swig_list_methods_val + // Add swig/language extra methods %swig_list_methods_val(std::list); +#endif }; } diff --git a/SWIG/Lib/std/std_map.i b/SWIG/Lib/std/std_map.i index f1b533f56..cba7b92bc 100644 --- a/SWIG/Lib/std/std_map.i +++ b/SWIG/Lib/std/std_map.i @@ -112,7 +112,11 @@ namespace std { %typemap_traits_ptr(SWIG_TYPECHECK_MAP, std::map); %std_map_methods(map); + +#ifdef %swig_map_methods + // Add swig/language extra methods %swig_map_methods(std::map); +#endif }; } diff --git a/SWIG/Lib/std/std_multimap.i b/SWIG/Lib/std/std_multimap.i index 7b581ded8..08dd29928 100644 --- a/SWIG/Lib/std/std_multimap.i +++ b/SWIG/Lib/std/std_multimap.i @@ -75,6 +75,10 @@ namespace std { %typemap_traits_ptr(SWIG_TYPECHECK_MULTIMAP, std::multimap); %std_multimap_methods(multimap); + +#ifdef %swig_multimap_methods + // Add swig/language extra methods %swig_multimap_methods(std::multimap); +#endif }; } diff --git a/SWIG/Lib/std/std_multiset.i b/SWIG/Lib/std/std_multiset.i index bb7b79939..7ea3550ec 100644 --- a/SWIG/Lib/std/std_multiset.i +++ b/SWIG/Lib/std/std_multiset.i @@ -72,7 +72,11 @@ namespace std { %typemap_traits_ptr(SWIG_TYPECHECK_MULTISET, std::multiset); %std_multiset_methods(multiset); - %swig_container_methods(std::multiset); + +#ifdef %swig_multiset_methods + // Add swig/language extra methods + %swig_multiset_methods(std::multiset); +#endif }; } diff --git a/SWIG/Lib/std/std_pair.i b/SWIG/Lib/std/std_pair.i index 6dc5a1186..ada147c0c 100644 --- a/SWIG/Lib/std/std_pair.i +++ b/SWIG/Lib/std/std_pair.i @@ -36,7 +36,10 @@ namespace std { T first; U second; +#ifdef %swig_pair_methods + // Add swig/language extra methods %swig_pair_methods(std::pair) +#endif }; // *** @@ -73,7 +76,10 @@ namespace std { T first; U* second; +#ifdef %swig_pair_methods + // Add swig/language extra methods %swig_pair_methods(std::pair) +#endif }; template struct pair { @@ -106,7 +112,10 @@ namespace std { T* first; U second; +#ifdef %swig_pair_methods + // Add swig/language extra methods %swig_pair_methods(std::pair) +#endif }; template struct pair { @@ -138,8 +147,11 @@ namespace std { T* first; U* second; - + +#ifdef %swig_pair_methods + // Add swig/language extra methods %swig_pair_methods(std::pair) +#endif }; } diff --git a/SWIG/Lib/std/std_set.i b/SWIG/Lib/std/std_set.i index fd053ea2a..bc31ce686 100644 --- a/SWIG/Lib/std/std_set.i +++ b/SWIG/Lib/std/std_set.i @@ -93,6 +93,10 @@ namespace std { %typemap_traits_ptr(SWIG_TYPECHECK_SET, std::set); %std_set_methods(set); + +#ifdef %swig_set_methods + // Add swig/language extra methods %swig_set_methods(std::set); +#endif }; } diff --git a/SWIG/Lib/std/std_vector.i b/SWIG/Lib/std/std_vector.i index 2cc77c4d2..c912a4ed8 100644 --- a/SWIG/Lib/std/std_vector.i +++ b/SWIG/Lib/std/std_vector.i @@ -87,18 +87,13 @@ namespace std { %typemap_traits_ptr(SWIG_TYPECHECK_VECTOR, std::vector); %std_vector_methods(vector); + +#ifdef %swig_vector_methods + // Add swig/language extra methods %swig_vector_methods(std::vector); +#endif }; - // bool specialization - %extend vector { - void flip() - { - self->flip(); - } - } - - // *** // This specialization should dissapear or get simplified when // a 'const SWIGTYPE*&' can be defined @@ -131,11 +126,23 @@ namespace std { %typemap_traits_ptr(SWIG_TYPECHECK_VECTOR, std::vector); %std_vector_methods_val(vector); + +#ifdef %swig_vector_methods_val + // Add swig/language extra methods %swig_vector_methods_val(std::vector); +#endif }; // *** // *** + // bool specialization + %extend vector { + void flip() + { + self->flip(); + } + } + template class vector { public: typedef size_t size_type; @@ -164,7 +171,11 @@ namespace std { %typemap_traits_ptr(SWIG_TYPECHECK_VECTOR, std::vector); %std_vector_methods_val(vector); + +#ifdef %swig_vector_methods_val + // Add swig/language extra methods %swig_vector_methods_val(std::vector); +#endif }; } diff --git a/SWIG/Lib/std/std_vectora.i b/SWIG/Lib/std/std_vectora.i index 27ea03500..05e2caee4 100644 --- a/SWIG/Lib/std/std_vectora.i +++ b/SWIG/Lib/std/std_vectora.i @@ -86,7 +86,11 @@ namespace std { %typemap_traits(SWIG_TYPECHECK_VECTOR, std::vector); %std_vector_methods(vector); + +#ifdef %swig_vector_methods + // Add swig/language extra methods %swig_vector_methods(std::vector); +#endif }; @@ -122,7 +126,11 @@ namespace std { %typemap_traits(SWIG_TYPECHECK_VECTOR, std::vector); %std_vector_methods_val(vector); + +#ifdef %swig_vector_methods + // Add swig/language extra methods %swig_vector_methods_val(std::vector); +#endif };