%include %include %include %{ #include %} // Common container methods %define %std_container_methods(container...) container(); container(const container&); bool empty() const; size_type size() const; void clear(); void swap(container& v); allocator_type get_allocator() const; #ifdef SWIG_EXPORT_ITERATOR_METHODS class iterator; class reverse_iterator; class const_iterator; class const_reverse_iterator; const_iterator begin() const; const_iterator end() const; const_reverse_iterator rbegin() const; const_reverse_iterator rend() const; #endif %enddef // Common sequence %define %std_sequence_methods_common(sequence) %std_container_methods(%arg(sequence)); sequence(size_type size); void pop_back(); void resize(size_type new_size); #ifdef SWIG_EXPORT_ITERATOR_METHODS iterator erase(iterator pos); iterator erase(iterator first, iterator last); #endif %enddef %define %std_sequence_methods(sequence) %std_sequence_methods_common(%arg(sequence)); sequence(size_type size, const value_type& value); void push_back(const value_type& x); const value_type& front() const; const value_type& back() const; void assign(size_type n, const value_type& x); void resize(size_type new_size, const value_type& x); #ifdef SWIG_EXPORT_ITERATOR_METHODS iterator insert(iterator pos, const value_type& x); void insert(iterator pos, size_type n, const value_type& x); #endif %enddef %define %std_sequence_methods_val(sequence...) %std_sequence_methods_common(%arg(sequence)); sequence(size_type size, value_type value); void push_back(value_type x); value_type front() const; value_type back() const; void assign(size_type n, value_type x); void resize(size_type new_size, value_type x); #ifdef SWIG_EXPORT_ITERATOR_METHODS iterator insert(iterator pos, value_type x); void insert(iterator pos, size_type n, value_type x); #endif %enddef // // Ignore member methods for Type with no default constructor // %define %std_nodefconst_type(Type...) %feature("ignore") std::vector::vector(size_type size); %feature("ignore") std::vector::resize(size_type size); %feature("ignore") std::deque::deque(size_type size); %feature("ignore") std::deque::resize(size_type size); %feature("ignore") std::list::list(size_type size); %feature("ignore") std::list::resize(size_type size); %enddef