scilab: add support for multiset
This commit is contained in:
parent
088953187c
commit
c4381e8d57
5 changed files with 38 additions and 2 deletions
|
|
@ -1119,6 +1119,7 @@ The list of wrapped sequence containers are:
|
||||||
And for associative containers:
|
And for associative containers:
|
||||||
<ul>
|
<ul>
|
||||||
<li><tt>std::set</tt></li>
|
<li><tt>std::set</tt></li>
|
||||||
|
<li><tt>std::multiset</tt></li>
|
||||||
</ul>
|
</ul>
|
||||||
<p>
|
<p>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
%module li_std_sequence_container_typemaps
|
%module li_std_container_typemaps
|
||||||
|
|
||||||
%include stl.i
|
%include stl.i
|
||||||
|
|
||||||
|
|
@ -90,10 +90,10 @@ namespace std
|
||||||
%template(TYPE ## _list) std::list<TYPE>;
|
%template(TYPE ## _list) std::list<TYPE>;
|
||||||
%template(TYPE ## _deque) std::deque<TYPE>;
|
%template(TYPE ## _deque) std::deque<TYPE>;
|
||||||
%template(TYPE ## _set) std::set<TYPE>;
|
%template(TYPE ## _set) std::set<TYPE>;
|
||||||
|
%template(TYPE ## _multiset) std::multiset<TYPE>;
|
||||||
}
|
}
|
||||||
%enddef
|
%enddef
|
||||||
|
|
||||||
|
|
||||||
%define instantiate_containers_functions(TYPE...)
|
%define instantiate_containers_functions(TYPE...)
|
||||||
namespace std
|
namespace std
|
||||||
{
|
{
|
||||||
|
|
@ -109,6 +109,9 @@ namespace std
|
||||||
%template(ret_ ## TYPE ## _set) ret_container<TYPE, std::set<TYPE> >;
|
%template(ret_ ## TYPE ## _set) ret_container<TYPE, std::set<TYPE> >;
|
||||||
%template(val_ ## TYPE ## _set) val_container<TYPE, std::set<TYPE> >;
|
%template(val_ ## TYPE ## _set) val_container<TYPE, std::set<TYPE> >;
|
||||||
%template(ref_ ## TYPE ## _set) ref_container<TYPE, std::set<TYPE> >;
|
%template(ref_ ## TYPE ## _set) ref_container<TYPE, std::set<TYPE> >;
|
||||||
|
%template(ret_ ## TYPE ## _multiset) ret_container<TYPE, std::multiset<TYPE> >;
|
||||||
|
%template(val_ ## TYPE ## _multiset) val_container<TYPE, std::multiset<TYPE> >;
|
||||||
|
%template(ref_ ## TYPE ## _multiset) ref_container<TYPE, std::multiset<TYPE> >;
|
||||||
}
|
}
|
||||||
%enddef
|
%enddef
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -99,6 +99,7 @@ testContainer("vector");
|
||||||
testContainer("list");
|
testContainer("list");
|
||||||
testContainer("deque");
|
testContainer("deque");
|
||||||
testContainer("set");
|
testContainer("set");
|
||||||
|
testContainer("multiset");
|
||||||
|
|
||||||
exec("swigtest.quit", -1);
|
exec("swigtest.quit", -1);
|
||||||
|
|
||||||
|
|
|
||||||
30
Lib/scilab/std_multiset.i
Normal file
30
Lib/scilab/std_multiset.i
Normal file
|
|
@ -0,0 +1,30 @@
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
* C++ type : STL multiset
|
||||||
|
* Scilab type : matrix (for primitive types) or list (for pointer types)
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
%fragment("StdMultisetTraits", "header", fragment="StdSequenceTraits")
|
||||||
|
%{
|
||||||
|
namespace swig {
|
||||||
|
template <class T>
|
||||||
|
struct traits_asptr<std::multiset<T> > {
|
||||||
|
static int asptr(const SwigSciObject &obj, std::multiset<T> **multiset) {
|
||||||
|
return traits_asptr_stdseq<std::multiset<T> >::asptr(obj, multiset);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
template <class T>
|
||||||
|
struct traits_from<std::multiset<T> > {
|
||||||
|
static SwigSciObject from(const std::multiset<T>& multiset) {
|
||||||
|
return traits_from_stdseq<std::multiset<T> >::from(multiset);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
%}
|
||||||
|
|
||||||
|
#define %swig_multiset_methods(Set...) %swig_sequence_methods(Type)
|
||||||
|
#define %swig_multiset_methods_val(Type...) %swig_sequence_methods_val(Type);
|
||||||
|
|
||||||
|
%include <std/std_multiset.i>
|
||||||
|
|
@ -5,3 +5,4 @@
|
||||||
%include std_deque.i
|
%include std_deque.i
|
||||||
%include std_list.i
|
%include std_list.i
|
||||||
%include std_set.i
|
%include std_set.i
|
||||||
|
%include std_multiset.i
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue