%include <std_common.i> %include <exception.i> %include <std_alloc.i> %{ #include <algorithm> %} // 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; iterator begin(); iterator end(); reverse_iterator rbegin(); reverse_iterator rend(); #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<Type >::vector(size_type size); %feature("ignore") std::vector<Type >::resize(size_type size); %feature("ignore") std::deque<Type >::deque(size_type size); %feature("ignore") std::deque<Type >::resize(size_type size); %feature("ignore") std::list<Type >::list(size_type size); %feature("ignore") std::list<Type >::resize(size_type size); %enddef