/* Vectors */ %fragment("StdVectorTraits","header",fragment="StdSequenceTraits") %{ namespace swig { template <class T> struct traits_asptr<std::vector<T> > { static int asptr(VALUE obj, std::vector<T> **vec) { return traits_asptr_stdseq<std::vector<T> >::asptr(obj, vec); } }; template <class T> struct traits_from<std::vector<T> > { static VALUE from(const std::vector<T>& vec) { return traits_from_stdseq<std::vector<T> >::from(vec); } }; } %} %define %swig_vector_methods(Type...) %swig_sequence_methods(Type) %swig_sequence_front_inserters(Type); %enddef %define %swig_vector_methods_val(Type...) %swig_sequence_methods_val(Type); %swig_sequence_front_inserters(Type); %enddef %mixin std::vector "Enumerable"; %ignore std::vector::push_back; %ignore std::vector::pop_back; %rename("delete") std::vector::__delete__; %rename("reject!") std::vector::reject_bang; %rename("map!") std::vector::map_bang; %rename("empty?") std::vector::empty; %rename("include?" ) std::vector::__contains__ const; %rename("has_key?" ) std::vector::has_key const; %alias std::vector::push "<<"; %include <std/std_vector.i>