| 1 | /* |
| 2 | Vectors + allocators |
| 3 | */ |
| 4 | |
| 5 | %fragment("StdVectorATraits","header",fragment="StdSequenceTraits") |
| 6 | %{ |
| 7 | namespace swig { |
| 8 | template <class T, class A> |
| 9 | struct traits_asptr<std::vector<T,A> > { |
| 10 | typedef std::vector<T,A> vector_type; |
| 11 | typedef T value_type; |
| 12 | static int asptr(PyObject *obj, vector_type **vec) { |
| 13 | return traits_asptr_stdseq<vector_type>::asptr(obj, vec); |
| 14 | } |
| 15 | }; |
| 16 | |
| 17 | template <class T, class A> |
| 18 | struct traits_from<std::vector<T,A> > { |
| 19 | typedef std::vector<T,A> vector_type; |
| 20 | static PyObject *from(const vector_type& vec) { |
| 21 | return traits_from_stdseq<vector_type>::from(vec); |
| 22 | } |
| 23 | }; |
| 24 | } |
| 25 | %} |
| 26 | |
| 27 | |
| 28 | #define %swig_vector_methods(Type...) %swig_sequence_methods(Type) |
| 29 | #define %swig_vector_methods_val(Type...) %swig_sequence_methods_val(Type); |
| 30 | |
| 31 | %include <std/std_vectora.i> |