diff options
Diffstat (limited to 'share/swig/2.0.11/ruby/std_vectora.i')
-rw-r--r-- | share/swig/2.0.11/ruby/std_vectora.i | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/share/swig/2.0.11/ruby/std_vectora.i b/share/swig/2.0.11/ruby/std_vectora.i new file mode 100644 index 0000000..1708361 --- /dev/null +++ b/share/swig/2.0.11/ruby/std_vectora.i @@ -0,0 +1,36 @@ +/* + Vectors + allocators +*/ + +%fragment("StdVectorATraits","header",fragment="StdSequenceTraits") +%{ + namespace swig { + template <class T, class A> + struct traits_asptr<std::vector<T,A> > { + typedef std::vector<T,A> vector_type; + typedef T value_type; + static int asptr(VALUE obj, vector_type **vec) { + return traits_asptr_stdseq<vector_type>::asptr(obj, vec); + } + }; + + template <class T, class A> + struct traits_from<std::vector<T,A> > { + typedef std::vector<T,A> vector_type; + static VALUE from(const vector_type& vec) { + return traits_from_stdseq<vector_type>::from(vec); + } + }; + } +%} + + +#define %swig_vector_methods(Type...) %swig_sequence_methods(Type) +#define %swig_vector_methods_val(Type...) %swig_sequence_methods_val(Type); + +%mixin std::vector "Enumerable"; +%ignore std::vector::push_back; +%ignore std::vector::pop_back; +%alias std::vector::push "<<"; + +%include <std/std_vectora.i> |