/* * a test of set containers. * Languages should define swig::LANGUAGE_OBJ to be * an entity of their native pointer type which can be * included in a STL container. * * For example: * swig::LANGUAGE_OBJ is GC_VALUE in Ruby * swig::LANGUAGE_OBJ is SwigPtr_PyObject in python */ %module li_std_set %include <std_string.i> %include <std_set.i> %include <std_vector.i> // Use language macros since Java and C# don't have multiset support (yet) // and uses different naming conventions. #if defined(SWIGRUBY) || defined(SWIGPYTHON) %include <std_multiset.i> %template(set_int) std::multiset<int>; %template(v_int) std::vector<int>; %template(set_string) std::set<std::string>; #elif defined(SWIGJAVA) || defined(SWIGCSHARP) // This operator is only defined because it's needed to store objects of // type Foo in std::set in C++, we don't need to wrap it. %ignore operator<; %inline %{ struct Foo { explicit Foo(int n) : n(n) {} int n; friend bool operator<(Foo foo1, Foo foo2) { return foo1.n < foo2.n; } }; %} %template(IntSet) std::set<int>; %template(StringSet) std::set<std::string>; %template(FooSet) std::set<Foo>; #endif #if defined(SWIGRUBY) %template(LanguageSet) std::set<swig::LANGUAGE_OBJ>; #endif #if defined(SWIGPYTHON) %template(pyset) std::set<swig::SwigPtr_PyObject>; #endif
Generated by dwww version 1.15 on Tue Jul 2 00:22:35 CEST 2024.