Вы пишете не функцию, а оболочку, это совсем другое.Мы уже обсуждали с вами, что в ветке форума здесь:
https://sourceforge.net/projects/cmusphinx/forums/forum/5471/topic/4566470
Оболочка должна выглядеть так:
typedef struct ps_nbest_s NBest;
typedef struct ps_nbest_t {
} Nbest;
%extend Nbest {
Nbest(Decoder *d) {
Nbest *nbest = ps_nbest(d, 0, -1, NULL, NULL);
return nbest;
}
~Nbest() {
ps_nbest_free($self);
}
void next() {
ps_nbest_next($self);
}
Hypothesis* hyp() {
const char* hyp;
int32 score;
hyp = ps_nbest_hyp($self, &score);
return new_Hypothesis(hyp, "", score);
}
};