JNA不支持C ++ 11吗?

时间:2014-11-10 09:42:43

标签: java c++ c++11 jna

以下代码将在Java上调用c_func()期间终止。如果不使用元组,则不会发生。我猜JNA不支持C ++ 11,因为它上面引入了元组类型。我的猜测是否正确?

C ++代码

#include <tuple>
#include <map>

int c_func(){
    static std::map< std::tuple<float, float, float>, float> mapOfTuple;
    return 1;
}

Java代码

...
public interface CLibrary extends Library {
    public static final String JNA_LIBRARY_NAME = "test";

...
}

public static void main(String[] args) {
    c_func();
}

1 个答案:

答案 0 :(得分:1)

JNA在接口级别工作,而不是在实现级别。它甚至知道你在c_func中使用了C ++ 11。但是,您的C ++函数可能依赖于C ++ 11运行时库,这可能是问题所在。