C++ API を呼び出す C ハーネスを作成しています。次のコードがあります。
Boxa *tess_get_text_lines(tess_api_t *api, const bool raw_image,
const int raw_padding, Pixa** pixa, int **blockids,
int **paraids)
{
return api->tess_api->GetTextlines(raw_image, raw_padding, pixa, blockids,
paraids);
}
次の G++ エラーが発生します。
$ ./build_so.sh
tesseract.cpp: In function ‘Boxa* tess_get_text_lines(tess_api_t*, bool, int, Pixa**, int**, int**)’:
tesseract.cpp:172:47: error: no matching function for call to ‘tesseract::TessBaseAPI::GetTextlines(const bool&, const int&, Pixa**&, int**&, int**&)’
tesseract.cpp:172:47: note: candidate is:
In file included from tesseract.cpp:3:0:
/usr/include/tesseract/baseapi.h:376:9: note: Boxa* tesseract::TessBaseAPI::GetTextlines(Pixa**, int**)
/usr/include/tesseract/baseapi.h:376:9: note: candidate expects 2 arguments, 5 provided
私の呼び出しが正しいオーバーロードに一致していません。参考までに、呼び出されるメソッドで使用できるオーバーロードを次に示します。
Boxa* GetTextlines(const bool raw_image, const int raw_padding,
Pixa** pixa, int** blockids, int** paraids);
Boxa* GetTextlines(Pixa** pixa, int** blockids);
私の呼び出しが "GetTextlines(const bool&, const int&, Pixa* &, int *&, int**&)" に変換されるのはなぜですか?
ありがとう。