summaryrefslogtreecommitdiff
path: root/trunk/Examples/test-suite/li_std_vectora.i
diff options
context:
space:
mode:
authorWilliam S Fulton <wsf@fultondesigns.co.uk>2010-06-02 20:53:17 +0000
committerWilliam S Fulton <wsf@fultondesigns.co.uk>2010-06-02 20:53:17 +0000
commit2824b0cbb66e715490e1ef13250bd675d87b32d9 (patch)
treec3bc8d54c6d73f2b7ce08cac34172dbc9f5e5b95 /trunk/Examples/test-suite/li_std_vectora.i
parent289cfef4b4766ff266f3b1bdda8ca3a952e5a047 (diff)
downloadswig-2.0.0.tar.gz
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/tags/rel-2.0.0@12089 626c5289-ae23-0410-ae9c-e8d60b6d4f22
Diffstat (limited to 'trunk/Examples/test-suite/li_std_vectora.i')
-rw-r--r--trunk/Examples/test-suite/li_std_vectora.i65
1 files changed, 65 insertions, 0 deletions
diff --git a/trunk/Examples/test-suite/li_std_vectora.i b/trunk/Examples/test-suite/li_std_vectora.i
new file mode 100644
index 000000000..d95fdf648
--- /dev/null
+++ b/trunk/Examples/test-suite/li_std_vectora.i
@@ -0,0 +1,65 @@
+%module li_std_vectora
+
+%include std_vectora.i
+
+
+%{
+#include <algorithm>
+#include <functional>
+#include <numeric>
+%}
+
+
+%template(vector_i) std::vector<int, std::allocator<int> >;
+
+%template(matrix_i) std::vector<std::vector<int,std::allocator<int> >,std::allocator<std::vector<int,std::allocator<int> > > >;
+
+%inline
+{
+ typedef
+ std::vector<std::vector<int,std::allocator<int> >,
+ std::allocator<std::vector<int,std::allocator<int> > > >
+ imatrix;
+
+ std::vector<int> vident(const std::vector<int,std::allocator<int> >& v)
+ {
+ return v;
+ }
+
+ imatrix mident(const imatrix& v)
+ {
+ return v;
+ }
+}
+
+
+%template(DoubleVector) std::vector<double, std::allocator<double> >;
+
+%inline %{
+typedef float Real;
+%}
+
+namespace std {
+ %template(RealVector) vector<Real, std::allocator<Real> >;
+}
+
+%inline %{
+
+double average(std::vector<int, std::allocator<int> > v) {
+ return std::accumulate(v.begin(),v.end(),0.0)/v.size();
+}
+
+std::vector<Real,std::allocator<Real> >
+half(const std::vector<Real,std::allocator<Real> >& v) {
+ std::vector<Real> w(v);
+ for (unsigned int i=0; i<w.size(); i++)
+ w[i] /= 2.0;
+ return w;
+}
+
+%}
+
+%template(IntPtrVector) std::vector<int *,std::allocator<int *> >;
+
+
+