more fixes for pointer
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@5824 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
158e4d03d7
commit
6e14117b0b
6 changed files with 27 additions and 5 deletions
|
|
@ -7,7 +7,7 @@
|
||||||
/* in */
|
/* in */
|
||||||
|
|
||||||
%define PYVAL_IN_TYPEMAP(as_meth,pyfrag,...)
|
%define PYVAL_IN_TYPEMAP(as_meth,pyfrag,...)
|
||||||
%typemap(in,fragment=pyfrag) __VA_ARGS__
|
%typemap(in,fragment=pyfrag) __VA_ARGS__
|
||||||
"$1 = ($ltype)as_meth($input);
|
"$1 = ($ltype)as_meth($input);
|
||||||
if (PyErr_Occurred()) SWIG_fail;";
|
if (PyErr_Occurred()) SWIG_fail;";
|
||||||
%typemap(in,fragment=pyfrag) const __VA_ARGS__ & ($basetype temp)
|
%typemap(in,fragment=pyfrag) const __VA_ARGS__ & ($basetype temp)
|
||||||
|
|
|
||||||
|
|
@ -113,7 +113,10 @@ namespace std {
|
||||||
typedef value_type reference;
|
typedef value_type reference;
|
||||||
typedef value_type const_reference;
|
typedef value_type const_reference;
|
||||||
|
|
||||||
|
%traits_swigtype(T);
|
||||||
|
|
||||||
%fragment(SWIG_Traits_frag(std::deque<T* >), "header",
|
%fragment(SWIG_Traits_frag(std::deque<T* >), "header",
|
||||||
|
fragment=SWIG_Traits_frag(T),
|
||||||
fragment="StdDequeTraits") {
|
fragment="StdDequeTraits") {
|
||||||
namespace swigpy {
|
namespace swigpy {
|
||||||
template <> struct traits<std::deque<T* > > {
|
template <> struct traits<std::deque<T* > > {
|
||||||
|
|
|
||||||
|
|
@ -124,7 +124,10 @@ namespace std {
|
||||||
typedef value_type reference;
|
typedef value_type reference;
|
||||||
typedef value_type const_reference;
|
typedef value_type const_reference;
|
||||||
|
|
||||||
|
%traits_swigtype(T);
|
||||||
|
|
||||||
%fragment(SWIG_Traits_frag(std::list<T* >), "header",
|
%fragment(SWIG_Traits_frag(std::list<T* >), "header",
|
||||||
|
fragment=SWIG_Traits_frag(T),
|
||||||
fragment="StdListTraits") {
|
fragment="StdListTraits") {
|
||||||
namespace swigpy {
|
namespace swigpy {
|
||||||
template <> struct traits<std::list<T* > > {
|
template <> struct traits<std::list<T* > > {
|
||||||
|
|
|
||||||
|
|
@ -138,7 +138,7 @@ namespace std {
|
||||||
%typemap_traits_ptr(SWIG_CCode(PAIR), std::pair<T,U* >);
|
%typemap_traits_ptr(SWIG_CCode(PAIR), std::pair<T,U* >);
|
||||||
|
|
||||||
pair();
|
pair();
|
||||||
pair(const T& __a, U* __b);
|
pair(T __a, U* __b);
|
||||||
pair(const pair& __p);
|
pair(const pair& __p);
|
||||||
|
|
||||||
T first;
|
T first;
|
||||||
|
|
@ -171,7 +171,7 @@ namespace std {
|
||||||
%typemap_traits_ptr(SWIG_CCode(PAIR), std::pair<T*,U >);
|
%typemap_traits_ptr(SWIG_CCode(PAIR), std::pair<T*,U >);
|
||||||
|
|
||||||
pair();
|
pair();
|
||||||
pair(T* __a, const U& __b);
|
pair(T* __a, U __b);
|
||||||
pair(const pair& __p);
|
pair(const pair& __p);
|
||||||
|
|
||||||
T* first;
|
T* first;
|
||||||
|
|
|
||||||
|
|
@ -30,10 +30,26 @@
|
||||||
%define %std_set_methods(set)
|
%define %std_set_methods(set)
|
||||||
%std_set_methods_common(set);
|
%std_set_methods_common(set);
|
||||||
#ifdef SWIG_EXPORT_ITERATOR_METHODS
|
#ifdef SWIG_EXPORT_ITERATOR_METHODS
|
||||||
|
pair<iterator,bool> insert(const value_type& __x);
|
||||||
iterator insert(iterator pos);
|
iterator insert(iterator pos);
|
||||||
#endif
|
#endif
|
||||||
%enddef
|
%enddef
|
||||||
|
|
||||||
|
%define %pyset_methods(set)
|
||||||
|
%pycontainer_methods(set);
|
||||||
|
|
||||||
|
%extend {
|
||||||
|
void append(value_type x) {
|
||||||
|
self->insert(x);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool __contains__(value_type x) {
|
||||||
|
return self->find(x) != self->end();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
%enddef
|
||||||
|
|
||||||
// ------------------------------------------------------------------------
|
// ------------------------------------------------------------------------
|
||||||
// std::set
|
// std::set
|
||||||
//
|
//
|
||||||
|
|
@ -121,9 +137,8 @@ namespace std {
|
||||||
%typemap_traits_ptr(SWIG_CCode(SET), std::set<T >);
|
%typemap_traits_ptr(SWIG_CCode(SET), std::set<T >);
|
||||||
|
|
||||||
%std_set_methods(set);
|
%std_set_methods(set);
|
||||||
%pycontainer_methods(std::set<T >);
|
%pyset_methods(std::set<T >);
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
%define %std_set_ptypen(...)
|
%define %std_set_ptypen(...)
|
||||||
|
|
|
||||||
|
|
@ -132,6 +132,7 @@ namespace std {
|
||||||
%traits_swigtype(T);
|
%traits_swigtype(T);
|
||||||
|
|
||||||
%fragment(SWIG_Traits_frag(std::vector<T* >), "header",
|
%fragment(SWIG_Traits_frag(std::vector<T* >), "header",
|
||||||
|
fragment=SWIG_Traits_frag(T),
|
||||||
fragment="StdVectorTraits") {
|
fragment="StdVectorTraits") {
|
||||||
namespace swigpy {
|
namespace swigpy {
|
||||||
template <> struct traits<std::vector<T* > > {
|
template <> struct traits<std::vector<T* > > {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue