diff options
Diffstat (limited to 'devtools/swigwin-1.3.34/Lib/java/std_vector.i')
| -rw-r--r-- | devtools/swigwin-1.3.34/Lib/java/std_vector.i | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/devtools/swigwin-1.3.34/Lib/java/std_vector.i b/devtools/swigwin-1.3.34/Lib/java/std_vector.i new file mode 100644 index 0000000..92fa25a --- /dev/null +++ b/devtools/swigwin-1.3.34/Lib/java/std_vector.i @@ -0,0 +1,54 @@ +/* ----------------------------------------------------------------------------- + * See the LICENSE file for information on copyright, usage and redistribution + * of SWIG, and the README file for authors - http://www.swig.org/release.html. + * + * std_vector.i + * ----------------------------------------------------------------------------- */ + +%include <std_common.i> + +%{ +#include <vector> +#include <stdexcept> +%} + +namespace std { + + template<class T> class vector { + public: + typedef size_t size_type; + typedef T value_type; + typedef const value_type& const_reference; + vector(); + vector(size_type n); + size_type size() const; + size_type capacity() const; + void reserve(size_type n); + %rename(isEmpty) empty; + bool empty() const; + void clear(); + %rename(add) push_back; + void push_back(const value_type& x); + %extend { + const_reference get(int i) throw (std::out_of_range) { + int size = int(self->size()); + if (i>=0 && i<size) + return (*self)[i]; + else + throw std::out_of_range("vector index out of range"); + } + void set(int i, const value_type& val) throw (std::out_of_range) { + int size = int(self->size()); + if (i>=0 && i<size) + (*self)[i] = val; + else + throw std::out_of_range("vector index out of range"); + } + } + }; +} + +%define specialize_std_vector(T) +#warning "specialize_std_vector - specialization for type T no longer needed" +%enddef + |