the question is about CvArr* in OpenCV
it is defined in the source like this
/* CvArr* is used to pass arbitrary * array-like data structures * into functions where the particular * array type is recognized at runtime: */ typedef void CvArr;
and documentation like this
CvArr
struct CvArr
This is the “metatype” used only as a function parameter. It denotes that the function accepts arrays of multiple types, such as IplImage*, CvMat* or even CvSeq* sometimes. The particular array type is determined at runtime by analyzing the first 4 bytes of the header. In C++ interface the role of CvArr is played by InputArray and OutputArray.
I'm writing my libraries documentation so i was wondering when i show my function definition as in c below
CvMat* cvGetCol(const CvArr* arr, CvMat* submat, int col)
How i would do it ? since CvMat is a struct i so far have this but is it the best it could be
(get-cols (arr cv-arr) (:pointer (:struct submat)) (col :int))
but how would someone more skilled in cffi write the int part(col) and the CvArr part. In my library CvArr* is defined as this (defctype cv-arr :pointer)....I would appreciate any help on this