1 /* 2 Vectors 3 */ 4 5 %fragment("StdVectorTraits","header",fragment="StdSequenceTraits") 6 %{ 7 namespace swig { 8 template <class T> 9 struct traits_asptr<std::vector<T> > { 10 static int asptr(VALUE obj, std::vector<T> **vec) { 11 return traits_asptr_stdseq<std::vector<T> >::asptr(obj, vec); 12 } 13 }; 14 15 template <class T> 16 struct traits_from<std::vector<T> > { 17 static VALUE from(const std::vector<T>& vec) { 18 return traits_from_stdseq<std::vector<T> >::from(vec); 19 } 20 }; 21 } 22 %} 23 24 25 26 %define %swig_vector_methods(Type...) 27 %swig_sequence_methods(Type) 28 %swig_sequence_front_inserters(Type); 29 %enddef 30 31 %define %swig_vector_methods_val(Type...) 32 %swig_sequence_methods_val(Type); 33 %swig_sequence_front_inserters(Type); 34 %enddef 35 36 37 %mixin std::vector "Enumerable"; 38 %ignore std::vector::push_back; 39 %ignore std::vector::pop_back; 40 41 42 %rename("delete") std::vector::__delete__; 43 %rename("reject!") std::vector::reject_bang; 44 %rename("map!") std::vector::map_bang; 45 %rename("empty?") std::vector::empty; 46 %rename("include?" ) std::vector::__contains__ const; 47 %rename("has_key?" ) std::vector::has_key const; 48 49 %alias std::vector::push "<<"; 50 51 %include <std/std_vector.i> 52 53