在Java中SWIG wrap boost :: none_t

时间:2015-05-17 07:05:08

标签: swig

我有以下c ++函数,我正在制作Java包装器

void label(const std::string &label) {   // wrapper correctly built
   ...
}

void label(const boost::none_t t) {    // generating SWIGTYPE_p_boost__none_t
    ...
}

如何在Java中正确包装boost :: none_t。我是SWIG的新手。任何帮助表示赞赏

1 个答案:

答案 0 :(得分:1)

根据这个功能的实际功能你可能需要这样的东西:

SELECT test.*, pg_column_size(test.data) AS column_size
FROM test
JOIN (SELECT id, unnest(data) AS strings FROM test) AS id_strings USING (id)
WHERE id_strings.strings = 'Wazaa';

然后生成以下Java:

%{
#include <boost/none.hpp>
%}

%typemap(in,numinputs=0) boost::none_t %{
    $1 = boost::none;
%}

void label(const boost::none_t t);

在Java中省略该参数,并在调用函数之前通过赋值自动填充public static void label()