diff options
Diffstat (limited to 'Examples/test-suite/li_std_list.i')
-rw-r--r-- | Examples/test-suite/li_std_list.i | 58 |
1 files changed, 42 insertions, 16 deletions
diff --git a/Examples/test-suite/li_std_list.i b/Examples/test-suite/li_std_list.i index bae475eea..2ed5b9ad7 100644 --- a/Examples/test-suite/li_std_list.i +++ b/Examples/test-suite/li_std_list.i @@ -1,6 +1,7 @@ %module li_std_list %include "std_list.i" +%include "std_string.i" %{ #include <algorithm> @@ -8,19 +9,18 @@ #include <numeric> %} -namespace std { - %template(IntList) list<int>; -} - +%template(BoolList) std::list<bool>; +%template(CharList) std::list<char>; +%template(ShortList) std::list<short>; +%template(IntList) std::list<int>; +%template(LongList) std::list<long>; +%template(UCharList) std::list<unsigned char>; +%template(UIntList) std::list<unsigned int>; +%template(UShortList) std::list<unsigned short>; +%template(ULongList) std::list<unsigned long>; +%template(FloatList) std::list<float>; %template(DoubleList) std::list<double>; - -%inline %{ -typedef float Real; -%} - -namespace std { - %template(RealList) list<Real>; -} +%template(StringList) std::list<std::string>; %inline %{ @@ -30,17 +30,43 @@ double average(std::list<int> v) { void halve_in_place(std::list<double>& v) { - std::transform(v.begin(),v.end(),v.begin(), - std::bind2nd(std::divides<double>(),2.0)); + for (std::list<double>::iterator it = v.begin(); it != v.end(); ++it) + *it /= 2.0; } struct Struct { double num; Struct() : num(0.0) {} Struct(double d) : num(d) {} -// bool operator==(const Struct &other) { return (num == other.num); } }; -%} +const std::list<Struct> & CopyContainerStruct(const std::list<Struct> & container) { return container; } +const std::list<Struct *> & CopyContainerStructPtr(const std::list<Struct *> & container) { return container; } +const std::list<const Struct *> & CopyContainerStructConstPtr(const std::list<const Struct *> & container) { return container; } + +const std::list<float> & listreal(const std::list<float> & list) { return list; } + +const std::list<int> & listint(const std::list<int> & list) { return list; } +const std::list<int *> & listintptr(const std::list<int *> & list) { return list; } +const std::list<const int *> & listintconstptr(const std::list<const int *> & list) { return list; } + +const std::list<Struct> & liststruct(const std::list<Struct> & list) { return list; } +const std::list<Struct *> & liststructptr(const std::list<Struct *> & list) { return list; } +const std::list<const Struct *> & liststructconstptr(const std::list<const Struct *> & list) { return list; } +enum Fruit { + APPLE, + BANANNA, + PEAR, + KIWI, +}; +%} +#if !defined(SWIGR) +%template(IntPtrList) std::list<int *>; +%template(IntConstPtrList) std::list<const int *>; +#endif +%template(StructList) std::list<Struct>; +%template(StructPtrList) std::list<Struct *>; +%template(StructConstPtrList) std::list<const Struct *>; +%template(FruitList) std::list<enum Fruit>; |