%module ignore_template_constructor %include std_vector.i #if defined(SWIGJAVA) || defined(SWIGCSHARP) || defined(SWIGPYTHON) || defined(SWIGPERL) || defined(SWIGRUBY) #define SWIG_GOOD_VECTOR %ignore std::vector::vector(size_type); %ignore std::vector::resize(size_type); #endif #if defined(SWIGTCL) || defined(SWIGPERL) #define SWIG_GOOD_VECTOR /* here, for languages with bad declaration */ %ignore std::vector::vector(unsigned int); %ignore std::vector::resize(unsigned int); #endif #if defined(SWIG_GOOD_VECTOR) %inline %{ class Flow { double x; Flow():x(0.0) {} public: Flow(double d) : x(d) {} }; %} #else /* here, for languages with bad typemaps */ %inline %{ class Flow { double x; public: Flow(): x(0.0) {} Flow(double d) : x(d) {} }; %} #endif %template(VectFlow) std::vector; %inline %{ std::vector inandout(std::vector v) { return v; } %}