1899
|
1 //
|
|
2 // std::set
|
|
3 //
|
|
4
|
|
5 %include <std_set.i>
|
|
6
|
|
7 // Multiset
|
|
8
|
|
9 %define %std_multiset_methods(multiset...)
|
|
10 %std_set_methods_common(multiset);
|
|
11 %enddef
|
|
12
|
|
13
|
|
14 // ------------------------------------------------------------------------
|
|
15 // std::multiset
|
|
16 //
|
|
17 // const declarations are used to guess the intent of the function being
|
|
18 // exported; therefore, the following rationale is applied:
|
|
19 //
|
|
20 // -- f(std::multiset<T>), f(const std::multiset<T>&):
|
|
21 // the parameter being read-only, either a sequence or a
|
|
22 // previously wrapped std::multiset<T> can be passed.
|
|
23 // -- f(std::multiset<T>&), f(std::multiset<T>*):
|
|
24 // the parameter may be modified; therefore, only a wrapped std::multiset
|
|
25 // can be passed.
|
|
26 // -- std::multiset<T> f(), const std::multiset<T>& f():
|
|
27 // the set is returned by copy; therefore, a sequence of T:s
|
|
28 // is returned which is most easily used in other functions
|
|
29 // -- std::multiset<T>& f(), std::multiset<T>* f():
|
|
30 // the set is returned by reference; therefore, a wrapped std::multiset
|
|
31 // is returned
|
|
32 // -- const std::multiset<T>* f(), f(const std::multiset<T>*):
|
|
33 // for consistency, they expect and return a plain set pointer.
|
|
34 // ------------------------------------------------------------------------
|
|
35
|
|
36
|
|
37 // exported classes
|
|
38
|
|
39 namespace std {
|
|
40
|
|
41 //multiset
|
|
42
|
|
43 template <class _Key, class _Compare = std::less<_Key>,
|
|
44 class _Alloc = allocator<_Key> >
|
|
45 class multiset {
|
|
46 public:
|
|
47 typedef size_t size_type;
|
|
48 typedef ptrdiff_t difference_type;
|
|
49 typedef _Key value_type;
|
|
50 typedef _Key key_type;
|
|
51 typedef value_type* pointer;
|
|
52 typedef const value_type* const_pointer;
|
|
53 typedef value_type& reference;
|
|
54 typedef const value_type& const_reference;
|
|
55 typedef _Alloc allocator_type;
|
|
56
|
|
57 %traits_swigtype(_Key);
|
|
58
|
|
59 %fragment(SWIG_Traits_frag(std::multiset<_Key, _Compare, _Alloc >), "header",
|
|
60 fragment=SWIG_Traits_frag(_Key),
|
|
61 fragment="StdMultisetTraits") {
|
|
62 namespace swig {
|
|
63 template <> struct traits<std::multiset<_Key, _Compare, _Alloc > > {
|
|
64 typedef pointer_category category;
|
|
65 static const char* type_name() {
|
|
66 return "std::multiset<" #_Key "," #_Compare "," #_Alloc " >";
|
|
67 }
|
|
68 };
|
|
69 }
|
|
70 }
|
|
71
|
|
72 %typemap_traits_ptr(SWIG_TYPECHECK_MULTISET, std::multiset<_Key, _Compare, _Alloc >);
|
|
73
|
|
74 multiset( const _Compare& );
|
|
75
|
|
76 #ifdef %swig_multiset_methods
|
|
77 // Add swig/language extra methods
|
|
78 %swig_multiset_methods(std::multiset<_Key, _Compare, _Alloc >);
|
|
79 #endif
|
|
80
|
|
81 %std_multiset_methods(multiset);
|
|
82 };
|
|
83 }
|