Here is my defcfun as I normally write it,

;; Size Mat::size() const
;; Size* cv_Mat_size(Mat* self)
(defcfun ("cv_Mat_size" mat-size) (:pointer size)
  (self (:pointer mat)))

the

;; Size Mat::size() const

is the C++  function declaration with a Size return value

The ;; Size* cv_Mat_size(Mat* self) is the  C wrapper function declaration with a Size* return value

This is my defcfun with a (:pointer size) return value

(defcfun ("cv_Mat_size" mat-size) (:pointer size)
  (self (:pointer mat)))

In my Documentation for this function I list the Common Lisp function declaration as

(MAT-SIZE (SELF (:POINTER MAT)))

I couldn't figure out if I should add a return value

but in C++ the return value always goes up front i/e ;; Size Mat::size() const

Is it common to put return values on Lisp/CFFI function declarations and if so where

in this declaration  (MAT-SIZE (SELF (:POINTER MAT))) should I put mine

btw on the CLHS I didn't see or missed return values on any function declaration

Thanks in advance for any  takers=)

Good Day.