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(VALUE 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 VALUE 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 %mixin std::vector "Enumerable"; 32 %ignore std::vector::push_back; 33 %ignore std::vector::pop_back; 34 %alias std::vector::push "<<"; 35 36 %include <std/std_vectora.i> 37