여러 변수 인수를 하나의 입력 매개 변수로 변환하는 typemap을 작성하려고합니다.여러 개의 인수를 하나의 SWIG 매개 변수로 축소하는 방법
예를 들어 벡터를 사용하는 함수가 있다고 가정 해 보겠습니다.
void foo(vector<int> x);
내가 같이 호출 할
foo(1,2,3,4);
는 타입 맵은, ($의 argnum, ...) 인수를 하나 개의 벡터로 수집하고한다 (Perl로 될 일이) 그걸 foo에게 넘겨 줘.
지금까지이 있습니다
void foo(vectori, ...);
꿀꺽 꿀꺽 예상됩니다
if ((items < 1) || (items > 1)) {
SWIG_croak("Usage: foo(vectori);");
}
내가 할 경우 그 꿀꺽 꿀꺽 인수의 수를 확인 제외하고이 작동 할
typedef vector<int> vectori;
%typemap(in) (vectori) {
for (int i=$argnum-1; i<items; i++) {
$1->push_back(<argv i>); // This is language dependent, of course.
}
}
두 개의 인수로 foo를 호출합니다.
foo(arg1, arg2);
아마 SWIG가 foo를 호출하여 arg2를 억제하도록 말할 수 있습니까?
내 .I이 사용할 수 없습니다 :
void foo(...)
을 내가 기대 foo는 유형 (INT, 문자열 배열을, 무엇이든)에 따라 다른적인 typemap을 갖고 싶어하기 때문이다. 어쩌면 유형을 줄 수있는 방법이 "..."
이 방법이 있습니까?