2014-11-10 4 views
2

다음 코드는 Java에서 c_func()를 호출하는 동안 종료됩니다. 튜플을 사용하지 않으면 발생하지 않습니다. 튜플 유형이 도입 되었기 때문에 JNA는 C++ 11을 지원하지 않습니다. 내 추측이 맞습니까?JNA는 C++ 11을 지원하지 않습니까?

C++ 코드

#include <tuple> 
#include <map> 

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

자바 코드

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

... 
} 

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

귀하의 질문과 전혀 관련이 없지만 부동 소수점 숫자로 키잉 된지도가 원하는대로 동작하는지 (부동 소수점 계산의 고유 부정확성을 감안할 때) 진지하게 고려해야합니다. – Angew

+0

@Angew. 감사합니다. C++에서 일반적으로 나쁜 습관으로 인식되는 플로트 키가있는지도를 사용하고 있습니까? – rkjt50r983

+1

@ ak79 : 어떤 언어로든 신뢰할 수없는 접경입니다. – ildjarn

답변

1

JNA는 인터페이스 수준이 아닌 구현 수준에서 작동합니다. c_func에서 C++ 11을 사용하는을 알지 못합니다. 그러나 C++ 함수는 아마도 C++ 11 런타임 라이브러리에 종속되어있을 수 있습니다.

관련 문제