0
在我的java代碼中,我想調用std::set
的默認構造函數,並插入一個例如在C++以下代碼:std :: set在java swig中的支持
struct foo;
foo bar();
std::set<foo> toto;
toto.insert(b);
provides support for various STL containers for java痛飲諸如std::vector
,std::string
,std::map
...但是存在用於std::set
沒有支持。
所以我發現這個solution它涉及一個C++包裝和一個java包裝。我還沒有嘗試過,我不確定它會起作用,我覺得不方便。
我們可以通過提出一個處理基本set構造函數和插入的最小swig接口來做得更好嗎?
例如接口std_set.i喜歡:
%{
#include <set>
#include <pair>
#include <stdexcept>
%}
namespace std {
template<class T> class set {
public:
typedef T value_type;
set();
pair<iterator,bool> insert(const value_type& val); // iterator might be the difficulty here
}
或特定的模板實例創建包裝:
%rename(SetFoo) std::set<foo>;
class std::set<foo> {
public:
set();
std::pair<std::set<foo>::iterator,bool> insert(const &foo val); // std::set<foo>::iterator not known here...
};
在這兩種情況下,我堅持這個迭代器的問題,不能來了採用「簡單」解決方案。
我試過玩swig/Lib/std也沒有成功的時刻。
你還對「更好」的解決方案感興趣嗎? – Flexo
如果您有任何感謝,謝謝! – coincoin